Add CLI testing to CI #100
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
tags: | |
- "*" | |
branches: | |
- main | |
pull_request: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: goto-bus-stop/setup-zig@v2 | |
- run: zig build test | |
- run: zig build | |
- run: export PATH=$PATH:$(pwd)/zig-out/bin | |
- run: python3 run-tests.py | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: goto-bus-stop/setup-zig@v2 | |
- run: zig fmt --check src/*.zig | |
build: | |
needs: [test, lint] | |
if: startsWith(github.ref, 'refs/tags/v') | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
[ | |
x86_64-linux, | |
aarch64-linux, | |
riscv64-linux, | |
x86_64-windows, | |
aarch64-macos, | |
] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Zig | |
uses: goto-bus-stop/setup-zig@v2 | |
with: | |
version: master | |
- name: Build | |
run: zig build -Doptimize=ReleaseSafe -Dtarget=${{ matrix.target }} | |
- name: Rename | |
# rename everything in the directory to have a matrix target prefix for uploading later | |
run: | | |
for f in zig-out/bin/*; do | |
mv "$f" "zig-out/bin/${{ matrix.target }}-$(basename "$f")" | |
done | |
- name: Archive executable | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.target }}-pc | |
path: zig-out/bin/* | |
release: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download Artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
path: artifacts | |
- name: Display structure of downloaded files | |
run: ls -R | |
working-directory: artifacts | |
- name: Create Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: artifacts/**/* |