build & release packages #164
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build & release packages | |
| concurrency: | |
| group: build-${{ github.ref }} | |
| cancel-in-progress: true | |
| on: | |
| schedule: | |
| - cron: "0 7 1/7 * *" | |
| workflow_dispatch: | |
| inputs: | |
| ONE_PACKAGE: | |
| description: 'Set to the name of only one package to be built, package name only without -nano or -mini' | |
| required: false | |
| default: '' | |
| FORCE_BUILD: | |
| description: 'Set to 1 to force building even if version does not match with upstream' | |
| required: false | |
| default: '0' | |
| jobs: | |
| build: | |
| name: "Build: ${{ matrix.script }} (${{ matrix.arch }})" | |
| permissions: | |
| actions: read | |
| security-events: write | |
| contents: write | |
| runs-on: ${{ matrix.runs-on }} | |
| continue-on-error: false | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: llvm-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: llvm-nano | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: llvm-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: llvm-nano | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: libxml2-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: libxml2-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: qt6-base-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: qt6-base-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: gtk3-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: gtk3-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: gtk4-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: gtk4-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: gdk-pixbuf2-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: gdk-pixbuf2-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: librsvg-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: librsvg-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: ffmpeg-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: ffmpeg-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: opus-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: opus-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: mesa-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: mesa-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: mesa-nano | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: mesa-nano | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: mesa-zink-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: mesa-zink-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: mangohud-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: mangohud-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: icu-mini | |
| - arch: aarch64 | |
| platform: linux/arm64 | |
| runs-on: ubuntu-24.04-arm | |
| script: icu-mini | |
| - arch: x86_64 | |
| platform: linux/amd64 | |
| runs-on: ubuntu-24.04 | |
| script: intel-media-driver-mini | |
| container: | |
| image: ghcr.io/pkgforge-dev/archlinux:latest | |
| env: | |
| CCACHE_DIR: ${{ github.workspace }}/.ccache | |
| CCACHE_COMPILERCHECK: content | |
| CCACHE_SLOPPINESS: time_macros | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: set up ccache | |
| if: ${{ matrix.script != 'qt6-base-mini' }} | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ env.CCACHE_DIR }} | |
| key: ${{ runner.os }}-ccache-${{ matrix.script }}-${{ matrix.arch }}-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-ccache-${{ matrix.script }}-${{ matrix.arch }}- | |
| - name: set up sccache | |
| if: ${{ matrix.script == 'qt6-base-mini' }} | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/sccache/ | |
| key: ${{ runner.os }}-sccache-${{ matrix.script }}-${{ matrix.arch }}-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-sccache-${{ matrix.script }}-${{ matrix.arch }}- | |
| - name: prepare container | |
| run: /bin/sh ./bin/prepare-build | |
| - name: build package | |
| env: | |
| FORCE_BUILD: ${{ github.event.inputs.FORCE_BUILD }} | |
| ONE_PACKAGE: ${{ github.event.inputs.ONE_PACKAGE }} | |
| run: /bin/sh ./bin/build-package ${{ matrix.script }}.sh | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ format('{0}-{1}', matrix.script, matrix.arch) }} | |
| path: "dist" | |
| release: | |
| name: "release" | |
| if: ${{ github.ref_name == 'main' }} | |
| needs: [build] | |
| permissions: | |
| actions: read | |
| security-events: write | |
| contents: write | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| pattern: "*" | |
| merge-multiple: true | |
| - name: release | |
| uses: softprops/action-gh-release@v2.3.3 | |
| with: | |
| name: "Continuous build" | |
| tag_name: continuous | |
| prerelease: false | |
| make_latest: true | |
| target_commitish: ${{ github.sha }} | |
| files: | | |
| *.pkg.tar.zst | |
| *.pkg.tar.xz |