Skip to content

Bazel System Test Benchmarks #277

Bazel System Test Benchmarks

Bazel System Test Benchmarks #277

name: Bazel System Test Benchmarks
on:
schedule:
# Note that we would like there to be no overlap between the system-tests-benchmarks-nightly job below
# and the Release Testing workflow triggered by the Schedule RC workflow.
- cron: "0 0 * * *"
workflow_dispatch:
env:
CI_JOB_NAME: ${{ github.job }}
jobs:
system-tests-benchmarks-nightly:
name: Bazel System Test Benchmarks
runs-on:
group: dm1
labels: dind-large
container:
image: ghcr.io/dfinity/ic-build@sha256:65ab9023792784e8e13dbdd5b9a63c2dff0cd38237afd1cdbc299577505d4b88
options: >-
-e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/tmp/containers"
timeout-minutes: 480
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/netrc
- name: Test System Test Benchmarks
id: bazel-system-test-benchmarks
uses: ./.github/actions/bazel
with:
run: |
set -euo pipefail
# NOTE: we use `bazel query` to list the targets explicitly because (at the
# time of writing) benchmark targets are labeled as manual and would not be
# picked up by e.g. `bazel test //...`
target_pattern_file=$(mktemp)
bazel query 'attr(tags, system_test_benchmark, //rs/...)' | grep -v head_nns > "$target_pattern_file"
echo "inferred system test benchmark targets:"
cat "$target_pattern_file"
# note: there's just one performance cluster, so the job can't be parallelized (hence --jobs=1)
bazel test \
--config=stamped \
--test_tag_filters=system_test_benchmark \
--//bazel:enable_upload_perf_systest_results=True \
--target_pattern_file="$target_pattern_file" \
--test_env=SSH_AUTH_SOCK --test_env=NNS_CANISTER_UPGRADE_SEQUENCE=all \
--keep_going --jobs=1
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
- name: Post Slack Notification
uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0
if: failure()
with:
channel-id: eng-ic-benchmark-alerts
slack-message: "${{ github.job }} failed :disappointed: - <${{github.server_url}}/${{github.repository}}/actions/runs/${{github.run_id}}|Run#${{github.run_id}}>"
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_API_TOKEN }}