From 86f2f24a82243ad21d09343c62a5dfde710b2bf9 Mon Sep 17 00:00:00 2001 From: EmandM Date: Wed, 15 May 2024 00:07:06 -0400 Subject: [PATCH] add dry run logic to release --- .github/workflows/publish.yml | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4bf46a3..884b43b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,8 +16,17 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 - id: variables - run: echo "version=$(npm pkg get version | sed 's/"//g')" >> $GITHUB_OUTPUT - - run: echo "Creating release for ts-mock-imports at version ${{ steps.variables.outputs.version }}" + run: | + local_version=$(npm pkg get version | sed 's/"//g') + hosted_version=$(npm show ts-mock-imports version) + if [[ $hosted_version == $local_version ]]; then + echo "is_dry_run=false" >> $GITHUB_OUTPUT + echo "version=$(npm pkg get version | sed 's/"//g')" >> $GITHUB_OUTPUT + echo "Creating release for ts-mock-imports at version $local_version" + else + echo "is_dry_run=true" >> $GITHUB_OUTPUT + fi + publish-npm: needs: setup @@ -31,7 +40,12 @@ jobs: - run: npm ci - run: npm run compile # Publish to npm - - run: npm publish --access public + - run: | + cmd=( npm publish --access public ) + if [[ ${{ needs.setup.outputs.do_dry_run }} == 'true' ]]; then + cmd+=( --dry-run ) + fi + cmd[@] env: NODE_AUTH_TOKEN: ${{ secrets.PUBLISH_NPM_TOKEN }} @@ -55,13 +69,19 @@ jobs: cat package.json - run: echo registry=https://npm.pkg.github.com/emandm >> .npmrc - - run: npm publish + - run: | + cmd=( npm publish ) + if [[ ${{ needs.setup.outputs.do_dry_run }} == 'true' ]]; then + cmd+=( --dry-run ) + fi + cmd[@] env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} external_test: runs-on: ubuntu-latest needs: [setup, publish-npm] + if: ${{ needs.setup.outputs.do_dry_run }} == 'false' steps: - uses: actions/setup-node@v4 - uses: actions/checkout@v4