name: CI permissions: contents: read actions: write concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'workflow_dispatch' && inputs.run-id || github.ref }} cancel-in-progress: true on: workflow_dispatch: inputs: run-id: type: string description: The workflow ID to download artifacts (skips the build step) pull_request: paths-ignore: - .vscode/**/* - docs/**/* - examples/**/* push: branches: - main paths-ignore: - .vscode/**/* - docs/**/* - examples/**/* jobs: format: if: ${{ !inputs.run-id }} name: Format uses: ./.github/workflows/run-format.yml secrets: inherit with: zig-version: 0.13.0 permissions: contents: write lint: if: ${{ !inputs.run-id }} name: Lint uses: ./.github/workflows/run-lint.yml secrets: inherit linux-x64: if: ${{ !inputs.run-id }} name: Build linux-x64 uses: ./.github/workflows/build-linux.yml secrets: inherit with: runs-on: ${{ github.repository_owner == 'oven-sh' && 'namespace-profile-bun-ci-linux-x64' || 'ubuntu-latest' }} tag: linux-x64 arch: x64 cpu: haswell canary: true no-cache: true linux-x64-baseline: if: ${{ !inputs.run-id }} name: Build linux-x64-baseline uses: ./.github/workflows/build-linux.yml secrets: inherit with: runs-on: ${{ github.repository_owner == 'oven-sh' && 'namespace-profile-bun-ci-linux-x64' || 'ubuntu-latest' }} tag: linux-x64-baseline arch: x64 cpu: nehalem canary: true no-cache: true linux-aarch64: if: ${{ !inputs.run-id && github.repository_owner == 'oven-sh' }} name: Build linux-aarch64 uses: ./.github/workflows/build-linux.yml secrets: inherit with: runs-on: namespace-profile-bun-ci-linux-aarch64 tag: linux-aarch64 arch: aarch64 cpu: native canary: true no-cache: true darwin-x64: if: ${{ !inputs.run-id }} name: Build darwin-x64 uses: ./.github/workflows/build-darwin.yml secrets: inherit with: runs-on: ${{ github.repository_owner == 'oven-sh' && 'macos-12-large' || 'macos-12' }} tag: darwin-x64 arch: x64 cpu: haswell canary: true darwin-x64-baseline: if: ${{ !inputs.run-id }} name: Build darwin-x64-baseline uses: ./.github/workflows/build-darwin.yml secrets: inherit with: runs-on: ${{ github.repository_owner == 'oven-sh' && 'macos-12-large' || 'macos-12' }} tag: darwin-x64-baseline arch: x64 cpu: nehalem canary: true darwin-aarch64: if: ${{ !inputs.run-id }} name: Build darwin-aarch64 uses: ./.github/workflows/build-darwin.yml secrets: inherit with: runs-on: ${{ github.repository_owner == 'oven-sh' && 'namespace-profile-bun-ci-darwin-aarch64' || 'macos-12' }} tag: darwin-aarch64 arch: aarch64 cpu: native canary: true windows-x64: if: ${{ !inputs.run-id }} name: Build windows-x64 uses: ./.github/workflows/build-windows.yml secrets: inherit with: runs-on: windows tag: windows-x64 arch: x64 cpu: haswell canary: true windows-x64-baseline: if: ${{ !inputs.run-id }} name: Build windows-x64-baseline uses: ./.github/workflows/build-windows.yml secrets: inherit with: runs-on: windows tag: windows-x64-baseline arch: x64 cpu: nehalem canary: true linux-x64-test: if: ${{ inputs.run-id || github.event_name == 'pull_request' }} name: Test linux-x64 needs: linux-x64 uses: ./.github/workflows/run-test.yml secrets: inherit with: run-id: ${{ inputs.run-id }} pr-number: ${{ github.event.number }} runs-on: ${{ github.repository_owner == 'oven-sh' && 'namespace-profile-bun-ci-linux-x64' || 'ubuntu-latest' }} tag: linux-x64 linux-x64-baseline-test: if: ${{ inputs.run-id || github.event_name == 'pull_request' }} name: Test linux-x64-baseline needs: linux-x64-baseline uses: ./.github/workflows/run-test.yml secrets: inherit with: run-id: ${{ inputs.run-id }} pr-number: ${{ github.event.number }} runs-on: ${{ github.repository_owner == 'oven-sh' && 'namespace-profile-bun-ci-linux-x64' || 'ubuntu-latest' }} tag: linux-x64-baseline linux-aarch64-test: if: ${{ inputs.run-id || github.event_name == 'pull_request' && github.repository_owner == 'oven-sh'}} name: Test linux-aarch64 needs: linux-aarch64 uses: ./.github/workflows/run-test.yml secrets: inherit with: run-id: ${{ inputs.run-id }} pr-number: ${{ github.event.number }} runs-on: namespace-profile-bun-ci-linux-aarch64 tag: linux-aarch64 darwin-x64-test: if: ${{ inputs.run-id || github.event_name == 'pull_request' }} name: Test darwin-x64 needs: darwin-x64 uses: ./.github/workflows/run-test.yml secrets: inherit with: run-id: ${{ inputs.run-id }} pr-number: ${{ github.event.number }} runs-on: ${{ github.repository_owner == 'oven-sh' && 'macos-12-large' || 'macos-12' }} tag: darwin-x64 darwin-x64-baseline-test: if: ${{ inputs.run-id || github.event_name == 'pull_request' }} name: Test darwin-x64-baseline needs: darwin-x64-baseline uses: ./.github/workflows/run-test.yml secrets: inherit with: run-id: ${{ inputs.run-id }} pr-number: ${{ github.event.number }} runs-on: ${{ github.repository_owner == 'oven-sh' && 'macos-12-large' || 'macos-12' }} tag: darwin-x64-baseline darwin-aarch64-test: if: ${{ inputs.run-id || github.event_name == 'pull_request' }} name: Test darwin-aarch64 needs: darwin-aarch64 uses: ./.github/workflows/run-test.yml secrets: inherit with: run-id: ${{ inputs.run-id }} pr-number: ${{ github.event.number }} runs-on: ${{ github.repository_owner == 'oven-sh' && 'namespace-profile-bun-ci-darwin-aarch64' || 'macos-12' }} tag: darwin-aarch64 windows-x64-test: if: ${{ inputs.run-id || github.event_name == 'pull_request' }} name: Test windows-x64 needs: windows-x64 uses: ./.github/workflows/run-test.yml secrets: inherit with: run-id: ${{ inputs.run-id }} pr-number: ${{ github.event.number }} runs-on: windows tag: windows-x64 windows-x64-baseline-test: if: ${{ inputs.run-id || github.event_name == 'pull_request' }} name: Test windows-x64-baseline needs: windows-x64-baseline uses: ./.github/workflows/run-test.yml secrets: inherit with: run-id: ${{ inputs.run-id }} pr-number: ${{ github.event.number }} runs-on: windows tag: windows-x64-baseline cleanup: if: ${{ always() }} name: Cleanup needs: - linux-x64 - linux-x64-baseline - linux-aarch64 - darwin-x64 - darwin-x64-baseline - darwin-aarch64 - windows-x64 - windows-x64-baseline runs-on: ubuntu-latest steps: - name: Cleanup Artifacts uses: geekyeggo/delete-artifact@v5 with: name: | bun-*-cpp bun-*-zig bun-*-deps bun-*-codegen