another try
Some checks failed
Release Alpine apk for ARM64v8 Edge / compilation-arm64v8 (push) Failing after -1m58s

This commit is contained in:
ITmodulo 2025-07-01 17:19:59 +02:00
parent 6d530432d5
commit 52b754b5d8

View file

@ -18,9 +18,8 @@ jobs:
shell: sh shell: sh
run: | run: |
# faster mirror + essential build tools # faster mirror + essential build tools
echo "https://alpine.sakamoto.pl/alpine/$(cat /etc/os-release | grep PRETT | cut -d ' ' -f 3 | cut -d '"' -f 1)/main" > /etc/apk/repositories MIRROR="https://alpine.sakamoto.pl/alpine/$(. /etc/os-release; echo $PRETTY_NAME | cut -d '"' -f2)"
echo "https://alpine.sakamoto.pl/alpine/$(cat /etc/os-release | grep PRETT | cut -d ' ' -f 3 | cut -d '"' -f 1)/community" >> /etc/apk/repositories printf "%s/main\n%s/community\n%s/testing\n" "$MIRROR" "$MIRROR" "$MIRROR" > /etc/apk/repositories
echo "https://alpine.sakamoto.pl/alpine/$(cat /etc/os-release | grep PRETT | cut -d ' ' -f 3 | cut -d '"' -f 1)/testing" >> /etc/apk/repositories
apk update && apk upgrade apk update && apk upgrade
apk add bash git curl alpine-sdk abuild sudo shadow fuse sshfs nodejs wget apk add bash git curl alpine-sdk abuild sudo shadow fuse sshfs nodejs wget
@ -46,7 +45,7 @@ jobs:
su - runner -c 'wget -q https://static.itmodulo.eu/dl/repo/public_keys/alpine/itmodulo%40disroot.org-65b4f779.rsa.pub -P ~/.abuild/' su - runner -c 'wget -q https://static.itmodulo.eu/dl/repo/public_keys/alpine/itmodulo%40disroot.org-65b4f779.rsa.pub -P ~/.abuild/'
echo "${{ secrets.REPO_PRIVKEY }}" > /home/runner/.abuild/${{ secrets.REPO_PRIVKEY_FILENAME }} && chown runner:runner /home/runner/.abuild/${{ secrets.REPO_PRIVKEY_FILENAME }} echo "${{ secrets.REPO_PRIVKEY }}" > /home/runner/.abuild/${{ secrets.REPO_PRIVKEY_FILENAME }} && chown runner:runner /home/runner/.abuild/${{ secrets.REPO_PRIVKEY_FILENAME }}
su - runner -c "echo 'PACKAGER_PRIVKEY="/home/runner/.abuild/${{ secrets.REPO_PRIVKEY_FILENAME }}"' >> ~/.abuild/abuild.conf" su - runner -c "echo 'PACKAGER_PRIVKEY="/home/runner/.abuild/${{ secrets.REPO_PRIVKEY_FILENAME }}"' >> ~/.abuild/abuild.conf"
echo "done" echo "done""
- name: Checkout sources - name: Checkout sources
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -58,34 +57,33 @@ jobs:
mkdir -p remote_index mkdir -p remote_index
curl -sfL "${REPO_URL}/APKINDEX.tar.gz" -o remote_index/APKINDEX.tar.gz curl -sfL "${REPO_URL}/APKINDEX.tar.gz" -o remote_index/APKINDEX.tar.gz
tar -xzf remote_index/APKINDEX.tar.gz -C remote_index tar -xzf remote_index/APKINDEX.tar.gz -C remote_index
# Extract P: and V: fields into a list of "name-version-pkgrel" awk '/^P:/ { pkg=$2 }
awk ' /^V:/ { ver=$2 }
/^P:/ { pkg=$2 } /^PR:/{ pr=$2; print pkg "-" ver "-" pr }' \
/^V:/ { ver=$2 } remote_index/APKINDEX > remote_index/list.txt
/^PR:/ { pr=$2; print pkg "-" ver "-" pr }
' remote_index/APKINDEX > remote_index/list.txt
echo "::set-output name=existing::$(sort remote_index/list.txt | paste -sd, -)"
- name: Build only missing packages - name: Build only missing packages
shell: bash shell: bash
run: | run: |
EXISTING="$(echo "${{ steps.get_remote.outputs.existing }}" | tr ',' '\n')" EXISTING_LIST=remote_index/list.txt
echo "$EXISTING" mkdir -p newpkgs
mkdir -p built newpkgs
for d in edge/*; do for d in edge/*; do
cd "$d" # skip non-directories
# source the APKBUILD so we get PKGNAME, PKGVER, PKGREL [ -d "$d" ] || continue
. APKBUILD
ident="${PKGNAME}-${PKGVER}-${PKGREL}" # as runner: source APKBUILD, set ident
if echo "$EXISTING" | grep -qx "$ident"; then sudo -u runner bash -c "
echo "Skipping $ident (already in repo)" cd '$d'
else . APKBUILD
echo "Building $ident..." echo \"Checking $PKGNAME-$PKGVER-$PKGREL\"
abuild -r -c if grep -F -x \"$PKGNAME-$PKGVER-$PKGREL\" ../../${EXISTING_LIST}; then
# collect the resulting .apk echo \" → skip, already in repo\"
mv /home/runner/packages/srcpkgs/aarch64/${PKGNAME}-*.apk ../../newpkgs/ || true else
fi echo \" → building…\"
cd - >/dev/null abuild -r -c
mv /home/runner/packages/srcpkgs/aarch64/${PKGNAME}-*.apk ../../newpkgs/ || true
fi
"
done done
- name: Sync new pkgs, clean old versions, rebuild & sign index - name: Sync new pkgs, clean old versions, rebuild & sign index
@ -101,19 +99,17 @@ jobs:
cd /home/runner/remote cd /home/runner/remote
# For each newly-built package, remove older versions # Remove old iterations of each new pkg
for pkg in /home/runner/newpkgs/*.apk; do for apk in /home/runner/newpkgs/*.apk; do
base=$(basename "$pkg" | sed -E 's/(-[0-9]+\.[0-9]+.*)//') base=$(basename "$apk" | sed 's/-[0-9].*//')
rm -f ${base}-*.apk || true rm -f ${base}-*.apk || true
done done
# Copy over the truly new files # Copy new ones in
cp /home/runner/newpkgs/*.apk . cp /home/runner/newpkgs/*.apk .
# Rebuild the index # Rebuild index and sign
apk index -o APKINDEX.tar.gz *.apk apk index -o APKINDEX.tar.gz *.apk
# Sign it
abuild-sign APKINDEX.tar.gz abuild-sign APKINDEX.tar.gz
fusermount -u /home/runner/remote fusermount -u /home/runner/remote