From 7e0e04a964beeb6c74d1e12957918f85f0ea223f 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: Mon, 26 Aug 2024 00:05:30 +0200 Subject: [PATCH] Update release.yml --- .github/workflows/release.yml | 224 ++++++++++++++-------------------- 1 file changed, 94 insertions(+), 130 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d55a009..a82fa56 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: steps: - name: Check-out repository - uses: actions/checkout@v4 + uses: actions/checkout@v1 - name: Setup Python uses: actions/setup-python@v5 @@ -50,7 +50,7 @@ jobs: onefile: true - name: Upload Artifact[win-x64] - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3.1.3 with: name: GoFileCLI_win-x64 path: | @@ -64,7 +64,7 @@ jobs: run: uname -m - name: Check-out repository - uses: actions/checkout@v4 + uses: actions/checkout@v1 - name: Setup Python uses: actions/setup-python@v5 @@ -87,7 +87,7 @@ jobs: onefile: true - name: Upload Artifact[linux-x64] - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3.1.3 with: name: GoFileCLI_linux-x64 path: | @@ -101,7 +101,7 @@ jobs: run: uname -m - name: Check-out repository - uses: actions/checkout@v4 + uses: actions/checkout@v1 - name: Setup Python uses: actions/setup-python@v5 @@ -124,139 +124,103 @@ jobs: python -m nuitka --onefile --assume-yes-for-downloads --output-dir=dist_x86_64 --macos-target-arch=x86_64 gofilecli.py - name: Upload Artifact [osx-arm64] - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3.1.3 with: name: GoFileCLI_osx-x64 - path: | - dist_x86_64/gofilecli.bin + path: dist_x86_64/gofilecli.bin - name: Upload Artifact [osx-arm64] - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3.1.3 with: name: GoFileCLI_osx-arm64 - path: | - dist/gofilecli.bin + path: dist/gofilecli.bin - # 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.PAT_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.PAT_TOKEN }} - - # attach_to_release: - # name: Attach native executables to release - # if: ${{ github.event.inputs.doRelease == 'true' }} - # needs: [build-win-x64,build-linux-x64,build-macos, 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: List artifacts - # run: gh run artifacts list - # env: - # GITHUB_TOKEN: ${{ secrets.PAT_TOKEN }} - - # # - name: Download GoFileCLI_osx-arm64 artifact - # # uses: actions/download-artifact@v3 - # # with: - # # name: GoFileCLI_osx-arm64 - - # # - name: Download GoFileCLI_osx-x64 artifact - # # uses: actions/download-artifact@v3 - # # with: - # # name: GoFileCLI_osx-x64 - - # # - name: Download GoFileCLI_linux-x64 artifact - # # uses: actions/download-artifact@v3 - # # with: - # # name: GoFileCLI_linux-x64 - - # # - name: Download GoFileCLI_win-x64 artifact - # # uses: actions/download-artifact@v3 - # # with: - # # name: GoFileCLI_win-x64 - - # - name: List downloaded files - # run: | - # echo "Listing files in the working directory:" - # ls -R - - # # - name: Tar (linux, macOS) - # # run: | - # # for file in *{osx,linux}*; do - # # if [ -f "$file" ]; then - # # tar cvzfp "${file}_${{ env.date }}.tar.gz" "$file" - # # fi - # # done - - # # - name: Zip (windows) - # # run: | - # # for file in *win*; do - # # if [ -f "$file" ]; then - # # zip -r "${file}_${{ env.date }}.zip" "$file" - # # fi - # # 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.PAT_TOKEN }} - download: - runs-on: macos-latest + 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: Download Artifact [osx-x86_64] - uses: actions/download-artifact@v4 - with: - name: GoFileCLI_osx-x86_64 + - name: Audit gh version + run: gh --version - - name: Download Artifact [osx-arm64] - uses: actions/download-artifact@v4 - with: - name: GoFileCLI_osx-arm64 - - - name: List Files + - name: Check for existing release + id: check_release run: | - ls -la \ No newline at end of file + 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.PAT_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.PAT_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: List artifacts + run: gh run artifacts list + env: + GITHUB_TOKEN: ${{ secrets.PAT_TOKEN }} + + - name: Fetch executables + uses: actions/download-artifact@v3 + + - name: List downloaded files + run: | + echo "Listing files in the working directory:" + ls -R + + - name: Tar (linux, macOS) + run: | + for file in *{osx,linux}*; do + if [ -f "$file" ]; then + tar cvzfp "${file}_${{ env.date }}.tar.gz" "$file" + fi + done + + - name: Zip (windows) + run: | + for file in *win*; do + if [ -f "$file" ]; then + zip -r "${file}_${{ env.date }}.zip" "$file" + fi + 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.PAT_TOKEN }} \ No newline at end of file