Skip to content

upgpkg: mkinitcpio-pkcs11 0.5-1 #6

upgpkg: mkinitcpio-pkcs11 0.5-1

upgpkg: mkinitcpio-pkcs11 0.5-1 #6

Workflow file for this run

name: package-build
env:
# don't use spaces newlines or similar for these, it will not work
RELEASE_NAME: repository
REPO_NAME: custom
GPGKEY: A87E7322DD5ABA13A4099927208F3CC866C53553
on:
push:
branches: master
jobs:
build:
runs-on: ubuntu-latest
container:
image: archlinux:base-devel
options: --privileged
steps:
- name: Prepare environment
run: |
systemd-machine-id-setup
pacman-key --init
pacman -Syu --noconfirm git expac devtools
cat << EOF >> /etc/makepkg.conf
GPGKEY="$GPGKEY"
PACKAGER="Github Actions <$GITHUB_SERVER_URL/$GITHUB_REPOSITORY>"
PKGDEST=/repository
EOF
useradd -m -G wheel -s /bin/bash build
echo "%wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/00_wheel
mkdir -p /home/build/.gnupg
echo "keyserver-options auto-key-retrieve" > /home/build/.gnupg/gpg.conf
echo "keyserver hkps://keys.openpgp.org" >> /home/build/.gnupg/gpg.conf
chown build:build /home/build/.gnupg/{,gpg.conf}
# needed because these docker images don't have proper locale support
sed -i "s/en_US de_DE/en_US/g" /usr/bin/mkarchroot
dbus-uuidgen --ensure=/etc/machine-id
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- name: Download repository database
run: |
mkdir /repository
# makepkg complains about directory permissions, even if it's only run
# with --packagelist
chown build:root /repository
cd /repository
BASE_URL="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/releases/download/$RELEASE_NAME/$REPO_NAME"
curl -fL --remote-name-all "$BASE_URL"{.db.tar.gz,.files.tar.gz} \
|| repo-add "$REPO_NAME.db.tar.gz"
ln -sf "/repository/$REPO_NAME.db.tar.gz" "/repository/$REPO_NAME.db"
ln -sf "/repository/$REPO_NAME.files.tar.gz" "/repository/$REPO_NAME.files"
mv "$GITHUB_WORKSPACE/.github/workflows/pacman.conf" /etc/pacman.conf
mv "$GITHUB_WORKSPACE"/.github/workflows/{build.sh,aur-graph} /usr/bin/
cat << EOF >> /etc/pacman.conf
[$REPO_NAME]
SigLevel = Required DatabaseOptional
Server = file:///repository
Server = $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/releases/download/repo
EOF
pacman -Syu --noconfirm
- name: Import GPG Key
run: |
printf "%s" "$repo_key" | gpg --import
printf "%s" "$repo_key" | pacman-key -a -
pacman-key --lsign-key "$GPGKEY"
env:
repo_key: ${{ secrets.REPO_KEY }}
- name: Build Arch Linux Package(s)
run: |
chown -Rh build:build $GITHUB_WORKSPACE
cd $GITHUB_WORKSPACE
build.sh
rm -f /repository/*.old{,.sig}
# BUG: github doesn't seem to support colons (:) in the filenames, meaning
# packages with a EPOCH will fail to download as github silently replaces
# the colon with a dot.
- name: Upload package artefact(s)
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{secrets.GITHUB_TOKEN}}
tag: ${{env.RELEASE_NAME}}
file: '/repository/*'
file_glob: true
overwrite: true