Commit 11c64ddc authored by Cédric's avatar Cédric
Browse files

fix: don't overwrite existing .releaserc conf in semrel-info

parent 6b526575
Loading
Loading
Loading
Loading
+16 −11
Original line number Diff line number Diff line
@@ -332,7 +332,9 @@ stages:
        cat "${semrelConfigFile}"
      fi
    fi
  }

  function install_semantic_release_plugins() {
    log_info "installing required plugins"

    # shellcheck disable=SC2046
@@ -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}
@@ -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
@@ -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\","
@@ -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}:"
@@ -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
@@ -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"
@@ -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: