Skip to content

build & release packages #158

build & release packages

build & release packages #158

Workflow file for this run

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: 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