From 4200a53f5a60850678d7aed0cc1a21e1c8a6fa7c Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 13 Nov 2025 11:59:27 +0100 Subject: [PATCH 1/3] Add first draft for CI build --- .github/workflows/arch-makepkg.yml | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/arch-makepkg.yml diff --git a/.github/workflows/arch-makepkg.yml b/.github/workflows/arch-makepkg.yml new file mode 100644 index 0000000..438bc99 --- /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 + - 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 package signing key + run: | + sudo -u builder gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 58117AFA1F85B3EEC154677D615D449FE6E6A235 + - name: Build package with makepkg + run: | + sudo -u builder env \ + PKGDEST="$PKGDEST" \ + SRCDEST="$SRCDEST" \ + MAKEPKG_FLAGS="--syncdeps --cleanbuild --noconfirm --log" \ + bash -lc "makepkg \$MAKEPKG_FLAGS" + - name: Upload package artifact + uses: actions/upload-artifact@v4 + with: + name: arch-package-${{ github.run_number }} + path: | + ${{ env.PKGDEST }}/*.pkg.tar.zst + *.log From cbab712c8625a03d72fc61b74040286396401fd6 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 13 Nov 2025 16:44:43 +0100 Subject: [PATCH 2/3] remove upload of log files "--log" sends to the console anyway --- .github/workflows/arch-makepkg.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/arch-makepkg.yml b/.github/workflows/arch-makepkg.yml index 438bc99..b025e11 100644 --- a/.github/workflows/arch-makepkg.yml +++ b/.github/workflows/arch-makepkg.yml @@ -47,4 +47,3 @@ jobs: name: arch-package-${{ github.run_number }} path: | ${{ env.PKGDEST }}/*.pkg.tar.zst - *.log From 4ef3ee18ba4e4440b5741c80266d596d3a751d3e Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 13 Nov 2025 17:48:44 +0100 Subject: [PATCH 3/3] apply suggestions from code review --- .github/workflows/arch-makepkg.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/arch-makepkg.yml b/.github/workflows/arch-makepkg.yml index b025e11..0a32966 100644 --- a/.github/workflows/arch-makepkg.yml +++ b/.github/workflows/arch-makepkg.yml @@ -24,26 +24,27 @@ jobs: run: | pacman-key --init pacman-key --populate archlinux - pacman -Syu --noconfirm --needed git base-devel sudo gnupg + 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 package signing key + - name: Import Cryptomator release signing key run: | - sudo -u builder gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 58117AFA1F85B3EEC154677D615D449FE6E6A235 + 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_FLAGS="--syncdeps --cleanbuild --noconfirm --log" \ - bash -lc "makepkg \$MAKEPKG_FLAGS" + 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