diff --git a/.github/workflows/ci.yml b/.github/workflows/linux.yml similarity index 53% rename from .github/workflows/ci.yml rename to .github/workflows/linux.yml index d12ac8a..d98258d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/linux.yml @@ -1,4 +1,4 @@ -name: CI +name: CI (linux) on: workflow_dispatch: @@ -18,11 +18,10 @@ on: jobs: examples: timeout-minutes: 10 - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest] # macos-latest is macos-14, which is arm runner zig: [0.12.0, master] steps: - uses: actions/checkout@v4 @@ -46,38 +45,14 @@ jobs: mysql database: 'public' mysql root password: 'password' mysql user: 'developer' - - name: mysql for macOS - if: matrix.os == 'macos-latest' - run: | - node .github/ci.js + - name: Install deps run: | make install-deps - - name: Set pkg-config(macOS) - if: matrix.os == 'macos-latest' - run: | - prefix=$(brew --prefix) - echo "PKG_CONFIG_PATH=${prefix}/opt/sqlite/lib/pkgconfig:${prefix}/opt/libpq/lib/pkgconfig:${prefix}/opt/mysql-client/lib/pkgconfig" >> ${GITHUB_ENV} - - name: Run examples(Unix) - if: matrix.os == 'ubuntu-latest' + - name: Run examples run: | pkg-config --libs --cflags libpq mysqlclient zig fmt --check src/ zig build zig build run-all --summary all - - - name: Run examples(macOS) - if: matrix.os == 'macos-latest' - run: | - pkg-config --libs --cflags libpq mysqlclient - zig fmt --check src/ - zig build -Dtarget=aarch64-macos - zig build run-all -Dtarget=aarch64-macos --summary all - - - name: Run examples(Windows) - if: matrix.os == 'windows-latest' - run: | - zig.exe fmt --check src/ - zig.exe build - zig.exe build run-all --summary all diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml new file mode 100644 index 0000000..f8d1b1c --- /dev/null +++ b/.github/workflows/macos.yml @@ -0,0 +1,58 @@ +name: CI (macOS) + +on: + workflow_dispatch: + schedule: + - cron: '10 20 * * *' + pull_request: + paths: + - "**.zig" + - ".github/**" + push: + branches: + - main + paths: + - "**.zig" + - ".github/**" + +jobs: + examples: + timeout-minutes: 10 + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + zig: [0.12.0, master] + steps: + - uses: actions/checkout@v4 + - uses: goto-bus-stop/setup-zig@v2 + with: + version: ${{ matrix.zig }} + - name: Start services + uses: ikalnytskyi/action-setup-postgres@v6 + with: + username: postgres + password: postgres + database: postgres + port: 5432 + + - name: Setup MySQL + run: | + node .github/ci.js + + - name: Install deps + run: | + make install-deps + + - name: Set pkg-config + if: matrix.os == 'macos-latest' + run: | + prefix=$(brew --prefix) + echo "PKG_CONFIG_PATH=${prefix}/opt/sqlite/lib/pkgconfig:${prefix}/opt/libpq/lib/pkgconfig:${prefix}/opt/mysql-client/lib/pkgconfig" >> ${GITHUB_ENV} + + - name: Run examples + run: | + pkg-config --libs --cflags libpq mysqlclient + zig fmt --check src/ + zig build -Dtarget=aarch64-macos + zig build run-all -Dtarget=aarch64-macos --summary all