diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a27f647175..1c78ffb402 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,6 +14,14 @@ workflow: # Disable those non-protected push triggered pipelines - if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_PIPELINE_SOURCE == "push"' when: never + # when running merged result pipelines, it would create a temp commit id. use $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA instead of $CI_COMMIT_SHA. + # Please use PIPELINE_COMMIT_SHA at all places that require a commit sha + - if: $CI_OPEN_MERGE_REQUESTS != null + variables: + PIPELINE_COMMIT_SHA: $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA + - if: $CI_OPEN_MERGE_REQUESTS == null + variables: + PIPELINE_COMMIT_SHA: $CI_COMMIT_SHA - when: always variables: diff --git a/.gitlab/ci/assign-test.yml b/.gitlab/ci/assign-test.yml index 9dd3bb58e6..c03e2cdadd 100644 --- a/.gitlab/ci/assign-test.yml +++ b/.gitlab/ci/assign-test.yml @@ -73,7 +73,7 @@ update_test_cases: AUTO_TEST_SCRIPT_PATH: "${CI_PROJECT_DIR}/auto_test_script" PYTHON_VER: 3.7.7 script: - - export GIT_SHA=$(echo ${CI_COMMIT_SHA} | cut -c 1-8) + - export GIT_SHA=$(echo ${PIPELINE_COMMIT_SHA} | cut -c 1-8) - retry_failed git clone $TEST_MANAGEMENT_REPO - python $CHECKOUT_REF_SCRIPT test-management test-management - cd test-management diff --git a/.gitlab/ci/build.yml b/.gitlab/ci/build.yml index 7a70c4aa5c..fbbbaf870b 100644 --- a/.gitlab/ci/build.yml +++ b/.gitlab/ci/build.yml @@ -362,7 +362,7 @@ build_docker: - export LOCAL_CI_REPOSITORY_URL=$CI_REPOSITORY_URL - if [ -n "$LOCAL_GITLAB_HTTPS_HOST" ]; then export LOCAL_CI_REPOSITORY_URL="https://gitlab-ci-token:${CI_JOB_TOKEN}@${LOCAL_GITLAB_HTTPS_HOST}/${CI_PROJECT_PATH}"; fi - echo "Using repository at $LOCAL_CI_REPOSITORY_URL" - - export DOCKER_BUILD_ARGS="--build-arg IDF_CLONE_URL=${LOCAL_CI_REPOSITORY_URL} --build-arg IDF_CLONE_BRANCH_OR_TAG=${CI_COMMIT_REF_NAME} --build-arg IDF_CHECKOUT_REF=${CI_COMMIT_TAG:-$CI_COMMIT_SHA}" + - export DOCKER_BUILD_ARGS="--build-arg IDF_CLONE_URL=${LOCAL_CI_REPOSITORY_URL} --build-arg IDF_CLONE_BRANCH_OR_TAG=${CI_COMMIT_REF_NAME} --build-arg IDF_CHECKOUT_REF=${CI_COMMIT_TAG:-$PIPELINE_COMMIT_SHA}" # Build - docker build --tag ${DOCKER_TMP_IMAGE_NAME} ${DOCKER_BUILD_ARGS} tools/docker/ # We can't mount $PWD/examples/get-started/blink into the container, see https://gitlab.com/gitlab-org/gitlab-ce/issues/41227. diff --git a/.gitlab/ci/deploy.yml b/.gitlab/ci/deploy.yml index fb3a3d37c0..1eb71d7f44 100644 --- a/.gitlab/ci/deploy.yml +++ b/.gitlab/ci/deploy.yml @@ -39,8 +39,8 @@ deploy_test_result: AUTO_TEST_SCRIPT_PATH: "${CI_PROJECT_DIR}/auto_test_script" script: - add_gitlab_ssh_keys - - export GIT_SHA=$(echo ${CI_COMMIT_SHA} | cut -c 1-8) - - export REV_COUNT=$(git rev-list --count HEAD) + - export GIT_SHA=$(echo ${PIPELINE_COMMIT_SHA} | cut -c 1-8) + - export REV_COUNT=$(git rev-list --count ${PIPELINE_COMMIT_SHA} --) - export SUMMARY="IDF CI test result for $GIT_SHA (r${REV_COUNT})" # artifacts of job update_test_cases creates test-management folder # we need to remove it so we can clone test-management folder again diff --git a/.gitlab/ci/docs.yml b/.gitlab/ci/docs.yml index e88b854c0c..4292c5f0df 100644 --- a/.gitlab/ci/docs.yml +++ b/.gitlab/ci/docs.yml @@ -162,7 +162,7 @@ build_docs_pdf: dependencies: [] script: - add_doc_server_ssh_keys $DOCS_DEPLOY_PRIVATEKEY $DOCS_DEPLOY_SERVER $DOCS_DEPLOY_SERVER_USER - - export GIT_VER=$(git describe --always) + - export GIT_VER=$(git describe --always ${PIPELINE_COMMIT_SHA} --) - pip install -r docs/requirements.txt - deploy-docs diff --git a/.gitlab/ci/pre_check.yml b/.gitlab/ci/pre_check.yml index 22bac105c4..9cbbd30724 100644 --- a/.gitlab/ci/pre_check.yml +++ b/.gitlab/ci/pre_check.yml @@ -22,7 +22,7 @@ check_pre_commit_master_release: - .check_pre_commit_template - .rules:protected script: - - git diff-tree --no-commit-id --name-only -r $CI_COMMIT_SHA | xargs pre-commit run --files + - git diff-tree --no-commit-id --name-only -r $PIPELINE_COMMIT_SHA | xargs pre-commit run --files check_pre_commit_MR: extends: @@ -190,6 +190,6 @@ check_commit_msg: extends: .pre_check_job_template script: - git status - - git log -n10 --oneline + - git log -n10 --oneline ${PIPELINE_COMMIT_SHA} # commit start with "WIP: " need to be squashed before merge - - 'git log --pretty=%s master.. -- | grep "^WIP: " && exit 1 || exit 0' + - 'git log --pretty=%s origin/master..${PIPELINE_COMMIT_SHA} -- | grep -i "^WIP:" && exit 1 || exit 0' diff --git a/.gitlab/ci/static-code-analysis.yml b/.gitlab/ci/static-code-analysis.yml index cdcabfd758..31db4ae75b 100644 --- a/.gitlab/ci/static-code-analysis.yml +++ b/.gitlab/ci/static-code-analysis.yml @@ -123,7 +123,7 @@ code_quality_report: -Dsonar.branch.name=$CI_COMMIT_REF_NAME -Dsonar.cxx.clangtidy.reportPath=$REPORT_PATTERN -Dsonar.exclusions=$EXCLUSIONS - -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA + -Dsonar.gitlab.commit_sha=$PIPELINE_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN