1
0
mirror of https://github.com/CMiksche/gitea-auto-update synced 2025-12-10 16:07:23 +01:00

1 Commits

Author SHA1 Message Date
dependabot-preview[bot]
9fc15f1b99 Upgrade to GitHub-native Dependabot 2021-04-29 20:16:20 +00:00
11 changed files with 41 additions and 101 deletions

11
.drone.yml Normal file
View File

@@ -0,0 +1,11 @@
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 Normal file
View File

@@ -0,0 +1,12 @@
# 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']

View File

@@ -1,31 +0,0 @@
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 }}

View File

@@ -1,25 +0,0 @@
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

@@ -15,4 +15,4 @@ pylint = "*"
pre-commit = "*"
[requires]
python_version = "3"
python_version = "3.7"

View File

@@ -1,22 +1,10 @@
# 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)
[![Build Status](https://cloud.drone.io/api/badges/CMiksche/gitea-auto-update/status.svg)](https://cloud.drone.io/CMiksche/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)
![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 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.
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.
## Procedure
* Get Gitea Version from the Gitea CLI and if that fails from the Gitea API
@@ -40,10 +28,6 @@ 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:
@@ -66,7 +50,7 @@ Use the following command to install gitea-auto-update.
sudo pip3 install gitea-auto-update
```
Enter the command `gitea-auto-update --settings=/path/to/settings.ini` in your commandline.
Enter the command `gite-auto-update --settings=/path/to/settings.ini` in your commandline.
If you want to schedule your updates, edit your /etc/crontab file.
@@ -96,7 +80,8 @@ The following steps are automatically executed via pre-commit hooks.
## Contributors
See https://github.com/CMiksche/gitea-auto-update/graphs/contributors
- [@Eideen](https://github.com/Eideen)
- [@iwalton3](https://github.com/iwalton3)
Thank you for your support!

View File

@@ -12,9 +12,8 @@ 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 main")
os.system("git checkout master")
os.system("git pull")
os.system("git checkout " + tag)
os.system('TAGS="bindata sqlite sqlite_unlock_notify" make generate build')
os.system("cp gitea " + gt_file)
os.system("rm -f gitea")
os.system("mv gitea " + gt_file)

View File

@@ -24,18 +24,14 @@ def download(url, file_name):
# open in binary mode
with open(file_name, "wb") as file:
# get request
response = requests.get(url, timeout=3600)
response = requests.get(url)
# write to file
file.write(response.content)
def sha_check():
"""Check sha for gitea file"""
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
return os.system("sha256sum -c gitea.xz.sha256 > /dev/null") == 0
class Download:
@@ -78,14 +74,10 @@ class Download:
# extracting download file
cmd = "xz -d " + self.tmp_xz
os.system(cmd)
# copying temp file to gtfile location.
# Copying preserves SELinux permissions, see issue #22
cmd = 'cp ' + self.tmp_dir + 'gitea-' + self.github_version \
# moving temp file to gtfile location
cmd = 'mv ' + 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)

View File

@@ -14,7 +14,7 @@ import requests
def get_github_version_tag(api_url):
"""Get the version from github"""
version_tag = requests.get(api_url, timeout=30).json()['tag_name']
version_tag = requests.get(api_url).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, timeout=30).json()['version']
current_version = requests.get(self.gt_site).json()['version']
if current_version.status_code != 200:
raise RuntimeError("Could not download version.") from None
except RuntimeError:

View File

@@ -70,9 +70,6 @@ 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'):

View File

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