CI #276
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: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- trunk | |
schedule: | |
- cron: "0 */12 * * *" | |
workflow_dispatch: | |
jobs: | |
check: | |
name: Check | |
runs-on: ubuntu-latest | |
outputs: | |
targets: ${{ steps.check-targets.outputs.bazel-targets }} | |
steps: | |
- name: Checkout source tree | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 50 | |
- name: Setup Bazel | |
uses: bazel-contrib/setup-bazel@0.8.5 | |
with: | |
bazelisk-cache: true | |
cache-version: 2 | |
external-cache: | | |
name: ci-check | |
manifest: | |
crates: rust/Cargo.Bazel.lock | |
rules_ruby~~ruby~ruby: rb/.ruby-version | |
repository-cache: true | |
- name: Check Bazel targets | |
id: check-targets | |
run: ./scripts/github-actions/check-bazel-targets.sh | |
env: | |
COMMIT_RANGE: ${{ github.event.pull_request.base.sha || github.event.before }}...${{ github.event.pull_request.head.sha || github.sha }} | |
dotnet: | |
name: .NET | |
needs: check | |
uses: ./.github/workflows/ci-dotnet.yml | |
if: > | |
github.event_name == 'schedule' || | |
github.event_name == 'workflow_dispatch' || | |
contains(needs.check.outputs.targets, '//dotnet') || | |
contains(join(github.event.commits.*.message), '[dotnet]') || | |
contains(github.event.pull_request.title, '[dotnet]') | |
java: | |
name: Java | |
needs: check | |
uses: ./.github/workflows/ci-java.yml | |
if: > | |
github.event_name == 'schedule' || | |
github.event_name == 'workflow_dispatch' || | |
contains(needs.check.outputs.targets, '//java') || | |
contains(join(github.event.commits.*.message), '[java]') || | |
contains(github.event.pull_request.title, '[java]') | |
javascript: | |
name: JavaScript | |
needs: check | |
uses: ./.github/workflows/ci-javascript.yml | |
if: > | |
github.event_name == 'schedule' || | |
github.event_name == 'workflow_dispatch' || | |
contains(needs.check.outputs.targets, '//javascript') || | |
contains(join(github.event.commits.*.message), '[js]') || | |
contains(github.event.pull_request.title, '[js]') | |
python: | |
name: Python | |
needs: check | |
uses: ./.github/workflows/ci-python.yml | |
if: > | |
github.event_name == 'schedule' || | |
github.event_name == 'workflow_dispatch' || | |
contains(needs.check.outputs.targets, '//py') || | |
contains(join(github.event.commits.*.message), '[py]') || | |
contains(github.event.pull_request.title, '[py]') | |
ruby: | |
name: Ruby | |
needs: check | |
uses: ./.github/workflows/ci-ruby.yml | |
if: > | |
github.event_name == 'schedule' || | |
github.event_name == 'workflow_dispatch' || | |
contains(needs.check.outputs.targets, '//rb') || | |
contains(join(github.event.commits.*.message), '[rb]') || | |
contains(github.event.pull_request.title, '[rb]') | |
rust: | |
name: Rust | |
needs: check | |
uses: ./.github/workflows/ci-rust.yml | |
secrets: | |
SELENIUM_CI_TOKEN: ${{ secrets.SELENIUM_CI_TOKEN }} | |
if: > | |
github.event_name == 'schedule' || | |
github.event_name == 'workflow_dispatch' || | |
contains(needs.check.outputs.targets, '//rust') || | |
contains(join(github.event.commits.*.message), '[rust]') || | |
contains(github.event.pull_request.title, '[rust]') |