diff --git a/README.rst b/README.rst index 7b06f6ffb422c1c2feb4da36abb0c6abf2189be4..9a14ad83202440ebc9ff4cdc54e4b9bf6124db7f 100644 --- a/README.rst +++ b/README.rst @@ -413,7 +413,7 @@ a job, respectively. The full list of variables is as follows: `autopep8` CI_AWE_SKIP_AUTOFORMAT CI_AWE_RUN_AUTOFORMAT `templates/autoformat/autopep8.yml` `black` CI_AWE_SKIP_AUTOFORMAT CI_AWE_RUN_AUTOFORMAT `templates/autoformat/black.yml` `changed_files_mr` CI_AWE_SKIP_CHANGED_FILES CI_AWE_RUN_CHANGED_FILES `templates/changedfiles/mergerequest.yml` -`changed_files_push` CI_AWE_SKIP_CHANGED_FILES CI_AWE_RUN_CHANGED_FILES `templates/changedfiles/push.yml` +`changed_files_branch` CI_AWE_SKIP_CHANGED_FILES CI_AWE_RUN_CHANGED_FILES `templates/changedfiles/branch.yml` `conda_build` CI_AWE_SKIP_CONDA_BUILD_TEST CI_AWE_RUN_CONDA_BUILD_TEST `templates/conda/build.yml` `conda_test` CI_AWE_SKIP_CONDA_BUILD_TEST CI_AWE_RUN_CONDA_BUILD_TEST `templates/conda/build.yml` `conda_upload` CI_AWE_SKIP_CONDA_UPLOAD CI_AWE_RUN_CONDA_UPLOAD `templates/conda/release.yml` diff --git a/templates/changedfiles/all.yml b/templates/changedfiles/all.yml index 8e1e773e02b1b409e4ce9631f00e59125f4b631b..5e211159fac5a7193ceecb13fca9ebcbdaef7093 100644 --- a/templates/changedfiles/all.yml +++ b/templates/changedfiles/all.yml @@ -1,3 +1,3 @@ include: - local: '/templates/changedfiles/mergerequest.yml' - - local: '/templates/changedfiles/push.yml' + - local: '/templates/changedfiles/branch.yml' diff --git a/templates/changedfiles/branch.yml b/templates/changedfiles/branch.yml new file mode 100644 index 0000000000000000000000000000000000000000..8123b3cf5f99fa3cc8e0da40eb18e9e43e43a889 --- /dev/null +++ b/templates/changedfiles/branch.yml @@ -0,0 +1,24 @@ +include: + - local: '/templates/changedfiles/_shared.yml' + +changed_files_branch: + extends: .changed_files + variables: + CHANGED_FILES_COMPARE_REF: $CI_COMMIT_BEFORE_SHA + rules: + - if: $CI_AWE_SKIP_CHANGED_FILES + when: never + - if: $CI_AWE_RUN_CHANGED_FILES + - !reference [.primary_ref_jobs, rules] + before_script: + # An additional check because $CI_COMMIT_BEFORE_SHA is not always set. + # See https://stackoverflow.com/a/71601191/2097. We use CI_COMMIT_BEFORE_SHA + # when it's set because that will point to the correct commit when you push + # multiple commits at once. If it's not set, use the first parent of the + # commit (which for merge commits is from the branch where you merged into). + - | + if [ "$CI_COMMIT_BEFORE_SHA" = "0000000000000000000000000000000000000000"]; then + echo "CI_COMMIT_BEFORE_SHA is not set." + CHANGED_FILES_COMPARE_REF=$(git rev-parse HEAD^) + echo "Using ${CHANGED_FILES_COMPARE_REF} as previous reference instead." + fi diff --git a/templates/changedfiles/push.yml b/templates/changedfiles/push.yml deleted file mode 100644 index bea5621d80ec493e1f2a26d7dc68d60cd71981f2..0000000000000000000000000000000000000000 --- a/templates/changedfiles/push.yml +++ /dev/null @@ -1,12 +0,0 @@ -include: - - local: '/templates/changedfiles/_shared.yml' - -changed_files_push: - extends: .changed_files - variables: - CHANGED_FILES_COMPARE_REF: $CI_COMMIT_BEFORE_SHA - rules: - - if: $CI_AWE_SKIP_CHANGED_FILES || $CI_PIPELINE_SOURCE != 'push' - when: never - - if: $CI_AWE_RUN_CHANGED_FILES - - !reference [.primary_ref_jobs, rules]