axispx d0b69200b9 Fix CI silent failure bug
CI failed silently during "Build artifacts" stage when build failed in
the bash for loop causing the overall job to be successful even when it
wasn't.
2024-03-26 13:38:37 +05:45

87 lines
2.9 KiB
YAML

# This is a basic workflow to help you get started with Actions
name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
- cron: '0 0 * * *' #Makes sense, we are testing against master
workflow_dispatch:
jobs:
build:
strategy:
matrix:
#Deactivated windows for I don't know why it fails
#os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
with:
submodules: true
- name: Setup Zig
# You may pin to the exact commit or the version.
# uses: goto-bus-stop/setup-zig@41ae19e72e21b9a1380e86ff9f058db709fc8fc6
uses: goto-bus-stop/setup-zig@v2.2.0
with:
version: master
cache: true # Let's see how this behaves
- run: zig version
- run: zig env
- name: Build
run: zig build --verbose
- name: Run Tests
run: zig build test
- name: Build artifacts
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
declare -a targets=("x86_64-windows" "x86_64-linux" "x86_64-macos" "aarch64-macos")
mkdir -p "artifacts/"
root=$(pwd)
cd cli
for target in "${targets[@]}"; do
mkdir -p $root/artifacts/$target
echo "Building target ${target}..."
if ! zig build -Dtarget=${target} -Doptimize=ReleaseSafe --prefix $root/artifacts/${target}/; then
exit 1
fi
sed -e '1,5d' < $root/README.md > $root/artifacts/${target}/README.md
cp $root/LICENSE $root/artifacts/${target}/
done
wait
- name: Upload artifacts Target Windows
if: ${{ matrix.os == 'ubuntu-latest' && !contains(fromJSON('["pull_request"]'), github.event_name) }}
uses: actions/upload-artifact@v2
with:
name: build-windows
path: artifacts/x86_64-windows
- name: Upload artifacts Target Linux
if: ${{ matrix.os == 'ubuntu-latest' && !contains(fromJSON('["pull_request"]'), github.event_name) }}
uses: actions/upload-artifact@v2
with:
name: build-linux
path: artifacts/x86_64-linux
- name: Upload artifacts Target MacOS
if: ${{ matrix.os == 'ubuntu-latest' && !contains(fromJSON('["pull_request"]'), github.event_name) }}
uses: actions/upload-artifact@v2
with:
name: build-macos-x86
path: artifacts/x86_64-macos
- name: Upload artifacts Target MacOS 2
if: ${{ matrix.os == 'ubuntu-latest' && !contains(fromJSON('["pull_request"]'), github.event_name) }}
uses: actions/upload-artifact@v2
with:
name: build-macos-aarch64
path: artifacts/aarch64-macos