[Enhancement] CI/CD: AUR Deploy Script (#391, thanks @JohnnyCrazy)
* Added script for automatic AUR release & added steps in .drone.yml * Don't run AUR release before actual release * Switch to GitHub Actions * Try the 'container' setting and checkout repo first * Readable deploy-aur.sh script, final draft * Revert changes in .drone.yml * GITHUB_REF needs to be stripped for the pre-release script * Introduce COMMIT_REF on top of script, so it can be modified for both type of releases * Adjust names to new k3d AUR account
This commit is contained in:
parent
8612b76577
commit
e5660f4b1f
24
.github/workflows/aur-prerelease.yml
vendored
Normal file
24
.github/workflows/aur-prerelease.yml
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
name: AUR Prerelease
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [prereleased]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
aur-pre-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: archlinux:20200705
|
||||||
|
steps:
|
||||||
|
- name: Checkout Project
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
- name: Publish Pre-Release to AUR
|
||||||
|
run: |
|
||||||
|
# AUR Packages are not allowed to use - in the package version. its used to combine pkgver and pkgrel
|
||||||
|
export COMMIT_REF=${GITHUB_REF/-/_}
|
||||||
|
./deploy-aur.sh
|
||||||
|
env:
|
||||||
|
PACKAGE_NAME: rancher-k3d-beta-bin
|
||||||
|
COMMIT_USERNAME: Travis CI
|
||||||
|
COMMIT_EMAIL: iwilltry42+k3d@gmail.com
|
||||||
|
COMMIT_MESSAGE: "[CI] Updated to $NEW_RELEASE"
|
||||||
|
SSH_PRIVATE_KEY: ${{ secrets.AUR_PRIVATE_KEY }}
|
23
.github/workflows/aur-release.yml
vendored
Normal file
23
.github/workflows/aur-release.yml
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
name: AUR Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [released]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
aur-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: archlinux:20200705
|
||||||
|
steps:
|
||||||
|
- name: Checkout Project
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
- name: Publish Release to AUR
|
||||||
|
run: |
|
||||||
|
export COMMIT_REF=$GITHUB_REF
|
||||||
|
./deploy-aur.sh
|
||||||
|
env:
|
||||||
|
PACKAGE_NAME: rancher-k3d-bin
|
||||||
|
COMMIT_USERNAME: Travis CI
|
||||||
|
COMMIT_EMAIL: iwilltry42+k3d@gmail.com
|
||||||
|
COMMIT_MESSAGE: "[CI] Updated to $NEW_RELEASE"
|
||||||
|
SSH_PRIVATE_KEY: ${{ secrets.AUR_PRIVATE_KEY }}
|
54
deploy-aur.sh
Executable file
54
deploy-aur.sh
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Setup base system
|
||||||
|
pacman -Syu --noconfirm openssh git gettext binutils
|
||||||
|
sed -i "s/INTEGRITY_CHECK=.*$/INTEGRITY_CHECK=(sha256)/" /etc/makepkg.conf
|
||||||
|
useradd -ms /bin/bash aur
|
||||||
|
su -m aur <<'EOSU'
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
export HOME=/home/aur
|
||||||
|
export REPO_URL="ssh://aur@aur.archlinux.org/$PACKAGE_NAME.git"
|
||||||
|
export NEW_RELEASE="${COMMIT_REF##*/v}"
|
||||||
|
export COMMIT_MESSAGE="$(echo $COMMIT_MESSAGE | envsubst)"
|
||||||
|
echo "---------------- AUR Package version $PACKAGE_NAME/$NEW_RELEASE ----------------"
|
||||||
|
|
||||||
|
# SSH & GIT Setup
|
||||||
|
mkdir "$HOME/.ssh" && chmod 700 "$HOME/.ssh"
|
||||||
|
ssh-keyscan -t ed25519 aur.archlinux.org >> "$HOME/.ssh/known_hosts"
|
||||||
|
echo -e "$SSH_PRIVATE_KEY" | base64 -d > "$HOME/.ssh/id_rsa"
|
||||||
|
chmod 600 "$HOME/.ssh/id_rsa"
|
||||||
|
git config --global user.name "$COMMIT_USERNAME"
|
||||||
|
git config --global user.email "$COMMIT_EMAIL"
|
||||||
|
|
||||||
|
# Clone AUR Package
|
||||||
|
cd /tmp
|
||||||
|
echo "$REPO_URL"
|
||||||
|
git clone "$REPO_URL"
|
||||||
|
cd "$PACKAGE_NAME"
|
||||||
|
|
||||||
|
# Generate a dummy PKGBUILD so we can grab the latest releases SHA256SUMS
|
||||||
|
cat PKGBUILD.template | envsubst '$NEW_RELEASE' > PKGBUILD
|
||||||
|
|
||||||
|
export SHA256_SUMS_x86_64="$(CARCH=x86_64 makepkg -g 2> /dev/null)"
|
||||||
|
echo "SHA256_SUMS_x86_64: $SHA256_SUMS_x86_64"
|
||||||
|
|
||||||
|
export SHA256_SUMS_aarch64="$(CARCH=aarch64 makepkg -g 2> /dev/null)"
|
||||||
|
echo "SHA256_SUMS_aarch64: $SHA256_SUMS_aarch64"
|
||||||
|
|
||||||
|
export SHA256_SUMS_arm="$(CARCH=arm makepkg -g 2> /dev/null)"
|
||||||
|
echo "SHA256_SUMS_arm: $SHA256_SUMS_arm"
|
||||||
|
|
||||||
|
cat PKGBUILD.template | envsubst '$NEW_RELEASE$SHA256_SUMS_x86_64$SHA256_SUMS_aarch64$SHA256_SUMS_arm' > PKGBUILD
|
||||||
|
makepkg --printsrcinfo > .SRCINFO
|
||||||
|
|
||||||
|
echo "------------- BUILD DONE ----------------"
|
||||||
|
git add PKGBUILD .SRCINFO
|
||||||
|
git commit -m "$COMMIT_MESSAGE"
|
||||||
|
git push
|
||||||
|
echo "------------- PUBLISH DONE ----------------"
|
||||||
|
EOSU
|
Loading…
Reference in New Issue
Block a user