From e18e616c0f32f18c14206ede379f5580cedca019 Mon Sep 17 00:00:00 2001 From: Marcel Koch Date: Mon, 10 Jul 2023 14:50:06 +0200 Subject: [PATCH 1/4] adds interruptible to gitlab CI --- .gitlab-ci.yml | 7 +++++++ .gitlab/add-interrupt.yml | 2 ++ 2 files changed, 9 insertions(+) create mode 100644 .gitlab/add-interrupt.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d15c25dc270..b9385ebb3cb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,6 +19,13 @@ include: - local: '.gitlab/rules.yml' - local: '.gitlab/scripts.yml' - local: '.gitlab/variables.yml' + # This is a workaround to conditionally make the branch pipelines + # interruptible, because the flag does not directly support rules [1]. + # + # [1] https://gitlab.com/gitlab-org/gitlab/-/issues/194023#note_1225906002 + - local: '.gitlab/add-interrupt.yml' + rules: + - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "develop" sync: stage: sync diff --git a/.gitlab/add-interrupt.yml b/.gitlab/add-interrupt.yml new file mode 100644 index 00000000000..cf6fd95fe1e --- /dev/null +++ b/.gitlab/add-interrupt.yml @@ -0,0 +1,2 @@ +default: + interruptible: true From fe8dbf84355e938736b4cd95f16475ec2a921812 Mon Sep 17 00:00:00 2001 From: Marcel Koch Date: Mon, 10 Jul 2023 15:42:38 +0200 Subject: [PATCH 2/4] don't interrupt gh-pages or new-issue --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b9385ebb3cb..d6124211222 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -819,6 +819,7 @@ sonarqube_cov: # Deploy documentation to github-pages gh-pages: stage: deploy + interruptible: false extends: - .default_variables - .deploy_condition @@ -922,6 +923,7 @@ cudamemcheck: new-issue-on-failure: stage: on-failure + interruptible: false extends: - .default_variables - .use_status-job-settings From 12a886ed0278dd9c8bdf17c27c6536dacbb5d47c Mon Sep 17 00:00:00 2001 From: Marcel Koch Date: Mon, 10 Jul 2023 15:52:33 +0200 Subject: [PATCH 3/4] no interrupt on tag --- .gitlab-ci.yml | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d6124211222..d43040620bb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,7 +25,7 @@ include: # [1] https://gitlab.com/gitlab-org/gitlab/-/issues/194023#note_1225906002 - local: '.gitlab/add-interrupt.yml' rules: - - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "develop" + - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "develop" && CI_COMMIT_TAG !~ /^v\d+\.\d+\.\d+/ sync: stage: sync @@ -779,15 +779,15 @@ sonarqube_cov_: - PR_ID=$(curl -s "https://api.github.com/search/issues?q=sha:${CI_COMMIT_SHA}" | jq '.items[0].number') - if [[ "${PR_ID}" != "null" ]]; then - target_branch=$(curl -s - "https://api.github.com/repos/ginkgo-project/ginkgo/pulls/${PR_ID}" | jq - '.base.ref' | sed 's/"//g'); - sonar_branching="-Dsonar.pullrequest.branch=${CI_COMMIT_REF_NAME} - -Dsonar.pullrequest.base=${target_branch} - -Dsonar.pullrequest.key=${PR_ID}"; + target_branch=$(curl -s + "https://api.github.com/repos/ginkgo-project/ginkgo/pulls/${PR_ID}" | jq + '.base.ref' | sed 's/"//g'); + sonar_branching="-Dsonar.pullrequest.branch=${CI_COMMIT_REF_NAME} + -Dsonar.pullrequest.base=${target_branch} + -Dsonar.pullrequest.key=${PR_ID}"; else - sonar_branching="-Dsonar.branch.name=${CI_COMMIT_REF_NAME} - -Dsonar.branch.target=develop"; + sonar_branching="-Dsonar.branch.name=${CI_COMMIT_REF_NAME} + -Dsonar.branch.target=develop"; fi - ctest -S cmake/CTestScript.cmake -DCTEST_BUILD_CONFIGURATION=COVERAGE -DGINKGO_SONARQUBE_TEST=ON @@ -831,13 +831,13 @@ gh-pages: # build docs - mkdir -p ${CI_JOB_NAME} && pushd ${CI_JOB_NAME} - cmake ${CI_PROJECT_DIR} - -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${CXX_COMPILER} - -DCMAKE_CUDA_COMPILER=${CUDA_COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} - -DBUILD_SHARED_LIBS=ON ${EXTRA_CMAKE_FLAGS} -DGINKGO_DEVEL_TOOLS=OFF - -DGINKGO_BUILD_REFERENCE=OFF -DGINKGO_BUILD_OMP=OFF -DGINKGO_BUILD_CUDA=OFF - -DGINKGO_BUILD_HIP=OFF -DGINKGO_BUILD_DPCPP=OFF -DGINKGO_BUILD_MPI=OFF - -DGINKGO_BUILD_TESTS=OFF -DGINKGO_BUILD_EXAMPLES=OFF - -DGINKGO_BUILD_DOC=ON -DGINKGO_DOC_GENERATE_PDF=ON + -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${CXX_COMPILER} + -DCMAKE_CUDA_COMPILER=${CUDA_COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} + -DBUILD_SHARED_LIBS=ON ${EXTRA_CMAKE_FLAGS} -DGINKGO_DEVEL_TOOLS=OFF + -DGINKGO_BUILD_REFERENCE=OFF -DGINKGO_BUILD_OMP=OFF -DGINKGO_BUILD_CUDA=OFF + -DGINKGO_BUILD_HIP=OFF -DGINKGO_BUILD_DPCPP=OFF -DGINKGO_BUILD_MPI=OFF + -DGINKGO_BUILD_TESTS=OFF -DGINKGO_BUILD_EXAMPLES=OFF + -DGINKGO_BUILD_DOC=ON -DGINKGO_DOC_GENERATE_PDF=ON - make usr - make pdf - popd @@ -854,7 +854,7 @@ gh-pages: - git diff --quiet HEAD || (git commit -m "Update documentation from ginkgo-project/ginkgo@${CURRENT_SHA}" && git push) dependencies: null - needs: [] + needs: [ ] threadsanitizer: @@ -867,10 +867,10 @@ threadsanitizer: script: - LD_PRELOAD=/usr/local/lib/libomp.so CC=clang CXX=clang++ - ctest -V -S cmake/CTestScript.cmake -DCTEST_BUILD_CONFIGURATION=TSAN - -DCTEST_MEMORYCHECK_TYPE=ThreadSanitizer - -DCTEST_MEMORYCHECK_SANITIZER_OPTIONS=ignore_noninstrumented_modules=1 - --timeout 6000 + ctest -V -S cmake/CTestScript.cmake -DCTEST_BUILD_CONFIGURATION=TSAN + -DCTEST_MEMORYCHECK_TYPE=ThreadSanitizer + -DCTEST_MEMORYCHECK_SANITIZER_OPTIONS=ignore_noninstrumented_modules=1 + --timeout 6000 leaksanitizer: stage: QoS_tools @@ -933,7 +933,7 @@ new-issue-on-failure: refs: - develop - master - dependencies: [] + dependencies: [ ] ## Benchmark SpMV From d7bdec14852b9d081932c2c3efc0db88020934d7 Mon Sep 17 00:00:00 2001 From: Marcel Koch Date: Mon, 10 Jul 2023 16:01:31 +0200 Subject: [PATCH 4/4] undo formatting --- .gitlab-ci.yml | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d43040620bb..9d374d81eef 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -779,15 +779,15 @@ sonarqube_cov_: - PR_ID=$(curl -s "https://api.github.com/search/issues?q=sha:${CI_COMMIT_SHA}" | jq '.items[0].number') - if [[ "${PR_ID}" != "null" ]]; then - target_branch=$(curl -s - "https://api.github.com/repos/ginkgo-project/ginkgo/pulls/${PR_ID}" | jq - '.base.ref' | sed 's/"//g'); - sonar_branching="-Dsonar.pullrequest.branch=${CI_COMMIT_REF_NAME} - -Dsonar.pullrequest.base=${target_branch} - -Dsonar.pullrequest.key=${PR_ID}"; + target_branch=$(curl -s + "https://api.github.com/repos/ginkgo-project/ginkgo/pulls/${PR_ID}" | jq + '.base.ref' | sed 's/"//g'); + sonar_branching="-Dsonar.pullrequest.branch=${CI_COMMIT_REF_NAME} + -Dsonar.pullrequest.base=${target_branch} + -Dsonar.pullrequest.key=${PR_ID}"; else - sonar_branching="-Dsonar.branch.name=${CI_COMMIT_REF_NAME} - -Dsonar.branch.target=develop"; + sonar_branching="-Dsonar.branch.name=${CI_COMMIT_REF_NAME} + -Dsonar.branch.target=develop"; fi - ctest -S cmake/CTestScript.cmake -DCTEST_BUILD_CONFIGURATION=COVERAGE -DGINKGO_SONARQUBE_TEST=ON @@ -831,13 +831,13 @@ gh-pages: # build docs - mkdir -p ${CI_JOB_NAME} && pushd ${CI_JOB_NAME} - cmake ${CI_PROJECT_DIR} - -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${CXX_COMPILER} - -DCMAKE_CUDA_COMPILER=${CUDA_COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} - -DBUILD_SHARED_LIBS=ON ${EXTRA_CMAKE_FLAGS} -DGINKGO_DEVEL_TOOLS=OFF - -DGINKGO_BUILD_REFERENCE=OFF -DGINKGO_BUILD_OMP=OFF -DGINKGO_BUILD_CUDA=OFF - -DGINKGO_BUILD_HIP=OFF -DGINKGO_BUILD_DPCPP=OFF -DGINKGO_BUILD_MPI=OFF - -DGINKGO_BUILD_TESTS=OFF -DGINKGO_BUILD_EXAMPLES=OFF - -DGINKGO_BUILD_DOC=ON -DGINKGO_DOC_GENERATE_PDF=ON + -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${CXX_COMPILER} + -DCMAKE_CUDA_COMPILER=${CUDA_COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} + -DBUILD_SHARED_LIBS=ON ${EXTRA_CMAKE_FLAGS} -DGINKGO_DEVEL_TOOLS=OFF + -DGINKGO_BUILD_REFERENCE=OFF -DGINKGO_BUILD_OMP=OFF -DGINKGO_BUILD_CUDA=OFF + -DGINKGO_BUILD_HIP=OFF -DGINKGO_BUILD_DPCPP=OFF -DGINKGO_BUILD_MPI=OFF + -DGINKGO_BUILD_TESTS=OFF -DGINKGO_BUILD_EXAMPLES=OFF + -DGINKGO_BUILD_DOC=ON -DGINKGO_DOC_GENERATE_PDF=ON - make usr - make pdf - popd @@ -854,7 +854,7 @@ gh-pages: - git diff --quiet HEAD || (git commit -m "Update documentation from ginkgo-project/ginkgo@${CURRENT_SHA}" && git push) dependencies: null - needs: [ ] + needs: [] threadsanitizer: @@ -867,10 +867,10 @@ threadsanitizer: script: - LD_PRELOAD=/usr/local/lib/libomp.so CC=clang CXX=clang++ - ctest -V -S cmake/CTestScript.cmake -DCTEST_BUILD_CONFIGURATION=TSAN - -DCTEST_MEMORYCHECK_TYPE=ThreadSanitizer - -DCTEST_MEMORYCHECK_SANITIZER_OPTIONS=ignore_noninstrumented_modules=1 - --timeout 6000 + ctest -V -S cmake/CTestScript.cmake -DCTEST_BUILD_CONFIGURATION=TSAN + -DCTEST_MEMORYCHECK_TYPE=ThreadSanitizer + -DCTEST_MEMORYCHECK_SANITIZER_OPTIONS=ignore_noninstrumented_modules=1 + --timeout 6000 leaksanitizer: stage: QoS_tools @@ -933,7 +933,7 @@ new-issue-on-failure: refs: - develop - master - dependencies: [ ] + dependencies: [] ## Benchmark SpMV