Loading templates/gitlab-ci-semrel.yml +16 −11 Original line number Diff line number Diff line Loading @@ -332,7 +332,9 @@ stages: cat "${semrelConfigFile}" fi fi } function install_semantic_release_plugins() { log_info "installing required plugins" # shellcheck disable=SC2046 Loading @@ -348,7 +350,7 @@ stages: do plugin=$(echo "$line" | cut -d\" -f2) required_plugins="${required_plugins} $plugin" done <<< $(yq eval ".plugins[]" "${semrelConfigFile}" --tojson --indent 0) done <<< $(yq eval ".plugins[]" "${semrelConfigFile}" -o=json --indent 0) # shellcheck disable=SC2086 npm install -g semantic-release ${required_plugins} Loading Loading @@ -448,9 +450,10 @@ stages: function dotenv_semrel_info() { # removing user conf as we need to override it temporarily (git reset will put things back to normal) # see https://www.npmjs.com/package/cosmiconfig for configuration files resolution order (we will use .releaserc) releaserc_file=".releaserc" releaserc_file="${semrelConfigFile}" rm -f "package.json" rm -f "${releaserc_file}" yq eval -o=json 'with_entries(select(.key | . != "plugins"))' "${releaserc_file}" > "${releaserc_file}.new" # Generating the hook scripts that will generate the dotenv file # The dotenv file is generated in $TMPDIR so it will survive the git reset Loading Loading @@ -484,9 +487,8 @@ stages: # Generating temporary semantic-release config { echo "debug: ${debug}" echo "" echo "tagFormat: \"${SEMREL_TAG_FORMAT}\"" echo "# injected (replace your plugins) plugins by the template to generate dotenv" echo "" echo "plugins: [" echo " \"@semantic-release/commit-analyzer\"," Loading @@ -498,7 +500,9 @@ stages: echo " }" echo " ]," echo "]" } > "${releaserc_file}" } >> "${releaserc_file}.new" mv -f "${releaserc_file}.new" "${releaserc_file}" if [[ -n "$TRACE" ]]; then echo "generated ${releaserc_file}:" Loading @@ -506,7 +510,7 @@ stages: fi npm install -g semantic-release @semantic-release/exec semantic-release --dry-run --branches "$CI_COMMIT_REF_NAME" semantic-release --dry-run # Rollback temporary semantic-release configuration git reset --hard Loading Loading @@ -552,6 +556,8 @@ stages: - *semrel-scripts - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}" - cd "${SEMREL_CONFIG_DIR}" - install_yd "yq_linux_amd64" "v4.21.1" - prepare_semantic_release cache: # cache shall be per branch per template key: "$CI_COMMIT_REF_SLUG-SEMREL" Loading @@ -577,8 +583,7 @@ semantic-release: extends: .semrel-base stage: publish script: - install_yd "yq_linux_amd64" "v4.4.1" - prepare_semantic_release - install_semantic_release_plugins - semantic-release --ci ${SEMREL_DRY_RUN+-d} dependencies: [] rules: Loading Loading
templates/gitlab-ci-semrel.yml +16 −11 Original line number Diff line number Diff line Loading @@ -332,7 +332,9 @@ stages: cat "${semrelConfigFile}" fi fi } function install_semantic_release_plugins() { log_info "installing required plugins" # shellcheck disable=SC2046 Loading @@ -348,7 +350,7 @@ stages: do plugin=$(echo "$line" | cut -d\" -f2) required_plugins="${required_plugins} $plugin" done <<< $(yq eval ".plugins[]" "${semrelConfigFile}" --tojson --indent 0) done <<< $(yq eval ".plugins[]" "${semrelConfigFile}" -o=json --indent 0) # shellcheck disable=SC2086 npm install -g semantic-release ${required_plugins} Loading Loading @@ -448,9 +450,10 @@ stages: function dotenv_semrel_info() { # removing user conf as we need to override it temporarily (git reset will put things back to normal) # see https://www.npmjs.com/package/cosmiconfig for configuration files resolution order (we will use .releaserc) releaserc_file=".releaserc" releaserc_file="${semrelConfigFile}" rm -f "package.json" rm -f "${releaserc_file}" yq eval -o=json 'with_entries(select(.key | . != "plugins"))' "${releaserc_file}" > "${releaserc_file}.new" # Generating the hook scripts that will generate the dotenv file # The dotenv file is generated in $TMPDIR so it will survive the git reset Loading Loading @@ -484,9 +487,8 @@ stages: # Generating temporary semantic-release config { echo "debug: ${debug}" echo "" echo "tagFormat: \"${SEMREL_TAG_FORMAT}\"" echo "# injected (replace your plugins) plugins by the template to generate dotenv" echo "" echo "plugins: [" echo " \"@semantic-release/commit-analyzer\"," Loading @@ -498,7 +500,9 @@ stages: echo " }" echo " ]," echo "]" } > "${releaserc_file}" } >> "${releaserc_file}.new" mv -f "${releaserc_file}.new" "${releaserc_file}" if [[ -n "$TRACE" ]]; then echo "generated ${releaserc_file}:" Loading @@ -506,7 +510,7 @@ stages: fi npm install -g semantic-release @semantic-release/exec semantic-release --dry-run --branches "$CI_COMMIT_REF_NAME" semantic-release --dry-run # Rollback temporary semantic-release configuration git reset --hard Loading Loading @@ -552,6 +556,8 @@ stages: - *semrel-scripts - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}" - cd "${SEMREL_CONFIG_DIR}" - install_yd "yq_linux_amd64" "v4.21.1" - prepare_semantic_release cache: # cache shall be per branch per template key: "$CI_COMMIT_REF_SLUG-SEMREL" Loading @@ -577,8 +583,7 @@ semantic-release: extends: .semrel-base stage: publish script: - install_yd "yq_linux_amd64" "v4.4.1" - prepare_semantic_release - install_semantic_release_plugins - semantic-release --ci ${SEMREL_DRY_RUN+-d} dependencies: [] rules: Loading