From a8779b59fefd96331edb6f22a0ec70cef2cabe00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=88=9A=28noham=29=C2=B2?= <100566912+NohamR@users.noreply.github.com> Date: Sun, 25 Aug 2024 21:06:37 +0200 Subject: [PATCH] Update release.yml --- .github/workflows/release.yml | 72 ++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e7fc968..514b5f4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -135,4 +135,74 @@ jobs: with: name: GoFileCLI_osx-arm64 path: | - dist/* \ No newline at end of file + dist/* + + create_draft_release: + name: Create Github draft release + if: ${{ github.event.inputs.doRelease == 'true' }} + needs: [build-win-x64,build-linux-x64,build-macos] + runs-on: ubuntu-latest + steps: + - name: Audit gh version + run: gh --version + + - name: Check for existing release + id: check_release + run: | + echo "::echo::on" + gh release view --repo '${{ github.repository }}' '${{ github.event.inputs.tag }}' \ + && echo "already_exists=true" >> $GITHUB_ENV \ + || echo "already_exists=false" >> $GITHUB_ENV + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Checkout repo + if: env.already_exists == 'false' + uses: actions/checkout@v3 + with: + ref: '${{ github.event.inputs.ref }}' + + - name: Create release + if: env.already_exists == 'false' + run: > + gh release create + '${{ github.event.inputs.tag }}' + --draft + --repo '${{ github.repository }}' + --title '${{ github.event.inputs.tag }}' + --target '${{ github.event.inputs.ref }}' + --generate-notes + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + attach_to_release: + name: Attach native executables to release + if: ${{ github.event.inputs.doRelease == 'true' }} + needs: create_draft_release + runs-on: ubuntu-latest + steps: + - name: Get current date + id: date + run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV + + - name: GH version + run: gh --version + + - name: Fetch executables + uses: actions/download-artifact@v3 + + - name: Tar (linux, macOS) + run: for dir in *{osx,linux}*; do tar cvzfp "${dir}_${{ env.date }}.tar.gz" "$dir"; done + + - name: Zip (windows) + run: for dir in *win*; do zip -r "${dir}_${{ env.date }}.zip" "$dir"; done + + - name: Upload + run: | + until gh release upload --clobber --repo ${{ github.repository }} ${{ github.event.inputs.tag }} *.zip *.tar.gz; do + echo "Attempt $((++attempts)) to upload release artifacts failed. Will retry in 20s" + sleep 20 + done + timeout-minutes: 10 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file