diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 69a414c910ab11edba4d3384b8978beb20c95905..e54569acfe0b57540bc0fc8cc0d165b02bcc0aec 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -74,59 +74,31 @@ variables: # Activate virtual environment - source .venv/bin/activate -# Only anchors +# Rules anchors # ----------------------------------------------------------------------------- -# https://docs.gitlab.com/ee/ci/yaml/README.html#only -# List all names of refs that can be used with key (only|except):refs using -# anchors to avoid having to modify multiple times. Refs are: -# - Branches names based on git flow: https://danielkummer.github.io/git-flow-cheatsheet/ -# - merge_requests (https://docs.gitlab.com/ee/ci/yaml/README.html#onlyexcept-basic) -# - tags (https://docs.gitlab.com/ee/ci/yaml/README.html#onlyexcept-basic) -.refs_names: - - &ref_release /release-*/ - - &ref_feature /feature-*/ - - &ref_hotfix /hotfix-*/ - - &ref_bugfix /bugfix-*/ - - &ref_develop develop - - &ref_master master - - &ref_merge_requests merge_requests - - &ref_tags tags - -# Specify on which branch, tags or on merge_requests CI should be done. -# Jobs under only_dev anchor will be run if branch name are compliant with git -# flow branch which are not `develop` neither `master` and will be run on -# merge_request -.only_dev: &only_dev - only: - refs: - - *ref_release - - *ref_feature - - *ref_hotfix - - *ref_bugfix - - *ref_merge_requests - -# Jobs under only_pre_prod anchor will be run on `develop` (i.e. pre-release) -# and `master` (release) branch. -.only_pre_prod: &only_pre_prod - only: - refs: - - *ref_develop - - *ref_master - -# Jobs under only_prod anchor will be run on tagged commit. -.only_prod: &only_prod - only: - refs: - - *ref_tags - -# Jobs under only_trigger anchor will be run on `develop` (i.e. pre-release) -# `master` (release) branch and tagged commit. -.only_trigger: &only_trigger - only: - refs: - - *ref_develop - - *ref_master - - *ref_tags +# https://docs.gitlab.com/ee/ci/yaml/README.html#rules +# Defining bash regexp test +.rules_regexp: + - &rules_regexp_dev $CI_COMMIT_BRANCH =~ /^((release|feature|hotfix|bugfix)-|merge_request_)*/ + - &rules_regexp_pre_prod $CI_COMMIT_BRANCH =~ /(develop|master)/ + - &rules_regexp_prod $CI_COMMIT_TAG + +# Defining rules that now replace only to run jobs under specific condition +# and define variables +.rules_dev: &rules_dev + if: *rules_regexp_dev + variables: + CI_DEPLOY_TYPE: "dev" + +.rules_pre_prod: &rules_pre_prod + if: *rules_regexp_pre_prod + variables: + CI_DEPLOY_TYPE: "pre_prod" + +.rules_prod: &rules_prod + if: *rules_regexp_prod + variables: + CI_DEPLOY_TYPE: "prod" # Tag anchors # ----------------------------------------------------------------------------- diff --git a/docs/.gitlab-ci.yml b/docs/.gitlab-ci.yml index 54bcdfd14e971b92a2541be9f09b3d8f16264119..76c8c8193c8b45e50cad80214d09afa95155c7e2 100644 --- a/docs/.gitlab-ci.yml +++ b/docs/.gitlab-ci.yml @@ -1,3 +1,4 @@ + ### BEGIN MKDOCS TEMPLATE ### ### WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG !### ### Modified content will be overwritten when updating.### @@ -98,7 +99,7 @@ variables: export RSYNC_DEST="${RSYNC_DEST}/pre_prod/" export ONLINE_DEST="${ONLINE_DEST}/pre_prod/" ;; - "pre_prod") + "prod") export RSYNC_DEST="${RSYNC_DEST}/" export ONLINE_DEST="${ONLINE_DEST}/" ;; @@ -116,8 +117,8 @@ variables: - &rules_regexp_dev $CI_COMMIT_BRANCH =~ /^((release|feature|hotfix|bugfix)-|merge_request_)*/ - &rules_regexp_pre_prod $CI_COMMIT_BRANCH =~ /(develop|master)/ - &rules_regexp_prod $CI_COMMIT_TAG - - &rules_regexp_trigger_main (($CI_COMMIT_BRANCH =~ /(develop|master)/) || $CI_COMMIT_TAG) && ($MAIN_PROJECT && $MAIN_PROJECT != $CI_PROJECT_PATH) - - &rules_regexp_trigger_info (($CI_COMMIT_BRANCH =~ /(develop|master)/) || $CI_COMMIT_TAG) && ($MAIN_PROJECT == "") + - &rules_regexp_trigger_main (($CI_COMMIT_BRANCH =~ /(develop|master)/) || $CI_COMMIT_TAG) && ($MAIN_PROJECT != null && $MAIN_PROJECT != $CI_PROJECT_PATH) + - &rules_regexp_trigger_info (($CI_COMMIT_BRANCH =~ /(develop|master)/) || $CI_COMMIT_TAG) && $MAIN_PROJECT == null # Defining rules that now replace only to run jobs under specific condition # and define variables @@ -252,9 +253,9 @@ script_pre_test_ensure_variable: &script_pre_test_ensure_variable return 1 fi rules: - - *rules_dev - - *rules_pre_prod - *rules_prod + - *rules_pre_prod + - *rules_dev # Jobs in test stage # ----------------------------------------------------------------------------- @@ -360,7 +361,6 @@ script_deploy_html: &script_deploy_html fi - ln -s "${LAST_TAG}" "latest" - mv "latest" "tmp/${PROJECT_PATH}" - - rsync -avz "tmp/" "${RSYNC_DEST}" - echo -e " <!DOCTYPE html>\n <html>\n @@ -377,12 +377,12 @@ script_deploy_html: &script_deploy_html <body>\n Redirecting to <a href='${ONLINE_PATH}'>${ONLINE_PATH}</a>...\n </body>\n - </html>" > index.html - - rsync -avz index.html "${RSYNC_DEST}${PROJECT_PATH}/" + </html>" > tmp/${PROJECT_PATH}/../index.html + - rsync -avz "tmp/" "${RSYNC_DEST}" rules: - - *rules_dev - - *rules_pre_prod - *rules_prod + - *rules_pre_prod + - *rules_dev # Jobs in post_deploy stage # ----------------------------------------------------------------------------- @@ -424,3 +424,4 @@ inform_triggers_variables: # vim: fdm=indent # ***************************************************************************** ### END MKDOCS TEMPLATE ### +