mirror of
https://github.com/CMiksche/gitea-auto-update
synced 2025-12-10 07:57:23 +01:00
Compare commits
20 Commits
9fc15f1b99
...
2.0.12
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
28721257fe | ||
|
|
8b30f0b9d5 | ||
|
|
6f85b5b0a3 | ||
|
|
50586a33a3 | ||
|
|
576f7454c1 | ||
|
|
7379ad56ce | ||
|
|
2740dcb1b8 | ||
|
|
92cefe029a | ||
|
|
c2da136d7e | ||
|
|
bdef0b6987 | ||
|
|
ccb3e058ef | ||
|
|
4f3dd23bf7 | ||
|
|
18d6da360d | ||
|
|
52855058fc | ||
|
|
26efce05b5 | ||
|
|
c6621fa117 | ||
|
|
d926a19b6c | ||
|
|
af7941f10a | ||
|
|
f44d7c8954 | ||
|
|
4e5df22f2e |
12
.github/FUNDING.yml
vendored
12
.github/FUNDING.yml
vendored
@@ -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
31
.github/workflows/pypi-publish.yml
vendored
Normal 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 }}
|
||||
2
Pipfile
2
Pipfile
@@ -15,4 +15,4 @@ pylint = "*"
|
||||
pre-commit = "*"
|
||||
|
||||
[requires]
|
||||
python_version = "3.7"
|
||||
python_version = "3"
|
||||
|
||||
20
README.md
20
README.md
@@ -3,8 +3,17 @@
|
||||
[](https://cloud.drone.io/CMiksche/gitea-auto-update)
|
||||
[](https://badge.fury.io/py/gitea-auto-update)
|
||||
[](https://pepy.tech/project/gitea-auto-update)
|
||||

|
||||
[](https://twitter.com/cmiksche)
|
||||
[](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.
|
||||
|
||||
## 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
|
||||
* Get Gitea Version from the Gitea CLI and if that fails from the Gitea API
|
||||
@@ -28,6 +37,10 @@ Author: Christoph Daniel Miksche (m5e.de)
|
||||
|
||||
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
|
||||
|
||||
Create a settings.ini file on your system. Example:
|
||||
@@ -50,7 +63,7 @@ Use the following command to 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.
|
||||
|
||||
@@ -80,8 +93,7 @@ The following steps are automatically executed via pre-commit hooks.
|
||||
|
||||
## Contributors
|
||||
|
||||
- [@Eideen](https://github.com/Eideen)
|
||||
- [@iwalton3](https://github.com/iwalton3)
|
||||
See https://github.com/CMiksche/gitea-auto-update/graphs/contributors
|
||||
|
||||
Thank you for your support!
|
||||
|
||||
|
||||
@@ -12,8 +12,9 @@ import os
|
||||
def build_from_source(tag, gt_file, source_dir):
|
||||
"""Function to build the new version from source"""
|
||||
os.chdir(source_dir)
|
||||
os.system("git checkout master")
|
||||
os.system("git checkout main")
|
||||
os.system("git pull")
|
||||
os.system("git checkout " + tag)
|
||||
os.system('TAGS="bindata sqlite sqlite_unlock_notify" make generate build')
|
||||
os.system("mv gitea " + gt_file)
|
||||
os.system("cp gitea " + gt_file)
|
||||
os.system("rm -f gitea")
|
||||
|
||||
@@ -24,14 +24,18 @@ def download(url, file_name):
|
||||
# open in binary mode
|
||||
with open(file_name, "wb") as file:
|
||||
# get request
|
||||
response = requests.get(url)
|
||||
response = requests.get(url, timeout=3600)
|
||||
# write to file
|
||||
file.write(response.content)
|
||||
|
||||
|
||||
def sha_check():
|
||||
"""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:
|
||||
@@ -74,10 +78,14 @@ class Download:
|
||||
# extracting download file
|
||||
cmd = "xz -d " + self.tmp_xz
|
||||
os.system(cmd)
|
||||
# moving temp file to gtfile location
|
||||
cmd = 'mv ' + self.tmp_dir + 'gitea-' + self.github_version \
|
||||
# copying temp file to gtfile location.
|
||||
# Copying preserves SELinux permissions, see issue #22
|
||||
cmd = 'cp ' + self.tmp_dir + 'gitea-' + self.github_version \
|
||||
+ '-' + self.gt_system + ' ' + self.gt_file
|
||||
os.system(cmd)
|
||||
# cleaning up tmp file
|
||||
cmd = 'rm -f ' + self.tmp_dir + 'gitea-' + self.github_version + '-' + self.gt_system
|
||||
os.system(cmd)
|
||||
cmd = 'chmod +x ' + self.gt_file
|
||||
os.system(cmd)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import requests
|
||||
|
||||
def get_github_version_tag(api_url):
|
||||
"""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)
|
||||
return version_tag
|
||||
|
||||
@@ -49,7 +49,7 @@ class Version:
|
||||
except IOError:
|
||||
# Get the version via the web api if the file does fail
|
||||
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:
|
||||
raise RuntimeError("Could not download version.") from None
|
||||
except RuntimeError:
|
||||
|
||||
@@ -70,6 +70,9 @@ class Update:
|
||||
print("update successfully")
|
||||
else:
|
||||
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'):
|
||||
|
||||
6
setup.py
6
setup.py
@@ -1,19 +1,19 @@
|
||||
'''
|
||||
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.
|
||||
|
||||
License: GNU General Public License
|
||||
'''
|
||||
import setuptools
|
||||
|
||||
with open("README.md", "r") as fh:
|
||||
with open("README.md", "r", encoding='utf8') as fh:
|
||||
LONG_DESCRIPTION = fh.read()
|
||||
|
||||
setuptools.setup(
|
||||
name='gitea_auto_update',
|
||||
version='2.0.8',
|
||||
version='2.0.12',
|
||||
description='A script which can update gitea to a new version.',
|
||||
long_description=LONG_DESCRIPTION,
|
||||
long_description_content_type="text/markdown",
|
||||
|
||||
Reference in New Issue
Block a user