mirror of https://github.com/k3d-io/k3d
[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 accountpull/395/head
parent
8612b76577
commit
e5660f4b1f
@ -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 }} |
@ -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 }} |
@ -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