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

12 Commits

Author SHA1 Message Date
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
6 changed files with 52 additions and 10 deletions

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 }}

View File

@@ -3,8 +3,11 @@
[![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://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) [![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.
## 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 +31,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 +57,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

@@ -1,19 +1,19 @@
''' '''
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.11',
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",