1
0
mirror of https://github.com/CMiksche/gitea-auto-update synced 2025-12-11 00:17:22 +01:00

15 Commits

Author SHA1 Message Date
Christoph Miksche
9449498d49 docs: update email
Update to new email address so that users can reach me.
2024-08-07 13:28:54 +02:00
Christoph Miksche
5bf70c379b ci: move to github actions
Move from drone to GitHub actions.
2023-03-02 14:55:24 +01:00
Christoph Miksche
28721257fe docs: inform about autoupdate
Inform about my new autoupdate tool
2023-02-24 13:53:45 +01:00
Christoph Miksche
8b30f0b9d5 feat: add timeout
Add a timeout for the requests.
2022-09-04 16:07:41 +02:00
Christoph Daniel Miksche
6f85b5b0a3 docs: add badges
Add badges for license and twitter
2022-09-04 15:59:28 +02:00
Christoph Daniel Miksche
50586a33a3 docs: add xz as dependency
Add the missing dependency `xz`
2022-06-17 13:56:47 +02:00
Christoph Daniel Miksche
576f7454c1 Merge pull request #28 from BadCo-NZ/patch-1
Update README.md
2022-06-14 11:16:32 +02:00
BadCo-NZ
7379ad56ce Update README.md
Fixed code block error
2022-06-14 01:55:30 +00:00
BadCo-NZ
2740dcb1b8 Updated dependencies
Reworded Dependencies section
2022-06-14 01:53:27 +00:00
BadCo-NZ
92cefe029a Update README.md
Added dependencies section
2022-05-22 11:15:55 +00:00
Christoph Miksche
c2da136d7e fix: update if sha doesn't exists
Still update if there is no sha which we can check
2022-02-01 13:19:42 +01:00
Christoph Miksche
bdef0b6987 fix: change master to main
Change the branch name in the build process
2022-01-31 11:59:33 +01:00
Christoph Miksche
ccb3e058ef build: publish on every deploy
Deploy with GitHub Actions to PyPI

Closes #15
2021-10-16 16:59:07 +02:00
Christoph Daniel Miksche
4f3dd23bf7 Merge pull request #24 from R0GGER/patch-1
tiny typo
2021-09-16 16:18:35 +02:00
R0GGER
18d6da360d tiny typo 2021-09-16 13:57:22 +02:00
10 changed files with 91 additions and 35 deletions

View File

@@ -1,11 +0,0 @@
kind: pipeline
name: default
steps:
- name: test
image: python
commands:
- pip install pipenv
- pipenv install
- pipenv run gitlint
- pipenv run pylint setup.py gitea_auto_update
- pipenv run python -m unittest

12
.github/FUNDING.yml vendored
View File

@@ -1,12 +0,0 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: cmiksche
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: CMiksche
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ['https://www.paypal.me/CMiksche', 'https://buymeacoff.ee/WmgU5Sk'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

31
.github/workflows/pypi-publish.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
on:
release:
types:
- created
name: Publish Package
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.8
- name: "Installs and upgrades pip, installs other dependencies and installs the package from setup.py"
run: |
# Upgrade pip
python3 -m pip install --upgrade pip
# Install build deps
python3 -m pip install pipenv setuptools wheel twine
pipenv install
# Install the package from setup.py
python3 setup.py install
- name: Build
run: |
python3 setup.py sdist bdist_wheel
- name: Publish a Python distribution to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}

25
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
name: Test Package
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8", "3.9", "3.10"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: "Tests the code"
run: |
pip install pipenv
pipenv install
pipenv run gitlint
pipenv run pylint setup.py gitea_auto_update
pipenv run python -m unittest

View File

@@ -1,10 +1,22 @@
# Gitea Auto Update # Gitea Auto Update
[![Build Status](https://cloud.drone.io/api/badges/CMiksche/gitea-auto-update/status.svg)](https://cloud.drone.io/CMiksche/gitea-auto-update) [![Build Status](https://github.com/CMiksche/gitea-auto-update/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/CMiksche/gitea-auto-update/actions/workflows/test.yml)
[![Publish Package](https://github.com/CMiksche/gitea-auto-update/actions/workflows/pypi-publish.yml/badge.svg)](https://github.com/CMiksche/gitea-auto-update/actions/workflows/pypi-publish.yml)
[![PyPI version](https://badge.fury.io/py/gitea-auto-update.svg)](https://badge.fury.io/py/gitea-auto-update) [![PyPI version](https://badge.fury.io/py/gitea-auto-update.svg)](https://badge.fury.io/py/gitea-auto-update)
[![Downloads](https://pepy.tech/badge/gitea-auto-update)](https://pepy.tech/project/gitea-auto-update) [![Downloads](https://pepy.tech/badge/gitea-auto-update)](https://pepy.tech/project/gitea-auto-update)
![GitHub](https://img.shields.io/github/license/cmiksche/gitea-auto-update?style=flat)
[![Twitter Follow](https://img.shields.io/twitter/follow/cmiksche?style=social)](https://twitter.com/cmiksche)
[![Mastodon Follow](https://img.shields.io/mastodon/follow/106336578279256330?domain=https%3A%2F%2Fmastodon.social&style=social)](https://mastodon.social/@cmiksche)
Script for a automatic update of gitea. Should be run locally on the gitea server. Has options for updating via new binary file or build from source. Script for an automatic update of gitea. Should be run locally on the gitea server. Has options for updating via new binary file or build from source.
This project is on life-support. I focus on bringing new features to my paid [Autoupdate](https://chapati.systems/autoupdate/) tool.
## Want to update more?
> If you want to update Gitea and other software (like Drone, Caddy, Podman, Python, Zitadel and Kanboard), you should check out [Autoupdate](https://chapati.systems/autoupdate/).
>
> This new tool of mine was built as a single binary with a config file and tested on multiple Linux systems.
## Procedure ## Procedure
* Get Gitea Version from the Gitea CLI and if that fails from the Gitea API * Get Gitea Version from the Gitea CLI and if that fails from the Gitea API
@@ -28,6 +40,10 @@ Author: Christoph Daniel Miksche (m5e.de)
Uses python version 3 Uses python version 3
## Dependencies
Ensure `pip3`, `setuptools`, `xz-utils` and `wheel` dependencies are installed on the system you are running this script in. (Most Linux OS like Ubuntu or Debian come with these pre-installed)
## Installation ## Installation
Create a settings.ini file on your system. Example: Create a settings.ini file on your system. Example:
@@ -50,7 +66,7 @@ Use the following command to install gitea-auto-update.
sudo pip3 install gitea-auto-update sudo pip3 install gitea-auto-update
``` ```
Enter the command `gite-auto-update --settings=/path/to/settings.ini` in your commandline. Enter the command `gitea-auto-update --settings=/path/to/settings.ini` in your commandline.
If you want to schedule your updates, edit your /etc/crontab file. If you want to schedule your updates, edit your /etc/crontab file.

View File

@@ -12,7 +12,7 @@ import os
def build_from_source(tag, gt_file, source_dir): def build_from_source(tag, gt_file, source_dir):
"""Function to build the new version from source""" """Function to build the new version from source"""
os.chdir(source_dir) os.chdir(source_dir)
os.system("git checkout master") os.system("git checkout main")
os.system("git pull") os.system("git pull")
os.system("git checkout " + tag) os.system("git checkout " + tag)
os.system('TAGS="bindata sqlite sqlite_unlock_notify" make generate build') os.system('TAGS="bindata sqlite sqlite_unlock_notify" make generate build')

View File

@@ -24,14 +24,18 @@ def download(url, file_name):
# open in binary mode # open in binary mode
with open(file_name, "wb") as file: with open(file_name, "wb") as file:
# get request # get request
response = requests.get(url) response = requests.get(url, timeout=3600)
# write to file # write to file
file.write(response.content) file.write(response.content)
def sha_check(): def sha_check():
"""Check sha for gitea file""" """Check sha for gitea file"""
return os.system("sha256sum -c gitea.xz.sha256 > /dev/null") == 0 sha_path = 'gitea.xz.sha256'
if os.path.exists(sha_path):
return os.system("sha256sum -c "+sha_path+" > /dev/null") == 0
# return true because we don't have a sha file to check
return True
class Download: class Download:

View File

@@ -14,7 +14,7 @@ import requests
def get_github_version_tag(api_url): def get_github_version_tag(api_url):
"""Get the version from github""" """Get the version from github"""
version_tag = requests.get(api_url).json()['tag_name'] version_tag = requests.get(api_url, timeout=30).json()['tag_name']
logging.info('Version: github_version_tag = %s', version_tag) logging.info('Version: github_version_tag = %s', version_tag)
return version_tag return version_tag
@@ -49,7 +49,7 @@ class Version:
except IOError: except IOError:
# Get the version via the web api if the file does fail # Get the version via the web api if the file does fail
try: try:
current_version = requests.get(self.gt_site).json()['version'] current_version = requests.get(self.gt_site, timeout=30).json()['version']
if current_version.status_code != 200: if current_version.status_code != 200:
raise RuntimeError("Could not download version.") from None raise RuntimeError("Could not download version.") from None
except RuntimeError: except RuntimeError:

View File

@@ -70,6 +70,9 @@ class Update:
print("update successfully") print("update successfully")
else: else:
print("current version is uptodate") print("current version is uptodate")
print("Check out https://chapati.systems/autoupdate/ if you want to "
"update Gitea and other software "
"(like Drone, Caddy, Podman, Python, Zitadel and Kanboard)")
def updater(settings='settings.ini'): def updater(settings='settings.ini'):

View File

@@ -1,25 +1,25 @@
''' '''
Gitea Auto Updater Gitea Auto Updater
Copyright 2018, 2019, 2020 The Gitea-Auto-Update Authors Copyright 2018, 2019, 2020, 2021, 2022 The Gitea-Auto-Update Authors
All rights reserved. All rights reserved.
License: GNU General Public License License: GNU General Public License
''' '''
import setuptools import setuptools
with open("README.md", "r") as fh: with open("README.md", "r", encoding='utf8') as fh:
LONG_DESCRIPTION = fh.read() LONG_DESCRIPTION = fh.read()
setuptools.setup( setuptools.setup(
name='gitea_auto_update', name='gitea_auto_update',
version='2.0.9', version='2.0.13',
description='A script which can update gitea to a new version.', description='A script which can update gitea to a new version.',
long_description=LONG_DESCRIPTION, long_description=LONG_DESCRIPTION,
long_description_content_type="text/markdown", long_description_content_type="text/markdown",
url='https://github.com/CMiksche/gitea-auto-update', url='https://github.com/CMiksche/gitea-auto-update',
author='Christoph Miksche', author='Christoph Miksche',
author_email='christoph@miksche.org', author_email='autoupdate@chapati.systems',
license='GPLv3', license='GPLv3',
classifiers=[ classifiers=[
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",