js8call/.github/workflows/ci-linux.yml
Chris-AC9KH 6912136ff9 - Add README.txt to tools directory
- Move JS8Call-Build-AppImage.sh from tools to .github/workflows/scripts
2026-06-26 18:06:27 -05:00

80 lines
2.2 KiB
YAML

permissions:
contents: read
attestations: write
id-token: write
name: CI Build for Linux amd64/aarch64
run-name: ${{ github.event.pull_request.title || github.ref_name }} CI Build for Linux
on:
push:
workflow_dispatch:
inputs:
environment:
description: 'Environment to run in'
type: environment
default: CI
required: false
pull_request:
workflow_call:
inputs:
environment:
description: 'Environment to run in'
required: false
type: string
default: CI
jobs:
build:
name: ${{ matrix.os }} (${{ matrix.arch }})
runs-on: ${{ matrix.os }}
environment: ${{ inputs.environment || 'CI' }}
strategy:
fail-fast: false
matrix:
include:
- { os: ubuntu-24.04, arch: x86_64 }
- { os: ubuntu-24.04-arm, arch: aarch64 }
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Build AppImage
run: bash .github/workflows/scripts/JS8Call-Build-AppImage.sh
- name: Import signing key (Release only)
if: ${{ inputs.environment == 'Release' }}
run: |
echo "${{ secrets.RELEASE_APPIMAGE_SIGNING_KEY }}" > /tmp/js8call.key.asc
echo "${{ secrets.RELEASE_APPIMAGE_SIGNING_PASS }}" | \
gpg --batch --yes --always-trust \
--passphrase-fd 0 \
--pinentry-mode loopback \
--import /tmp/js8call.key.asc
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Sign AppImage (Release only)
if: ${{ inputs.environment == 'Release' }}
run: |
gpg --batch --yes --pinentry-mode loopback \
--passphrase "${{ secrets.RELEASE_APPIMAGE_SIGNING_PASS }}" \
--detach-sign --armor \
~/JS8Call-*.AppImage
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Attest (Release only)
if: ${{ inputs.environment == 'Release' }}
uses: actions/attest@59d89421af93a897026c735860bf21b6eb4f7b26
with:
subject-path: ~/JS8Call-*.AppImage
- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: JS8Call-${{ matrix.arch }}
path: ~/JS8Call-*.AppImage
archive: false