diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 93683e5f5..8853a3cea 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,12 +32,6 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Install jq - run: | - if ! command -v jq >/dev/null; then - sudo apt-get update - sudo apt-get install -y jq - fi - name: get secrets uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.2.0 with: @@ -58,8 +52,6 @@ jobs: fi make build - - name: prepare release - run: ./scripts/release/prepare-release.sh - name: publish run: | if [[ "$DRY_RUN" = true ]]; then diff --git a/scripts/release/prepare-release.sh b/scripts/release/prepare-release.sh index a23adacba..3717dcd70 100755 --- a/scripts/release/prepare-release.sh +++ b/scripts/release/prepare-release.sh @@ -2,7 +2,18 @@ set -euo pipefail -RELEASE_TAG="v${LD_RELEASE_VERSION}" +release_tag="v${LD_RELEASE_VERSION}" + +stage_artifacts() ( + local target=$1 + + echo "$DOCKER_TOKEN" | sudo docker login --username "$DOCKER_USERNAME" --password-stdin + + sudo PATH="$PATH" GITHUB_TOKEN="$GITHUB_TOKEN" make "$target" + + mkdir -p "$ARTIFACT_DIRECTORY" + cp ./dist/*.deb ./dist/*.rpm ./dist/*.tar.gz ./dist/*.txt "$ARTIFACT_DIRECTORY" +) update_go() ( sed -i "s/const Version =.*/const Version = \"${LD_RELEASE_VERSION}\"/g" internal/version/version.go @@ -14,7 +25,7 @@ update_orb() ( ) update_gha() ( - sed -i "s#launchdarkly/find-code-references@v.*#launchdarkly/find-code-references@${RELEASE_TAG}#g" build/metadata/github-actions/README.md + sed -i "s#launchdarkly/find-code-references@v.*#launchdarkly/find-code-references@${release_tag}#g" build/metadata/github-actions/README.md sed -i "s#launchdarkly/ld-find-code-refs-github-action:.*#launchdarkly/ld-find-code-refs-github-action:${LD_RELEASE_VERSION}#g" build/metadata/github-actions/Dockerfile ) @@ -23,7 +34,13 @@ update_bitbucket() ( sed -i "s#image: launchdarkly/ld-find-code-refs-bitbucket-pipeline:.*#image: launchdarkly/ld-find-code-refs-bitbucket-pipeline:${LD_RELEASE_VERSION}#g" build/metadata/bitbucket/pipe.yml ) -update_go -update_orb -update_gha -update_bitbucket +prepare_release() ( + # create artifacts with goreleaser + stage_artifacts $1 + + # update metadata files + update_go + update_orb + update_gha + update_bitbucket +) diff --git a/scripts/release/publish-dry-run.sh b/scripts/release/publish-dry-run.sh index efd0a1421..818084037 100755 --- a/scripts/release/publish-dry-run.sh +++ b/scripts/release/publish-dry-run.sh @@ -2,8 +2,8 @@ set -euo pipefail -source $(dirname $0)/stage-artifacts.sh -stage_artifacts products-for-release +source $(dirname $0)/prepare_release.sh +prepare_release products-for-release # Copy the Docker image that goreleaser just built into the artifacts - we only do # this in a dry run, because in a real release the image will be available from diff --git a/scripts/release/publish.sh b/scripts/release/publish.sh index 62a7a5f8d..3de16725d 100755 --- a/scripts/release/publish.sh +++ b/scripts/release/publish.sh @@ -2,8 +2,8 @@ set -euo pipefail -source $(dirname $0)/stage-artifacts.sh -stage_artifacts publish +source $(dirname $0)/prepare-release.sh +prepare_release publish # make bitbucket and github known hosts to push successfully mkdir -m700 ~/.ssh diff --git a/scripts/release/stage-artifacts.sh b/scripts/release/stage-artifacts.sh deleted file mode 100755 index 1c9e98240..000000000 --- a/scripts/release/stage-artifacts.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -stage_artifacts() { - TARGET=$1 - - echo "$DOCKER_TOKEN" | sudo docker login --username "$DOCKER_USERNAME" --password-stdin - - sudo PATH="$PATH" GITHUB_TOKEN="$GITHUB_TOKEN" make "$TARGET" - - mkdir -p "$ARTIFACT_DIRECTORY" - cp ./dist/*.deb ./dist/*.rpm ./dist/*.tar.gz ./dist/*.txt "$ARTIFACT_DIRECTORY" -}