summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKirill Rysin <[email protected]>2024-12-23 18:46:40 +0100
committerGitHub <[email protected]>2024-12-23 18:46:40 +0100
commit110099db410b29e5d0ae42964e6284713f7753a0 (patch)
tree788cee2a178942e5fba3087eb8ac581e54ee61a1
parent4f48bf5f770db686f276aed75f87022fcc0f095d (diff)
Support ad-hoc run sanitize tests in PR (#12830)
-rw-r--r--.github/workflows/pr_check.yml48
1 files changed, 38 insertions, 10 deletions
diff --git a/.github/workflows/pr_check.yml b/.github/workflows/pr_check.yml
index fbdf4c6d880..1064e8e92ea 100644
--- a/.github/workflows/pr_check.yml
+++ b/.github/workflows/pr_check.yml
@@ -19,6 +19,7 @@ jobs:
check-running-allowed:
if: ${{vars.CHECKS_SWITCH != '' && fromJSON(vars.CHECKS_SWITCH).pr_check == true}}
runs-on: ubuntu-latest
+ timeout-minutes: 600
outputs:
result: ${{ steps.check-ownership-membership.outputs.result == 'true' && steps.check-is-mergeable.outputs.result == 'true' }}
commit_sha: ${{ steps.check-is-mergeable.outputs.commit_sha }}
@@ -206,7 +207,27 @@ jobs:
strategy:
fail-fast: false
matrix:
- build_preset: ["relwithdebinfo", "release-asan"]
+ include:
+ - build_preset: relwithdebinfo
+ threads_count: 52
+ timeout: 240
+ build_target: "ydb/"
+ test_size: small,medium
+ - build_preset: release-asan
+ threads_count: 52
+ timeout: 240
+ build_target: "ydb/"
+ test_size: small,medium
+ - build_preset: release-msan
+ threads_count: 20
+ timeout: 480
+ build_target: "ydb/"
+ test_size: small,medium
+ - build_preset: release-tsan
+ threads_count: 20
+ timeout: 600
+ build_target: "ydb/"
+ test_size: small,medium
runs-on: [ self-hosted, auto-provisioned, "${{ format('build-preset-{0}', matrix.build_preset) }}" ]
name: Build and test ${{ matrix.build_preset }}
steps:
@@ -220,21 +241,31 @@ jobs:
with:
ci_ydb_service_account_key_file_credentials: ${{ secrets.CI_YDB_SERVICE_ACCOUNT_KEY_FILE_CREDENTIALS }}
- name: Build and test
+ if: |
+ (matrix.build_preset == 'release-asan') ||
+ (matrix.build_preset == 'relwithdebinfo') ||
+
+ (matrix.build_preset == 'release-tsan' &&
+ contains(github.event.pull_request.labels.*.name, 'run-tsan-tests') ||
+ contains(github.event.pull_request.labels.*.name, 'run-sanitizer-tests')) ||
+
+ (matrix.build_preset == 'release-msan' &&
+ contains(github.event.pull_request.labels.*.name, 'run-msan-tests') ||
+ contains(github.event.pull_request.labels.*.name, 'run-sanitizer-tests'))
uses: ./.github/actions/build_and_test_ya
with:
build_preset: ${{ matrix.build_preset }}
- build_target: "ydb/"
+ build_target: ${{ matrix.build_target }}
increment: true
- run_tests: ${{ contains(fromJSON('["relwithdebinfo", "release-asan"]'), matrix.build_preset) }}
- test_size: "small,medium"
- test_threads: 52
+ run_tests: ${{ contains(fromJSON('["relwithdebinfo", "release-asan", "release-tsan", "release-msan"]'), matrix.build_preset) }}
+ test_size: ${{ matrix.test_size }}
+ test_threads: ${{ matrix.threads_count }}
put_build_results_to_cache: true
- additional_ya_make_args: -DDEBUGINFO_LINES_ONLY # we don't need full symbols in CI checks
+ additional_ya_make_args: -DDEBUGINFO_LINES_ONLY # we don't need full symbols in CI checks
secs: ${{ format('{{"TESTMO_TOKEN2":"{0}","AWS_KEY_ID":"{1}","AWS_KEY_VALUE":"{2}","REMOTE_CACHE_USERNAME":"{3}","REMOTE_CACHE_PASSWORD":"{4}"}}',
secrets.TESTMO_TOKEN2, secrets.AWS_KEY_ID, secrets.AWS_KEY_VALUE, secrets.REMOTE_CACHE_USERNAME, secrets.REMOTE_CACHE_PASSWORD ) }}
vars: ${{ format('{{"AWS_BUCKET":"{0}","AWS_ENDPOINT":"{1}","REMOTE_CACHE_URL":"{2}","TESTMO_URL":"{3}","TESTMO_PROJECT_ID":"{4}"}}',
vars.AWS_BUCKET, vars.AWS_ENDPOINT, vars.REMOTE_CACHE_URL_YA, vars.TESTMO_URL, vars.TESTMO_PROJECT_ID ) }}
-
update_integrated_status:
runs-on: ubuntu-latest
needs: build_and_test
@@ -255,6 +286,3 @@ jobs:
curl -L -X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${{github.token}}" -H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/${{github.repository}}/statuses/${{github.event.pull_request.head.sha}} \
-d '{"state":"'$integrated_status'","description":"All checks completed","context":"checks_integrated"}'
-
-
-