Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4a3dc17dc9 | |||
|
17e1bfae50
|
|||
| aa4707da6a | |||
| d8714c8917 | |||
| 8344a203c2 | |||
| 4f092a980f | |||
| 6c6d626890 | |||
| 97e47f3ffe | |||
| 0bc4250f39 | |||
| dcf58084cd |
@@ -2,7 +2,14 @@ name: Bump
|
|||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 5 * * *'
|
- cron: '0 5 * * *'
|
||||||
workflow_dispatch: {}
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
description: >-
|
||||||
|
Upstream gitea/runner version to bump to (e.g. 3.4.0, no leading
|
||||||
|
"v"). Leave empty to use the latest upstream release.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bump:
|
bump:
|
||||||
@@ -19,7 +26,14 @@ jobs:
|
|||||||
id: check
|
id: check
|
||||||
env:
|
env:
|
||||||
BUMP_TOKEN: ${{ secrets.BUMP_TOKEN }}
|
BUMP_TOKEN: ${{ secrets.BUMP_TOKEN }}
|
||||||
|
BUMP_VERSION: ${{ inputs.version }}
|
||||||
run: |
|
run: |
|
||||||
|
# An explicitly requested version always runs the full bump.
|
||||||
|
if [ -n "${BUMP_VERSION}" ]; then
|
||||||
|
echo "needed=true" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "explicit version requested: ${BUMP_VERSION}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
latest=$(wget -qO- https://gitea.com/gitea/runner/releases.rss \
|
latest=$(wget -qO- https://gitea.com/gitea/runner/releases.rss \
|
||||||
| grep -oE '<title>v[0-9]+\.[0-9]+\.[0-9]+</title>' \
|
| grep -oE '<title>v[0-9]+\.[0-9]+\.[0-9]+</title>' \
|
||||||
| head -1 | sed -E 's#</?title>##g; s/^v//')
|
| head -1 | sed -E 's#</?title>##g; s/^v//')
|
||||||
@@ -51,6 +65,12 @@ jobs:
|
|||||||
> /etc/portage/repos.conf/gentoo.conf
|
> /etc/portage/repos.conf/gentoo.conf
|
||||||
sed -i '/^verify-signature/d' /etc/portage/binrepos.conf/gentoo.conf
|
sed -i '/^verify-signature/d' /etc/portage/binrepos.conf/gentoo.conf
|
||||||
printf '\nverify-signature = false\n' >> /etc/portage/binrepos.conf/gentoo.conf
|
printf '\nverify-signature = false\n' >> /etc/portage/binrepos.conf/gentoo.conf
|
||||||
|
# Upstream's go.mod can require a Go that Gentoo only has under
|
||||||
|
# ~amd64 (GOTOOLCHAIN=local forbids auto-download), so accept the
|
||||||
|
# testing-keyworded dev-lang/go. It is built from source when no
|
||||||
|
# stable binpkg satisfies the requirement.
|
||||||
|
mkdir -p /etc/portage/package.accept_keywords
|
||||||
|
echo 'dev-lang/go ~amd64' > /etc/portage/package.accept_keywords/go
|
||||||
emerge -q --getbinpkg \
|
emerge -q --getbinpkg \
|
||||||
dev-vcs/git net-misc/curl app-arch/xz-utils app-misc/jq \
|
dev-vcs/git net-misc/curl app-arch/xz-utils app-misc/jq \
|
||||||
dev-lang/go dev-util/pkgdev
|
dev-lang/go dev-util/pkgdev
|
||||||
@@ -59,6 +79,7 @@ jobs:
|
|||||||
if: steps.check.outputs.needed == 'true'
|
if: steps.check.outputs.needed == 'true'
|
||||||
env:
|
env:
|
||||||
BUMP_TOKEN: ${{ secrets.BUMP_TOKEN }}
|
BUMP_TOKEN: ${{ secrets.BUMP_TOKEN }}
|
||||||
|
BUMP_VERSION: ${{ inputs.version }}
|
||||||
run: |
|
run: |
|
||||||
host=${GITHUB_SERVER_URL#http://}; host=${host#https://}
|
host=${GITHUB_SERVER_URL#http://}; host=${host#https://}
|
||||||
curl -fsSL "http://x-access-token:${BUMP_TOKEN}@${host}/${GITHUB_REPOSITORY}/raw/branch/master/scripts/bump-version.sh" \
|
curl -fsSL "http://x-access-token:${BUMP_TOKEN}@${host}/${GITHUB_REPOSITORY}/raw/branch/master/scripts/bump-version.sh" \
|
||||||
|
|||||||
@@ -81,6 +81,11 @@ jobs:
|
|||||||
> /etc/portage/repos.conf/azy5030.conf
|
> /etc/portage/repos.conf/azy5030.conf
|
||||||
mkdir -p /etc/portage/package.accept_keywords
|
mkdir -p /etc/portage/package.accept_keywords
|
||||||
echo 'dev-util/gitea-runner ~amd64' > /etc/portage/package.accept_keywords/gitea-runner
|
echo 'dev-util/gitea-runner ~amd64' > /etc/portage/package.accept_keywords/gitea-runner
|
||||||
|
# Upstream tracks new Go releases faster than Gentoo stabilises them
|
||||||
|
# (the ebuild's BDEPEND follows upstream go.mod), so accept the
|
||||||
|
# testing-keyworded dev-lang/go. No stable binpkg exists for it, so
|
||||||
|
# this compiles Go from source when a newer one is required.
|
||||||
|
echo 'dev-lang/go ~amd64' > /etc/portage/package.accept_keywords/go
|
||||||
|
|
||||||
- name: QA scan
|
- name: QA scan
|
||||||
run: pkgcheck scan --repo /var/db/repos/azy5030 dev-util/gitea-runner
|
run: pkgcheck scan --repo /var/db/repos/azy5030 dev-util/gitea-runner
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
DIST gitea-runner-2.1.0-vendor.tar.xz 3050140 BLAKE2B cc88d676cd0e77337299cde99b9a52826c1384d18b735a7ca56add7ce9a6f088b0309daf0dc14bef883df68292ee81039998bf9be19aa742fd3f7c02519d473d SHA512 5e30c8f582eebdecfb9cd7dfc56044fe44e6e35203ecaeae546ed317b5447f9a1a29a170d0d856ee9339397a763a5f7c1596c07f3e0e74bb1987d135406896f6
|
DIST gitea-runner-3.3.1-vendor.tar.xz 3273532 BLAKE2B 376e88938aef1a945ca2da00f23d3320e5ab7efdaa539f3825aed104b3eab4c965359b1bef602613fb0e236d089146f14449fba4d0ba54a60062edb6aeae66a3 SHA512 92e202990a6e501205d7068a305e123442887263d1967b3ec3a38480b2e5f65592887a14ac861bfebf5c71060daab914bb38edd25f373e1414ebfda745bc367b
|
||||||
DIST gitea-runner-2.1.0.tar.gz 402159 BLAKE2B 1f28a4d69b1991ba8b84c5c4f5e4c7e5beec01d480a5790f5379bef2d6552c108e3d866d775e3130377bd2ba2c8a143424d64b88e4b5a641720748f1470ab09c SHA512 507453a3c65c846e207185ae0f5d6e83fcf916a60c308e92b88c1474384228ae2c4f3a895bb1386ef9273e4fcfdbf649f6309408d6e87d19147a631c9d9c07f4
|
DIST gitea-runner-3.3.1.tar.gz 478550 BLAKE2B 46264b168e1579b4b5408974a6c3d16486fae4c087911697b1afa3cd72fbb9570b81f749902fd9dd9355deae2bd8661d3526105ab2d24bfcddda2254d88f3356 SHA512 86d9e53a12411a9aab46d2db529ac4382f0d4e4fcd4af38c7237686638e6a9c8e393b94f27a09d8292c6cd20a33a16fdeb728631aa75bbb752358aee8f753716
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ LICENSE="MIT Apache-2.0 BSD BSD-2 ISC MPL-2.0"
|
|||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~amd64"
|
KEYWORDS="~amd64"
|
||||||
|
|
||||||
BDEPEND=">=dev-lang/go-1.26.0"
|
BDEPEND=">=dev-lang/go-1.27"
|
||||||
# The runner shells out to the docker client for the Docker backend.
|
# The runner shells out to the docker client for the Docker backend.
|
||||||
RDEPEND="app-containers/docker-cli"
|
RDEPEND="app-containers/docker-cli"
|
||||||
|
|
||||||
+23
-2
@@ -6,12 +6,17 @@
|
|||||||
# Expects a Gentoo environment with: go, pkgdev, git, curl, xz, jq.
|
# Expects a Gentoo environment with: go, pkgdev, git, curl, xz, jq.
|
||||||
# Required env: BUMP_TOKEN, GITHUB_SERVER_URL, GITHUB_REPOSITORY.
|
# Required env: BUMP_TOKEN, GITHUB_SERVER_URL, GITHUB_REPOSITORY.
|
||||||
# Optional env: GITHUB_API_URL (defaults to ${GITHUB_SERVER_URL}/api/v1).
|
# Optional env: GITHUB_API_URL (defaults to ${GITHUB_SERVER_URL}/api/v1).
|
||||||
|
# BUMP_VERSION target a specific upstream version (X.Y.Z, no
|
||||||
|
# leading "v") instead of the latest release. An
|
||||||
|
# explicit target may be older than the current
|
||||||
|
# ebuild (useful to back out of a broken release).
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
PN="gitea-runner"
|
PN="gitea-runner"
|
||||||
UPSTREAM_RSS="https://gitea.com/gitea/runner/releases.rss"
|
UPSTREAM_RSS="https://gitea.com/gitea/runner/releases.rss"
|
||||||
UPSTREAM_ARCHIVE="https://gitea.com/api/v1/repos/gitea/runner/archive"
|
UPSTREAM_ARCHIVE="https://gitea.com/api/v1/repos/gitea/runner/archive"
|
||||||
UPSTREAM_GOMOD="https://gitea.com/api/v1/repos/gitea/runner/raw/go.mod"
|
UPSTREAM_GOMOD="https://gitea.com/api/v1/repos/gitea/runner/raw/go.mod"
|
||||||
|
UPSTREAM_TAGS="https://gitea.com/api/v1/repos/gitea/runner/tags"
|
||||||
|
|
||||||
: "${BUMP_TOKEN:?BUMP_TOKEN is required}"
|
: "${BUMP_TOKEN:?BUMP_TOKEN is required}"
|
||||||
: "${GITHUB_SERVER_URL:?GITHUB_SERVER_URL is required}"
|
: "${GITHUB_SERVER_URL:?GITHUB_SERVER_URL is required}"
|
||||||
@@ -25,10 +30,22 @@ host="${GITHUB_SERVER_URL#*://}"
|
|||||||
api() { curl -fsSL -H "Authorization: token ${BUMP_TOKEN}" "$@"; }
|
api() { curl -fsSL -H "Authorization: token ${BUMP_TOKEN}" "$@"; }
|
||||||
|
|
||||||
# --- determine versions ------------------------------------------------------
|
# --- determine versions ------------------------------------------------------
|
||||||
|
if [ -n "${BUMP_VERSION:-}" ]; then
|
||||||
|
latest="${BUMP_VERSION#v}"
|
||||||
|
echo "$latest" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$' \
|
||||||
|
|| { echo "BUMP_VERSION must look like X.Y.Z (got '${BUMP_VERSION}')"; exit 1; }
|
||||||
|
# Fail fast if the tag doesn't exist upstream, before cloning anything.
|
||||||
|
# (The raw endpoint silently falls back to the default branch for an
|
||||||
|
# unknown ref, so ask the tags API, which 404s.)
|
||||||
|
curl -fsSL "${UPSTREAM_TAGS}/v${latest}" -o /dev/null \
|
||||||
|
|| { echo "upstream tag v${latest} not found"; exit 1; }
|
||||||
|
echo "targeting explicit version ${latest}"
|
||||||
|
else
|
||||||
latest=$(curl -fsSL "$UPSTREAM_RSS" \
|
latest=$(curl -fsSL "$UPSTREAM_RSS" \
|
||||||
| grep -oE '<title>v[0-9]+\.[0-9]+\.[0-9]+</title>' \
|
| grep -oE '<title>v[0-9]+\.[0-9]+\.[0-9]+</title>' \
|
||||||
| head -1 | sed -E 's#</?title>##g; s/^v//')
|
| head -1 | sed -E 's#</?title>##g; s/^v//')
|
||||||
[ -n "$latest" ] || { echo "could not parse upstream version"; exit 1; }
|
[ -n "$latest" ] || { echo "could not parse upstream version"; exit 1; }
|
||||||
|
fi
|
||||||
|
|
||||||
WORK=$(mktemp -d)
|
WORK=$(mktemp -d)
|
||||||
git clone "${scheme}://x-access-token:${BUMP_TOKEN}@${host}/${GITHUB_REPOSITORY}.git" "$WORK"
|
git clone "${scheme}://x-access-token:${BUMP_TOKEN}@${host}/${GITHUB_REPOSITORY}.git" "$WORK"
|
||||||
@@ -39,11 +56,15 @@ current=$(find "$pkgdir" -name "${PN}-*.ebuild" \
|
|||||||
| sed -E "s#.*/${PN}-(.*)\.ebuild#\1#" | sort -V | tail -1)
|
| sed -E "s#.*/${PN}-(.*)\.ebuild#\1#" | sort -V | tail -1)
|
||||||
echo "upstream=${latest} current=${current}"
|
echo "upstream=${latest} current=${current}"
|
||||||
|
|
||||||
|
[ "$latest" != "$current" ] || { echo "already at ${latest}"; exit 0; }
|
||||||
newest=$(printf '%s\n%s\n' "$current" "$latest" | sort -V | tail -1)
|
newest=$(printf '%s\n%s\n' "$current" "$latest" | sort -V | tail -1)
|
||||||
if [ "$newest" = "$current" ] && [ "$latest" != "$current" ]; then
|
if [ "$newest" = "$current" ]; then
|
||||||
|
if [ -n "${BUMP_VERSION:-}" ]; then
|
||||||
|
echo "warning: explicit target ${latest} is older than current ${current}; downgrading"
|
||||||
|
else
|
||||||
echo "current ($current) is newer than upstream ($latest); nothing to do"; exit 0
|
echo "current ($current) is newer than upstream ($latest); nothing to do"; exit 0
|
||||||
fi
|
fi
|
||||||
[ "$latest" != "$current" ] || { echo "already at latest ($current)"; exit 0; }
|
fi
|
||||||
|
|
||||||
branch="bump/${PN}-${latest}"
|
branch="bump/${PN}-${latest}"
|
||||||
if api "${API}/repos/${GITHUB_REPOSITORY}/branches/${branch}" >/dev/null 2>&1; then
|
if api "${API}/repos/${GITHUB_REPOSITORY}/branches/${branch}" >/dev/null 2>&1; then
|
||||||
|
|||||||
Reference in New Issue
Block a user