Skip to content

Commit

Permalink
chore(IDX): release workflow as a template (DRY) (#269)
Browse files Browse the repository at this point in the history
Co-authored-by: IDX GitHub Automation <IDX GitHub Automation>
Co-authored-by: Marko Kosmerl <[email protected]>
  • Loading branch information
basvandijk and marko-k0 authored Jun 26, 2024
1 parent c9e0fbc commit 8140e48
Show file tree
Hide file tree
Showing 2 changed files with 115 additions and 24 deletions.
99 changes: 99 additions & 0 deletions .github/workflows-source/release-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Release Testing

on:
push:
branches:
- 'hotfix-*-rc--*'
- 'rc--*'
workflow_dispatch:
pull_request:
paths:
- '.github/workflows/release-testing.yml'

env:
CI_COMMIT_SHA: ${{ github.sha }}
CI_COMMIT_REF_PROTECTED: ${{ github.ref_protected }}
CI_JOB_NAME: ${{ github.job }}
CI_JOB_ID: ${{ github.job }} # github does not expose this variable https://github.com/orgs/community/discussions/8945
CI_JOB_URL: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
CI_PIPELINE_SOURCE: ${{ github.event_name }}
CI_PROJECT_DIR: ${{ github.workspace }}
CI_MERGE_REQUEST_TARGET_BRANCH_NAME: ${{ github.event.pull_request.base.ref }}
ROOT_PIPELINE_ID: ${{ github.run_id }}
BAZEL_STARTUP_ARGS: "--output_base=/var/tmp/bazel-output/"
RUSTFLAGS: "--remap-path-prefix=${CI_PROJECT_DIR}=/ic"
AWS_SHARED_CREDENTIALS_CONTENT: ${{ secrets.AWS_SHARED_CREDENTIALS_FILE }}
DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }}
DOCKER_HUB_PASSWORD_RO: ${{ secrets.DOCKER_HUB_PASSWORD_RO }}
BUILDEVENT_APIKEY: ${{ secrets.HONEYCOMB_API_TOKEN }}
BUILDEVENT_DATASET: "github-ci-dfinity"

anchors:
image: &image
image: ghcr.io/dfinity/ic-build@sha256:5bd0f059ad6e21966e9c644516b6ecd52d5ed44f1b18a76b91b59740a9d639a2
dind-large-setup: &dind-large-setup
runs-on:
group: dind-large
container:
<<: *image
timeout-minutes: 180 # 3 hours
if: ${{ vars.RUN_CI == 'true' }}
checkout: &checkout
name: Checkout
uses: actions/checkout@v4
before-script: &before-script
name: Before script
id: before-script
shell: bash
run: ./gitlab-ci/src/ci-scripts/before-script.sh

jobs:
bazel-system-test-nightly:
name: Bazel System Test Nightly
<<: *dind-large-setup
steps:
- <<: *checkout
- <<: *before-script
- name: Run Bazel System Test Nightly
id: bazel-test-all
uses: ./.github/actions/bazel-test-all/
with:
BAZEL_COMMAND: "test"
BAZEL_TARGETS: "//rs/tests/..."
BAZEL_CI_CONFIG: "--config=ci --repository_cache=/cache/bazel"
BAZEL_EXTRA_ARGS: "--keep_going --test_tag_filters=system_test_nightly --deleted_packages=gitlab-ci/src/gitlab_config"
HONEYCOMB_API_TOKEN: ${{ secrets.HONEYCOMB_API_TOKEN }}

bazel-system-test-staging:
name: Bazel System Test Staging
continue-on-error: True
<<: *dind-large-setup
steps:
- <<: *checkout
- <<: *before-script
- name: Run Bazel System Test Staging
id: bazel-test-all
uses: ./.github/actions/bazel-test-all/
with:
BAZEL_COMMAND: "test"
BAZEL_TARGETS: "//rs/tests/..."
BAZEL_CI_CONFIG: "--config=ci --repository_cache=/cache/bazel"
BAZEL_EXTRA_ARGS: "--keep_going --test_tag_filters=system_test_staging --deleted_packages=gitlab-ci/src/gitlab_config"
HONEYCOMB_API_TOKEN: ${{ secrets.HONEYCOMB_API_TOKEN }}

bazel-system-test-hotfix:
name: Bazel Test All
<<: *dind-large-setup
timeout-minutes: 90
steps:
- <<: *checkout
- <<: *before-script
- name: Run Bazel Test All
id: bazel-test-all
uses: ./.github/actions/bazel-test-all/
with:
BAZEL_COMMAND: "test"
BAZEL_TARGETS: "//rs/tests/..."
BAZEL_CI_CONFIG: "--config=ci --repository_cache=/cache/bazel"
BAZEL_EXTRA_ARGS_RULES: "--test_tag_filters=system_test_hotfix --deleted_packages=gitlab-ci/src/gitlab_config"
HONEYCOMB_API_TOKEN: ${{ secrets.HONEYCOMB_API_TOKEN }}
40 changes: 16 additions & 24 deletions .github/workflows/release-testing.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
name: Release Testing

on:
push:
branches:
- 'hotfix-*-rc--*'
- 'rc--*'
workflow_dispatch:

pull_request:
paths:
- '.github/workflows/release-testing.yml'
env:
AWS_SHARED_CREDENTIALS_CONTENT: ${{ secrets.AWS_SHARED_CREDENTIALS_FILE }}
BAZEL_STARTUP_ARGS: "--output_base=/var/tmp/bazel-output/"
CI_COMMIT_SHA: ${{ github.sha }}
CI_COMMIT_REF_PROTECTED: ${{ github.ref_protected }}
CI_JOB_NAME: ${{ github.job }}
Expand All @@ -19,13 +18,13 @@ env:
CI_PROJECT_DIR: ${{ github.workspace }}
CI_MERGE_REQUEST_TARGET_BRANCH_NAME: ${{ github.event.pull_request.base.ref }}
ROOT_PIPELINE_ID: ${{ github.run_id }}
BUILDEVENT_APIKEY: ${{ secrets.HONEYCOMB_API_TOKEN }}
BUILDEVENT_DATASET: "github-ci-dfinity"
BAZEL_STARTUP_ARGS: "--output_base=/var/tmp/bazel-output/"
RUSTFLAGS: "--remap-path-prefix=${CI_PROJECT_DIR}=/ic"
AWS_SHARED_CREDENTIALS_CONTENT: ${{ secrets.AWS_SHARED_CREDENTIALS_FILE }}
DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }}
DOCKER_HUB_PASSWORD_RO: ${{ secrets.DOCKER_HUB_PASSWORD_RO }}

# TODO: DRY ~ put under wokflow-source

BUILDEVENT_APIKEY: ${{ secrets.HONEYCOMB_API_TOKEN }}
BUILDEVENT_DATASET: "github-ci-dfinity"
jobs:
bazel-system-test-nightly:
name: Bazel System Test Nightly
Expand All @@ -38,22 +37,19 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Before script
id: before-script
shell: bash
run: ./gitlab-ci/src/ci-scripts/before-script.sh

- name: Run Bazel System Test Nightly
id: bazel-test-all
uses: ./.github/actions/bazel-test-all/
with:
BAZEL_COMMAND: "test"
BAZEL_TARGETS: "//... --deleted_packages=gitlab-ci/src/gitlab_config"
BAZEL_TARGETS: "//rs/tests/..."
BAZEL_CI_CONFIG: "--config=ci --repository_cache=/cache/bazel"
BAZEL_EXTRA_ARGS: "--keep_going --test_tag_filters=system_test_nightly"
BAZEL_EXTRA_ARGS: "--keep_going --test_tag_filters=system_test_nightly --deleted_packages=gitlab-ci/src/gitlab_config"
HONEYCOMB_API_TOKEN: ${{ secrets.HONEYCOMB_API_TOKEN }}

bazel-system-test-staging:
name: Bazel System Test Staging
continue-on-error: True
Expand All @@ -64,38 +60,32 @@ jobs:
timeout-minutes: 180 # 3 hours
if: ${{ vars.RUN_CI == 'true' }}
steps:

- name: Checkout
uses: actions/checkout@v4

- name: Before script
id: before-script
shell: bash
run: ./gitlab-ci/src/ci-scripts/before-script.sh

- name: Run Bazel System Test Staging
id: bazel-test-all
uses: ./.github/actions/bazel-test-all/
with:
BAZEL_COMMAND: "test"
BAZEL_TARGETS: "//... --deleted_packages=gitlab-ci/src/gitlab_config"
BAZEL_TARGETS: "//rs/tests/..."
BAZEL_CI_CONFIG: "--config=ci --repository_cache=/cache/bazel"
BAZEL_EXTRA_ARGS: "--keep_going --test_tag_filters=system_test_staging"
BAZEL_EXTRA_ARGS: "--keep_going --test_tag_filters=system_test_staging --deleted_packages=gitlab-ci/src/gitlab_config"
HONEYCOMB_API_TOKEN: ${{ secrets.HONEYCOMB_API_TOKEN }}

bazel-system-test-hotfix:
name: Bazel Test All
runs-on:
group: dind-large
container:
image: ghcr.io/dfinity/ic-build@sha256:5bd0f059ad6e21966e9c644516b6ecd52d5ed44f1b18a76b91b59740a9d639a2
timeout-minutes: 90
if: ${{ vars.RUN_CI == 'true' }}
timeout-minutes: 90
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: ${{ github.event_name == 'pull_request' && 256 || 0 }}
- name: Before script
id: before-script
shell: bash
Expand All @@ -105,5 +95,7 @@ jobs:
uses: ./.github/actions/bazel-test-all/
with:
BAZEL_COMMAND: "test"
BAZEL_TARGETS: "//rs/tests/..."
BAZEL_CI_CONFIG: "--config=ci --repository_cache=/cache/bazel"
BAZEL_EXTRA_ARGS_RULES: "--test_tag_filters=system_test_hotfix"
BAZEL_EXTRA_ARGS_RULES: "--test_tag_filters=system_test_hotfix --deleted_packages=gitlab-ci/src/gitlab_config"
HONEYCOMB_API_TOKEN: ${{ secrets.HONEYCOMB_API_TOKEN }}

0 comments on commit 8140e48

Please sign in to comment.