Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize CI #366

Closed
wants to merge 2 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
190 changes: 67 additions & 123 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,44 +8,88 @@ on:

env:
ZIG_VERSION: master
CACHE_DIR: ${{ github.workspace }}/.zig-cache

jobs:
unit-test-regz:
name: Unit Test Regz
build_and_test:
name: Build and Test
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Zig
uses: mlugg/setup-zig@v1
with:
version: ${{ env.ZIG_VERSION }}

- name: Unit Test Regz
run: zig build test
run: zig build --cache-dir $CACHE_DIR test
working-directory: tools/regz

unit-test-uf2:
name: Unit Test UF2
continue-on-error: true
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Zig
uses: mlugg/setup-zig@v1
with:
version: ${{ env.ZIG_VERSION }}
- name: Unit Test UF2
run: zig build test
run: zig build --cache-dir $CACHE_DIR test
working-directory: tools/uf2

- name: Validate Foundation Libc
run: zig build --cache-dir $CACHE_DIR validate
working-directory: modules/foundation-libc

- name: Build
run: zig build --cache-dir $CACHE_DIR -Doptimize=ReleaseSmall

- name: Unit test port/gigadevice/gd32
run: zig build --cache-dir $CACHE_DIR test
working-directory: port/gigadevice/gd32

- name: Unit test port/raspberrypi/rp2xxx
run: zig build --cache-dir $CACHE_DIR test
working-directory: port/raspberrypi/rp2xxx

- name: Unit test port/stmicro/stm32
run: zig build --cache-dir $CACHE_DIR test
working-directory: port/stmicro/stm32

- name: Build examples/espressif/esp
run: zig build --cache-dir $CACHE_DIR -Doptimize=ReleaseSmall --summary all
working-directory: examples/espressif/esp

- name: Build examples/gigadevice/gd32
run: zig build --cache-dir $CACHE_DIR -Doptimize=ReleaseSmall --summary all
working-directory: examples/gigadevice/gd32

- name: Build examples/microchip/avr
run: zig build --cache-dir $CACHE_DIR -Doptimize=ReleaseSmall --summary all
working-directory: examples/microchip/avr

- name: Build examples/microchip/atsam
run: zig build --cache-dir $CACHE_DIR -Doptimize=ReleaseSmall --summary all
working-directory: examples/microchip/atsam

- name: Build examples/nordic/nrf5x
run: zig build --cache-dir $CACHE_DIR -Doptimize=ReleaseSmall --summary all
working-directory: examples/nordic/nrf5x

- name: Build examples/nxp/lpc
run: zig build --cache-dir $CACHE_DIR -Doptimize=ReleaseSmall --summary all
working-directory: examples/nxp/lpc

- name: Build examples/stmicro/stm32
run: zig build --cache-dir $CACHE_DIR -Doptimize=ReleaseSmall --summary all
working-directory: examples/stmicro/stm32

- name: Build examples/raspberrypi/rp2xxx
working-directory: examples/raspberrypi/rp2xxx
run: zig build --cache-dir $CACHE_DIR -Doptimize=ReleaseSmall --summary all

- name: Build Website
run: zig build --cache-dir $CACHE_DIR
working-directory: website


stm32-gen-check:
name: Check that stm32 generated code is up to date
continue-on-error: true
Expand All @@ -58,7 +102,7 @@ jobs:
with:
version: ${{ env.ZIG_VERSION }}
- name: Generate Code
run: zig build -Dgenerate
run: zig build --cache-dir $CACHE_DIR -Dgenerate
working-directory: port/stmicro/stm32
- name: Check for code diffs
run: |
Expand All @@ -71,106 +115,6 @@ jobs:
echo "No code differences detected."
fi

build:
name: Build
continue-on-error: true
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Zig
uses: mlugg/setup-zig@v1
with:
version: ${{ env.ZIG_VERSION }}
- name: Build
run: zig build -Doptimize=ReleaseSmall

unit-test-ports:
name: Unit Test Ports
continue-on-error: true
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
port_dir: [gigadevice/gd32, raspberrypi/rp2xxx, stmicro/stm32]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Zig
uses: mlugg/setup-zig@v1
with:
version: ${{ env.ZIG_VERSION }}
- name: Unit Test Ports
run: zig build test
working-directory: port/${{ matrix.port_dir }}

build-examples:
name: Build Examples
continue-on-error: true
runs-on: ubuntu-latest
strategy:
matrix:
example_dir:
[
espressif/esp,
gigadevice/gd32,
microchip/avr,
microchip/atsam,
nordic/nrf5x,
nxp/lpc,
stmicro/stm32,
raspberrypi/rp2xxx,
# TODO: investigate why these take up too much flash
#wch/ch32v,
]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Zig
uses: mlugg/setup-zig@v1
with:
version: ${{ env.ZIG_VERSION }}
- name: Build Examples
run: zig build -Doptimize=ReleaseSmall --summary all
working-directory: examples/${{ matrix.example_dir }}

validate-foundation-libc:
name: Validate Foundation Libc
continue-on-error: true
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Zig
uses: mlugg/setup-zig@v1
with:
version: ${{ env.ZIG_VERSION }}
- name: Generate and validate packages
working-directory: modules/foundation-libc
run: |
zig build validate

build-website:
name: Build Website
continue-on-error: true
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Zig
uses: mlugg/setup-zig@v1
with:
version: ${{ env.ZIG_VERSION }}
- name: Build Website
run: zig build
working-directory: website

dry-run-packaging:
name: Dry Run Packaging
continue-on-error: true
Expand All @@ -184,14 +128,14 @@ jobs:
version: ${{ env.ZIG_VERSION }}
- name: Dry Run Packaging
run: |
MICROZIG_VERSION=$(zig build package -- get-version)
MICROZIG_VERSION=$(zig build --cache-dir $CACHE_DIR package -- get-version)
echo microzig version: $MICROZIG_VERSION
zig build package -- http://localhost:8000
zig build --cache-dir $CACHE_DIR package -- http://localhost:8000
python3 -m http.server 8000 --directory boxzer-out &
sleep 1

cd tools/package-test
zig fetch --save=microzig http://localhost:8000/${MICROZIG_VERSION}/microzig.tar.gz
zig build -Doptimize=ReleaseSmall
zig build --cache-dir $CACHE_DIR -Doptimize=ReleaseSmall

jobs -p | xargs kill
Loading