diff --git a/.forgejo/workflows/build_nextcloud.yml b/.forgejo/workflows/build_nextcloud.yml index cdf5a23..4d2e866 100644 --- a/.forgejo/workflows/build_nextcloud.yml +++ b/.forgejo/workflows/build_nextcloud.yml @@ -10,40 +10,16 @@ on: - cron: "@daily" jobs: - get-versions: - name: Determine viable Nextcloud versions - runs-on: docker - container: - image: docker.io/library/python:3.14-slim - - outputs: - versions: ${{ steps.matrix.outputs.versions }} - - steps: - - name: Install required system package - run: apt-get update; apt-get install -y --no-install-recommends --no-install-suggests nodejs - - - name: Install required pip package - run: pip install requests - - - name: Checkout source code - uses: actions/checkout@v7 - - - name: Generate Nextcloud version matrix - id: matrix - shell: sh - run: python3 ${{ forgejo.workspace }}/nextcloud/get_versions_to_be_built.py - build-container: - name: Build Nextcloud Image + name: Build Nextcloud ${{ matrix.nextcloud-version }} Image runs-on: docker - needs: get-versions container: image: ghcr.io/osscontainertools/kaniko:alpine strategy: matrix: - nextcloud-version: ${{ fromJSON(needs.get-versions.outputs.versions) }} - + nextcloud-version: + # renovate: datasource=docker depName=docker.io/library/nextcloud + - 34 steps: - name: Install required system packages run: apk add --no-cache nodejs git diff --git a/nextcloud/get_versions_to_be_built.py b/nextcloud/get_versions_to_be_built.py deleted file mode 100644 index 8ddc752..0000000 --- a/nextcloud/get_versions_to_be_built.py +++ /dev/null @@ -1,51 +0,0 @@ -import datetime -import json -import os -import re - -import requests - -endoflife_nextcloud_url = "https://endoflife.date/api/v1/products/nextcloud/" -ansible_nextcloud_vars_url = "https://git.hamburg.ccc.de/CCCHH/ansible-infra/raw/branch/main/inventories/chaosknoten/host_vars/cloud.yaml" -ansible_nextcloud_vars_regex = r"(?m)^\s*nextcloud__version:\s*(\d+)\s*$" - -releases_to_be_built = [] - - -# get the currently installed Nextcloud version -nc_vars = requests.get(ansible_nextcloud_vars_url).text -match = re.search(ansible_nextcloud_vars_regex, nc_vars) -if match: - current_version = int(match.group(1)) - releases_to_be_built.append(current_version) -else: - raise ValueError("nextcloud__version not found") - - -# determine the current Nextcloud versions -eol_data = requests.get(endoflife_nextcloud_url).text -eol_json = json.loads(eol_data) - -now = datetime.datetime.now() -format_string = '%Y-%m-%d' -viable_releases = [] - -for release in eol_json["result"]["releases"]: - # only check releases which are not EOL - if release['isEol'] is True: - continue - # parse release date - release_datetime = datetime.datetime.strptime(release['releaseDate'], format_string) - - # only consider releases older than half a year - if release_datetime < now - datetime.timedelta(days=180): - version = int(release['name']) - print(f"{version} released on {release['releaseDate']}") - if version > current_version: - releases_to_be_built.append(version) - -versions = [str(v) for v in releases_to_be_built] -print(versions) - -with open(os.environ["FORGEJO_OUTPUT"], "a") as output: - output.write(f"versions={json.dumps(versions)}\n")