From 43287ec9cf5ac53203e617b06fa1215a57f62d83 Mon Sep 17 00:00:00 2001 From: Stephan Date: Fri, 10 Dec 2021 18:56:12 +0100 Subject: [PATCH] exp --- .github/workflows/publish-release.yml | 58 +++++++++++++++++++-------- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 471f55a..e2dc60b 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -9,38 +9,64 @@ jobs: uses: actions/github-script@v4 with: script: | - console.log('X0') - const tag = "v" + "${{ github.ref }}".substring(19) - const rel = await github.repos.getReleaseByTag({ - owner: context.repo.owner, - repo: context.repo.repo, - tag: tag - }) - if (rel === null) { - core.setFailed("Could not find a release for tag " + tag) + const ver = "${{ github.ref }}".substring(19) + const tag = "v" + ver + try { + const rel = await github.repos.getReleaseByTag({ + owner: context.repo.owner, + repo: context.repo.repo, + tag: tag + }) } + catch (error) { + core.setFailed(`Could not find a release for tag '${tag}'.`) + return + } + if (rel.draft) { + core.setFailed(`Release for tag '${tag}' is already published.`) + return + } + try { + const ref = await github.git.getRef({ + owner: context.repo.owner, + repo: context.repo.repo, + ref: 'tags/' + tag + }) + core.setFailed(`Tag '${tag}' already exists.`) + return + } + catch (error) { + // this is expected + } + // everything is OK - name: Checkout uses: actions/checkout@v2 with: token: ${{ secrets.GITHUB_TOKEN }} + - name: Configure repository + shell: bash + run: | + git config user.email "github-actions@hazelcast.com" + git config user.name "GitHub Actions (Build Release)" + - name: Finalize the release run: | - version="${{ github.ref }}" - version="${version:19}" # trim starting 'refs/heads/release/' (19 chars) - echo "Tag ref ${{ github.ref }} as v$version" + ref="${{ github.ref }}" + branch="${ref:11}" # trim starting 'refs/heads/' (11 chars) + version="${ref:19}" # trim starting 'refs/heads/release/' (19 chars) + echo "Tag branch $branch as v$version" git tag v$version - git config user.email "github-actions@zpqrtbnk.net" - git config user.name "GitHub Actions (Do Something)" git push --tags - git push :${{ github.ref }} + #git push :$branch - name: Publish the release uses: actions/github-script@v4 with: script: | - const tag = "v" + "${{ github.ref }}".substring(19) + const ver = "${{ github.ref }}".substring(19) + const tag = "v" + ver const rel = await github.repos.getReleaseByTag({ owner: context.repo.owner, repo: context.repo.repo,