diff --git a/.github/workflows/arch-makepkg.yml b/.github/workflows/arch-makepkg.yml new file mode 100644 index 0000000..0a32966 --- /dev/null +++ b/.github/workflows/arch-makepkg.yml @@ -0,0 +1,50 @@ +name: Build Arch Linux Package + +on: + push: + pull_request: + workflow_dispatch: + +permissions: + contents: read + +jobs: + makepkg: + name: Build with makepkg + runs-on: ubuntu-latest + container: + image: archlinux:base-devel + env: + PKGDEST: ${{ github.workspace }}/pkgdest + SRCDEST: ${{ github.workspace }}/srcdest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Prepare pacman + run: | + pacman-key --init + pacman-key --populate archlinux + pacman -Syu --noconfirm --needed git base-devel sudo gnupg maven unzip + - name: Create build user + run: | + useradd -m builder + echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers.d/builder + chown -R builder:builder "$GITHUB_WORKSPACE" + install -d -m 0755 -o builder -g builder "$PKGDEST" "$SRCDEST" + - name: Import Cryptomator release signing key + run: | + sudo -u builder gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 58117AFA1F85B3EEC154677D615D449FE6E6A235 || \ + sudo -u builder gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys 58117AFA1F85B3EEC154677D615D449FE6E6A235 + - name: Build package with makepkg + run: | + sudo -u builder env \ + PKGDEST="$PKGDEST" \ + SRCDEST="$SRCDEST" \ + makepkg --syncdeps --cleanbuild --noconfirm --log + - name: Upload package artifact + uses: actions/upload-artifact@v4 + with: + name: arch-package-${{ github.run_number }} + if-no-files-found: error + path: | + ${{ env.PKGDEST }}/*.pkg.tar.zst