Files

39 lines
1.2 KiB
YAML

# Build and test every push; publish a release for every v* tag. The
# release notes are the annotated tag's message: write them for users
# (what changed for them), not as a commit list.
# The release package is built the same way on every push, so a tag never
# ships something that has not been built before.
name: build
on:
push:
pull_request:
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # git describe needs the tags for the version
- name: Fetch toolchain and SDK headers
run: scripts/fetch-deps.sh
- name: Host tests
run: make test
- name: Release package
run: make dist
- uses: actions/upload-artifact@v4
with:
name: frame-autopass-${{ github.sha }}
path: dist/
- name: Publish release
if: startsWith(github.ref, 'refs/tags/v')
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release create "$GITHUB_REF_NAME" --title "$GITHUB_REF_NAME" --notes-from-tag \
dist/frame-autopass-aarch64.tar.gz dist/frame-autopass-aarch64.tar.gz.sha256 dist/install.sh