build: orthonormalize the interface #4286
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: Core Pipeline | |
concurrency: | |
group: core-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
on: | |
# Run on Merge queue | |
merge_group: | |
# Run CI for any PRs that target 'main' when they are opened or updated. | |
pull_request: | |
branches: | |
- 'main' | |
types: | |
- opened | |
- synchronize | |
workflow_call: | |
jobs: | |
smoke: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: ./scripts/install_zig.sh | |
- run: ./zig/zig build lint | |
- run: ./zig/zig build check | |
linux: | |
uses: ./.github/workflows/linux.yml | |
clients: | |
strategy: | |
matrix: | |
include: | |
- { os: 'ubuntu-latest', language: 'dotnet', language_version: '8.0.x' } | |
- { os: 'ubuntu-latest', language: 'go', language_version: '1.21' } | |
- { os: 'ubuntu-latest', language: 'java', language_version: '11' } | |
- { os: 'ubuntu-latest', language: 'java', language_version: '21' } | |
- { os: 'ubuntu-latest', language: 'node', language_version: '18.x' } | |
- { os: 'ubuntu-latest', language: 'node', language_version: '20.x' } | |
- { os: 'windows-latest', language: 'dotnet', language_version: '8.0.x' } | |
- { os: 'windows-latest', language: 'go', language_version: '1.21' } | |
- { os: 'windows-latest', language: 'java', language_version: '11' } | |
- { os: 'windows-latest', language: 'java', language_version: '21' } | |
- { os: 'windows-latest', language: 'node', language_version: '18.x' } | |
- { os: 'windows-latest', language: 'node', language_version: '20.x' } | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- if: matrix.language == 'dotnet' | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: ${{ matrix.language_version }} | |
- if: matrix.language == 'go' | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.language_version }} | |
- if: matrix.language == 'java' | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ matrix.language_version }} | |
distribution: 'temurin' | |
- if: matrix.language == 'node' | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.language_version }} | |
- run: ./scripts/install_zig.${{ matrix.os == 'windows-latest' && 'bat' || 'sh' }} | |
- run: ./zig/zig build scripts -- ci --language=${{ matrix.language }} | |
# Work around GitHub considering Skipped jobs success for "Require status checks before merging" | |
# See also: | |
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-status-checks-before-merging | |
# https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks#handling-skipped-but-required-checks | |
core-pipeline: | |
if: always() | |
needs: | |
- smoke | |
- linux | |
- clients | |
runs-on: ubuntu-latest | |
steps: | |
- name: All Core CI Jobs Passed | |
if: needs.smoke.result == 'success' && needs.linux.result == 'success' && needs.clients.result == 'success' | |
working-directory: ./ | |
run: exit 0 | |
- name: A Core CI Job Failed | |
if: needs.smoke.result != 'success' || needs.linux.result != 'success' || needs.clients.result != 'success' | |
working-directory: ./ | |
run: exit 1 |