mirror of
https://github.com/VibedByKaKi/t3-code-android-nightly.git
synced 2026-10-09 11:51:15 +02:00
91 lines
2.8 KiB
Bash
Executable file
91 lines
2.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
|
|
repo='pingdotgg/t3code'
|
|
tag="${RELEASE_TAG:?RELEASE_TAG is required}"
|
|
pkgrel="${PKGREL:-1}"
|
|
|
|
if [[ "$tag" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
pkgname='t3code-bin'
|
|
elif [[ "$tag" =~ ^v[0-9]+\.[0-9]+\.[0-9]+-nightly\.[0-9]{8}\.[0-9]+$ ]]; then
|
|
pkgname='t3code-nightly-bin'
|
|
else
|
|
echo "Release $tag does not publish an AUR package."
|
|
exit 0
|
|
fi
|
|
|
|
version="${tag#v}"
|
|
pkgver="${version//-/_}"
|
|
asset_name="T3-Code-${version}-x86_64.AppImage"
|
|
release_json="$(gh api "repos/$repo/releases/tags/$tag")"
|
|
asset_digest="$(jq -r --arg name "$asset_name" \
|
|
'.assets[] | select(.name == $name) | .digest' <<<"$release_json")"
|
|
appimage_sha256="${asset_digest#sha256:}"
|
|
|
|
if [[ ! "$appimage_sha256" =~ ^[0-9a-f]{64}$ ]]; then
|
|
echo "Release $tag is missing $asset_name or its SHA-256 digest." >&2
|
|
exit 1
|
|
fi
|
|
|
|
work_dir="$(mktemp -d)"
|
|
trap 'rm -rf -- "$work_dir"' EXIT
|
|
gh api -H 'Accept: application/vnd.github.raw' \
|
|
"repos/$repo/contents/LICENSE?ref=$tag" > "$work_dir/LICENSE"
|
|
license_sha256="$(sha256sum "$work_dir/LICENSE" | awk '{print $1}')"
|
|
|
|
package_dir="$repo_root/packaging/aur/$pkgname"
|
|
cd "$package_dir"
|
|
sed -Ei \
|
|
-e "s/^pkgver=.*/pkgver=$pkgver/" \
|
|
-e "s/^pkgrel=.*/pkgrel=$pkgrel/" \
|
|
-e "/# AppImage$/s/'[0-9a-f]{64}'/'$appimage_sha256'/" \
|
|
-e "/# upstream license$/s/'[0-9a-f]{64}'/'$license_sha256'/" \
|
|
PKGBUILD
|
|
|
|
run_as_builder() {
|
|
if [[ "$(id -u)" == 0 ]]; then
|
|
runuser -u builder -- "$@"
|
|
else
|
|
"$@"
|
|
fi
|
|
}
|
|
|
|
if [[ "$(id -u)" == 0 ]]; then
|
|
chown -R builder:builder "$package_dir"
|
|
fi
|
|
run_as_builder namcap PKGBUILD
|
|
run_as_builder makepkg --printsrcinfo > .SRCINFO
|
|
run_as_builder makepkg --syncdeps --cleanbuild --clean --noconfirm
|
|
run_as_builder namcap "$(run_as_builder makepkg --packagelist)"
|
|
|
|
if [[ -z "${AUR_SSH_PRIVATE_KEY:-}" ]]; then
|
|
echo 'AUR_SSH_PRIVATE_KEY is not set; build complete, skipping publish.'
|
|
exit 0
|
|
fi
|
|
|
|
key_file="$work_dir/id_ed25519"
|
|
known_hosts_file="$work_dir/known_hosts"
|
|
aur_dir="$work_dir/$pkgname"
|
|
printf '%s\n' "$AUR_SSH_PRIVATE_KEY" > "$key_file"
|
|
chmod 600 "$key_file"
|
|
printf '%s\n' \
|
|
'aur.archlinux.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEuBKrPzbawxA/k2g6NcyV5jmqwJ2s+zpgZGZ7tpLIcN' \
|
|
> "$known_hosts_file"
|
|
export GIT_SSH_COMMAND="ssh -i $key_file -o IdentitiesOnly=yes -o UserKnownHostsFile=$known_hosts_file -o StrictHostKeyChecking=yes"
|
|
|
|
git clone "ssh://aur@aur.archlinux.org/$pkgname.git" "$aur_dir"
|
|
cp PKGBUILD .SRCINFO "$aur_dir/"
|
|
cd "$aur_dir"
|
|
git rm --ignore-unmatch LICENSE .upstream-commit t3code-icon.png
|
|
git config user.name 't3code-ci'
|
|
git config user.email 't3code-ci@users.noreply.github.com'
|
|
git add -A
|
|
|
|
if git diff --cached --quiet; then
|
|
echo 'AUR package is already up to date.'
|
|
exit 0
|
|
fi
|
|
|
|
git commit -m "$pkgname: update to $pkgver-$pkgrel"
|
|
git push origin HEAD:master
|