Skip to content

Fix workflow bash substitution syntax error #3

Fix workflow bash substitution syntax error

Fix workflow bash substitution syntax error #3

name: Build AppImages (Podman)
on:
push:
branches: [ main, master ]
tags: [ 'v*' ]
pull_request:
branches: [ main, master ]
workflow_dispatch:
permissions:
contents: write
jobs:
build-appimage:
name: Build ${{ matrix.variant }}
strategy:
fail-fast: false
matrix:
include:
- variant: glibc-x86_64
image_tag: glibc-2.28-x86_64
runner: ubuntu-latest
containerfile: Containerfile.glibc-x86_64
- variant: glibc-aarch64
image_tag: glibc-2.28-aarch64
runner: ubuntu-24.04-arm
containerfile: Containerfile.glibc-aarch64
- variant: musl-x86_64
image_tag: musl-x86_64
runner: ubuntu-latest
containerfile: Containerfile.musl-x86_64
- variant: musl-aarch64
image_tag: musl-aarch64
runner: ubuntu-24.04-arm
containerfile: Containerfile.musl-aarch64
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout picoforge-linux-builds
uses: actions/checkout@v7
- name: Checkout PicoForge source code
uses: actions/checkout@v7
with:
repository: librekeys/picoforge
path: picoforge
- name: Pull public builder image from GHCR (with local build fallback)
run: |
IMAGE_NAME="ghcr.io/${{ github.repository_owner }}/picoforge-appimage-builder:${{ matrix.image_tag }}"
echo "Attempting to pull public container image: ${IMAGE_NAME}..."
if ! podman pull "${IMAGE_NAME}"; then
echo "Prebuilt container image not found on GHCR. Building locally via ${{ matrix.containerfile }}..."
podman build -t "${IMAGE_NAME}" -f ${{ matrix.containerfile }} .
fi
- name: Execute AppImage build inside container
run: |
IMAGE_NAME="ghcr.io/${{ github.repository_owner }}/picoforge-appimage-builder:${{ matrix.image_tag }}"
mkdir -p dist
podman run --rm \
-v "${{ github.workspace }}":/workspace:z \
"${IMAGE_NAME}" \
/workspace/build.sh ${{ matrix.variant }}
- name: Upload AppImage Artifact
uses: actions/upload-artifact@v7
with:
name: picoforge-appimage-${{ matrix.variant }}
path: dist/*.AppImage
- name: Create GitHub Release on Tag
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v3
with:
files: dist/*.AppImage
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}