mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 17:11:56 +00:00
6dd52dfd9e
(cherry picked from commit 0613395b20)
Co-authored-by: Owen Zimmerman <123591347+Owen-sz@users.noreply.github.com>
121 lines
3.9 KiB
YAML
121 lines
3.9 KiB
YAML
# for each folder in anda/
|
|
# generate a new workflow for each folder in anda/
|
|
name: Automatically build packages
|
|
permissions:
|
|
contents: read
|
|
on:
|
|
push:
|
|
paths:
|
|
- anda/**
|
|
branches:
|
|
- f42
|
|
pull_request:
|
|
branches:
|
|
- f42
|
|
merge_group:
|
|
branches:
|
|
- f42
|
|
workflow_dispatch:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
manifest:
|
|
runs-on: ubuntu-22.04
|
|
outputs:
|
|
build_matrix: ${{ steps.generate_build_matrix.outputs.build_matrix }}
|
|
container:
|
|
image: ghcr.io/terrapkg/builder:f42
|
|
options: --cap-add=SYS_ADMIN --privileged
|
|
steps:
|
|
- name: Set workspace as safe
|
|
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Generate build matrix
|
|
id: generate_build_matrix
|
|
run: anda ci >> $GITHUB_OUTPUT
|
|
build:
|
|
needs: manifest
|
|
uses: ./.github/workflows/json-build.yml
|
|
secrets: inherit
|
|
with:
|
|
packages: ${{ needs.manifest.outputs.build_matrix }}
|
|
publish: ${{ github.event_name == 'push' }}
|
|
|
|
appstream:
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: ghcr.io/terrapkg/appstream-generator:main
|
|
steps:
|
|
- name: Download artifacts
|
|
uses: actions/download-artifact@v7
|
|
with:
|
|
merge-multiple: true
|
|
path: ./artifacts
|
|
- name: Generate test catalog
|
|
# run appstream-builder, then add step summary
|
|
run: |
|
|
set -x
|
|
appstream-builder -v \
|
|
--packages-dir=artifacts/rpms \
|
|
--icons-dir=icons \
|
|
--include-failed \
|
|
--output-dir=output \
|
|
--uncompressed-icons \
|
|
--origin=test \
|
|
--basename=test \
|
|
--veto-ignore=missing-parents \
|
|
--veto-ignore=missing-info 2>&1 | tee asb.log
|
|
|
|
- name: Run appstreamcli validate
|
|
run: |
|
|
echo "## AppStream MetaInfo Validation" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo '```xml' >> $GITHUB_STEP_SUMMARY
|
|
for file in output/test.xml.gz; do
|
|
appstreamcli validate $file >> $GITHUB_STEP_SUMMARY || true
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
done
|
|
echo '```' >> $GITHUB_STEP_SUMMARY
|
|
|
|
- name: Export logs
|
|
id: export_logs
|
|
run: |
|
|
echo "## AppStream Builder Log" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo '```log' >> $GITHUB_STEP_SUMMARY
|
|
cat asb.log >> $GITHUB_STEP_SUMMARY
|
|
echo '```' >> $GITHUB_STEP_SUMMARY
|
|
echo '---' >> $GITHUB_STEP_SUMMARY
|
|
|
|
- name: Report Summary
|
|
id: report_summary
|
|
run: |
|
|
echo "## AppStream Builder Report" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
if grep -q "veto" asb.log; then
|
|
echo "::group::Vetoed packages"
|
|
echo "### Vetoed packages" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo '```xml' >> $GITHUB_STEP_SUMMARY
|
|
echo "$(grep -i 'veto' asb.log)" >> $GITHUB_STEP_SUMMARY
|
|
echo '```' >> $GITHUB_STEP_SUMMARY
|
|
echo "::warning file=asb.log::Some packages were vetoed during AppStream generation. Please review the 'Vetoed packages' section in the summary for details."
|
|
echo "::endgroup::"
|
|
fi
|
|
echo "## Full Data Summary" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "### Generated Appstream files:" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
for file in output/*.xml.gz; do
|
|
echo "#### \`$file\`" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo '```xml' >> $GITHUB_STEP_SUMMARY
|
|
zcat "$file" >> $GITHUB_STEP_SUMMARY
|
|
echo '```' >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
done
|