Zig 0.17.0 master #2889
This file contains hidden or 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: | |
| branches: [main, zig-master] | |
| pull_request: | |
| branches: [main, zig-master] | |
| workflow_dispatch: | |
| env: | |
| ZIG_VERSION: master | |
| jobs: | |
| formatting-check: | |
| name: Formatting check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| - name: Run zig fmt | |
| run: zig fmt --check . | |
| # Make sure that we are building examples and invoking tests for each port | |
| validate-ports-checks: | |
| name: Validate Port Checks | |
| continue-on-error: true | |
| runs-on: ubuntu-latest | |
| steps: | |
| - run: sudo apt install -y yq | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - run: find -d 2 port | |
| unit-test-regz: | |
| name: Unit Test Regz | |
| 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@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| - name: Unit Test Regz | |
| run: zig build 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@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| - name: Unit Test UF2 | |
| run: zig build test | |
| working-directory: tools/uf2 | |
| unit-test-esp-image: | |
| name: Unit Test ESP Image | |
| 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@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| - name: Unit Test ESP Image | |
| run: zig build test | |
| working-directory: tools/esp-image | |
| test-printer: | |
| name: Test Printer | |
| 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@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| - name: Build Printer | |
| run: zig build | |
| working-directory: tools/printer | |
| - name: Test Printer | |
| run: zig build test | |
| working-directory: tools/printer | |
| build-sorcerer: | |
| name: Build Sorcerer | |
| if: false # Temporarily disabled: Sorcerer dependency fetches are flaky on CI. https://github.com/ZigEmbeddedGroup/microzig/issues/949 | |
| continue-on-error: true | |
| strategy: | |
| matrix: | |
| # Skip Ubuntu - sorcerer is a GUI tool with complex dependencies (SDL3, dvui) | |
| # that are difficult to satisfy in headless CI environments | |
| os: [windows-latest, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| - name: Build Sorcerer | |
| run: zig build | |
| working-directory: tools/sorcerer | |
| - name: Test Sorcerer | |
| run: zig build test | |
| working-directory: tools/sorcerer | |
| stm32-gen-check: | |
| name: Check that stm32 generated code is up to date | |
| continue-on-error: true | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| - name: Setup Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| - name: Generate Code | |
| run: zig build -Dgenerate | |
| working-directory: port/stmicro/stm32 | |
| - name: Check for code diffs | |
| run: | | |
| if [[ $(git status --porcelain | grep -v '^??') ]]; then | |
| echo "Code differences detected:" | |
| git diff | |
| echo "Please commit or fix these changes to proceed." | |
| exit 1 | |
| else | |
| 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@v2 | |
| 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, espressif/esp, raspberrypi/rp2xxx, stmicro/stm32, wch/ch32v] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Zig | |
| uses: mlugg/setup-zig@v2 | |
| 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/atmega, | |
| microchip/samd51, | |
| nordic/nrf5x, | |
| nxp/lpc, | |
| nxp/mcx, | |
| stmicro/stm32, | |
| texasinstruments/msp430, | |
| raspberrypi/rp2xxx, | |
| wch/ch32v, | |
| no_hal/stm32_l031, | |
| ] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Zig | |
| uses: mlugg/setup-zig@v2 | |
| 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: Test Foundation Libc | |
| if: false # TODO: investigate libc issues on master | |
| 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@v2 | |
| with: | |
| version: ${{ env.ZIG_VERSION }} | |
| - name: Generate and test packages | |
| working-directory: modules/foundation-libc/test | |
| run: | | |
| zig build test | |
| build-website: | |
| name: Build Website | |
| continue-on-error: true | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: master | |
| - name: Build Website | |
| run: zig build | |
| working-directory: website |