From 1e7463308d87d8244650c3db33c012133a067818 Mon Sep 17 00:00:00 2001 From: Cal Bera Date: Tue, 24 Jun 2025 11:02:02 -0700 Subject: [PATCH] chore(CI): Fix download links in draft releases (#16) * try release fix * fix links --- .github/meta/bera-geth.png | Bin 17329 -> 15804 bytes .github/workflows/release.yml | 78 +++++++++++++++++++++++----------- build/ci.go | 3 +- 3 files changed, 55 insertions(+), 26 deletions(-) diff --git a/.github/meta/bera-geth.png b/.github/meta/bera-geth.png index d4f37ab3c8eb462828338e5c66b2f5ad134b7df5..09b3e51a6261b293a9c91731f6cb8937115e9634 100644 GIT binary patch literal 15804 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 z zuKGJwdZe=Q6g%Gl`0b1&MklM%gQU43C1l;og literal 17329 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 F{}1r%b7TMj diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b82d6ed60f..d7ace36b1c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,6 +4,7 @@ on: push: branches: - "main" + - "fix-ci-3" # TODO: remove this tags: - "v1.*" @@ -14,7 +15,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Extract version - run: echo "VERSION=$(echo ${GITHUB_REF#refs/tags/})" >> $GITHUB_OUTPUT + run: | + if [[ "${GITHUB_REF}" == refs/tags/* ]]; then + echo "VERSION=$(echo ${GITHUB_REF#refs/tags/})" >> $GITHUB_OUTPUT + else + # For branch builds, use a test version + echo "VERSION=v1.test-branch" >> $GITHUB_OUTPUT + fi id: extract_version outputs: VERSION: ${{ steps.extract_version.outputs.VERSION }} @@ -46,10 +53,10 @@ jobs: - name: Upload artifacts (amd64) uses: actions/upload-artifact@v4 with: - name: geth-linux-amd64-archives + name: bera-geth-linux-amd64-archives path: | - geth-linux-amd64-*.tar.gz - geth-alltools-linux-amd64-*.tar.gz + bera-geth-linux-amd64-*.tar.gz + bera-geth-alltools-linux-amd64-*.tar.gz - name: Cleanup bin run: rm -f build/bin/* @@ -81,10 +88,10 @@ jobs: - name: Upload artifacts (arm64) uses: actions/upload-artifact@v4 with: - name: linux-arm64-archives + name: bera-geth-linux-arm64-archives path: | - geth-linux-arm64-*.tar.gz - geth-alltools-linux-arm64-*.tar.gz + bera-geth-linux-arm64-*.tar.gz + bera-geth-alltools-linux-arm64-*.tar.gz - name: Cleanup bin run: rm -fr build/bin/* @@ -126,7 +133,6 @@ jobs: name: Draft Release needs: [extract-version, linux-intel, linux-arm] runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') env: VERSION: ${{ needs.extract-version.outputs.VERSION }} permissions: @@ -152,24 +158,45 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | + # Debug: Show what was downloaded + echo "Contents of artifacts directory:" + ls -la ./artifacts/ || echo "Artifacts directory not found" + # Move all artifacts to current directory - find ./artifacts -name "*.tar.gz" -exec mv {} . \; + if [ -d "./artifacts" ]; then + find ./artifacts -name "*.tar.gz" -exec mv {} . \; + else + echo "Warning: No artifacts directory found" + fi # List available files for debugging echo "Available files:" ls -la *.tar.gz || echo "No tar.gz files found" # Get actual archive names - GETH_AMD64=$(ls geth-linux-amd64-*.tar.gz | grep -v alltools | head -1) - GETH_ARM64=$(ls geth-linux-arm64-*.tar.gz | grep -v alltools | head -1) - GETH_ALLTOOLS_AMD64=$(ls geth-alltools-linux-amd64-*.tar.gz | head -1) - GETH_ALLTOOLS_ARM64=$(ls geth-alltools-linux-arm64-*.tar.gz | head -1) + GETH_AMD64=$(ls bera-geth-linux-amd64-*.tar.gz 2>/dev/null | grep -v alltools | head -1) + GETH_ARM64=$(ls bera-geth-linux-arm64-*.tar.gz 2>/dev/null | grep -v alltools | head -1) + GETH_ALLTOOLS_AMD64=$(ls bera-geth-alltools-linux-amd64-*.tar.gz 2>/dev/null | head -1) + GETH_ALLTOOLS_ARM64=$(ls bera-geth-alltools-linux-arm64-*.tar.gz 2>/dev/null | head -1) echo "Found archives:" - echo " AMD64: $GETH_AMD64" - echo " ARM64: $GETH_ARM64" - echo " Alltools AMD64: $GETH_ALLTOOLS_AMD64" - echo " Alltools ARM64: $GETH_ALLTOOLS_ARM64" + echo " AMD64: ${GETH_AMD64:-NOT FOUND}" + echo " ARM64: ${GETH_ARM64:-NOT FOUND}" + echo " Alltools AMD64: ${GETH_ALLTOOLS_AMD64:-NOT FOUND}" + echo " Alltools ARM64: ${GETH_ALLTOOLS_ARM64:-NOT FOUND}" + + # Determine the release tag + if [[ "${GITHUB_REF}" == refs/tags/* ]]; then + # For tags, use the actual tag + RELEASE_TAG="${{ env.VERSION }}" + IS_PRERELEASE="" + else + # For branches, create a specific tag based on commit + RELEASE_TAG="test-${GITHUB_SHA::8}" + IS_PRERELEASE="--prerelease" + fi + + echo "Release tag: $RELEASE_TAG" body=$(cat <<- 'ENDBODY' ![bera-geth](https://raw.githubusercontent.com/berachain/bera-geth/main/.github/meta/bera-geth.png) @@ -199,10 +226,10 @@ jobs: | System | Architecture | Binary | Notes | |:---:|:---:|:---:|:---| - | | amd64 | [GETH_AMD64_PLACEHOLDER](https://github.com/${{ github.repository }}/releases/download/${{ env.VERSION }}/GETH_AMD64_PLACEHOLDER) | Most Linux systems | - | | arm64 | [GETH_ARM64_PLACEHOLDER](https://github.com/${{ github.repository }}/releases/download/${{ env.VERSION }}/GETH_ARM64_PLACEHOLDER) | 64-bit ARM systems | - | | - | [GETH_ALLTOOLS_AMD64_PLACEHOLDER](https://github.com/${{ github.repository }}/releases/download/${{ env.VERSION }}/GETH_ALLTOOLS_AMD64_PLACEHOLDER) | All tools bundle (amd64) | - | | - | [GETH_ALLTOOLS_ARM64_PLACEHOLDER](https://github.com/${{ github.repository }}/releases/download/${{ env.VERSION }}/GETH_ALLTOOLS_ARM64_PLACEHOLDER) | All tools bundle (arm64) | + | | amd64 | [GETH_AMD64_PLACEHOLDER](https://github.com/${{ github.repository }}/releases/download/RELEASE_TAG_PLACEHOLDER/GETH_AMD64_PLACEHOLDER) | Most Linux systems | + | | arm64 | [GETH_ARM64_PLACEHOLDER](https://github.com/${{ github.repository }}/releases/download/RELEASE_TAG_PLACEHOLDER/GETH_ARM64_PLACEHOLDER) | 64-bit ARM systems | + | | amd64 | [GETH_ALLTOOLS_AMD64_PLACEHOLDER](https://github.com/${{ github.repository }}/releases/download/RELEASE_TAG_PLACEHOLDER/GETH_ALLTOOLS_AMD64_PLACEHOLDER) | All tools bundle (amd64) | + | | arm64 | [GETH_ALLTOOLS_ARM64_PLACEHOLDER](https://github.com/${{ github.repository }}/releases/download/RELEASE_TAG_PLACEHOLDER/GETH_ALLTOOLS_ARM64_PLACEHOLDER) | All tools bundle (arm64) | | **System** | **Option** | - | **Resource** | | | Docker | | [ghcr.io/berachain/bera-geth](https://ghcr.io/berachain/bera-geth) | @@ -223,19 +250,20 @@ jobs: ENDBODY ) - # Replace placeholders with actual filenames + # Replace placeholders with actual filenames and release tag body="${body//GETH_AMD64_PLACEHOLDER/$GETH_AMD64}" body="${body//GETH_ARM64_PLACEHOLDER/$GETH_ARM64}" body="${body//GETH_ALLTOOLS_AMD64_PLACEHOLDER/$GETH_ALLTOOLS_AMD64}" body="${body//GETH_ALLTOOLS_ARM64_PLACEHOLDER/$GETH_ALLTOOLS_ARM64}" + body="${body//RELEASE_TAG_PLACEHOLDER/$RELEASE_TAG}" # Create assets array for gh release assets=() - for asset in geth-*.tar.gz; do + for asset in bera-geth-*.tar.gz; do if [ -f "$asset" ]; then assets+=("$asset") fi done - tag_name="${{ env.VERSION }}" - echo "$body" | gh release create --draft -t "Bera Geth $tag_name" -F "-" "$tag_name" "${assets[@]}" + # Create the release with the determined tag + echo "$body" | gh release create $IS_PRERELEASE --draft -t "Bera Geth $RELEASE_TAG" -F "-" "$RELEASE_TAG" "${assets[@]}" diff --git a/build/ci.go b/build/ci.go index d5806277b4..9c601ec91a 100644 --- a/build/ci.go +++ b/build/ci.go @@ -650,7 +650,8 @@ func maybeSkipArchive(env build.Environment) { log.Printf("skipping archive creation because this is a PR build") os.Exit(0) } - if env.Branch != "main" && !strings.HasPrefix(env.Tag, "v1.") { + // TODO: remove this. + if env.Branch != "main" && env.Branch != "fix-ci-3" && !strings.HasPrefix(env.Tag, "v1.") { log.Printf("skipping archive creation because branch %q, tag %q is not on the inclusion list", env.Branch, env.Tag) os.Exit(0) }