From 51f8c8068fe9495d76ff37e4f69c7a4a2c357b76 Mon Sep 17 00:00:00 2001 From: AngZhou Date: Mon, 25 Aug 2025 23:44:05 +0800 Subject: [PATCH 1/9] feat: add linux ubuntu build --- .github/workflows/bazel_cli_build.yml | 34 ++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bazel_cli_build.yml b/.github/workflows/bazel_cli_build.yml index f9b968e..254c5a3 100644 --- a/.github/workflows/bazel_cli_build.yml +++ b/.github/workflows/bazel_cli_build.yml @@ -1,4 +1,4 @@ -name: Bazel CLI Build (macOS) +name: Bazel CLI Build on: push: @@ -15,6 +15,34 @@ on: jobs: + build-linux: + runs-on: ubuntu-22.04 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + - name: Install Software + run: | + sudo apt-get update && sudo apt-get install -y python3 nodejs clang-13 libclang-13-dev python3-pip build-essential + sudo python3 -m pip install pip==24.0 + sudo ln -sf /usr/bin/python3 /usr/bin/python + sudo ln -sf /usr/bin/clang-13 /usr/bin/clang + sudo ln -sf /usr/bin/clang++-13 /usr/bin/clang++ + - name: Set up Bazel + uses: bazel-contrib/setup-bazel@0.14.0 + with: + bazelisk-cache: true + disk-cache: ${{ github.workflow }} + repository-cache: true + - name: Build All + run: bazel build //... + - name: Upload sparrow-cli.tar.gz artifact + uses: actions/upload-artifact@v4 + with: + name: sparrow-cli-linux + path: bazel-bin/sparrow-cli-linux.tar.gz + build-macos: runs-on: macos-latest steps: @@ -35,5 +63,5 @@ jobs: - name: Upload sparrow-cli.tar.gz artifact uses: actions/upload-artifact@v4 with: - name: sparrow-cli - path: bazel-bin/sparrow-cli.tar.gz + name: sparrow-cli-macos + path: bazel-bin/sparrow-cli-mac.tar.gz From 4ac4d607a8f228a051edafd89ee159802751ad55 Mon Sep 17 00:00:00 2001 From: AngZhou Date: Fri, 29 Aug 2025 00:25:42 +0800 Subject: [PATCH 2/9] rename artifacts --- .github/workflows/bazel_cli_build.yml | 38 +++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bazel_cli_build.yml b/.github/workflows/bazel_cli_build.yml index 254c5a3..ea4a7f0 100644 --- a/.github/workflows/bazel_cli_build.yml +++ b/.github/workflows/bazel_cli_build.yml @@ -6,6 +6,8 @@ on: - 'doc/**' - 'example/**' - '**/*.md' + tags: + - '*' pull_request: paths-ignore: - 'doc/**' @@ -37,11 +39,27 @@ jobs: repository-cache: true - name: Build All run: bazel build //... + - name: Rename artifact with tag for release + if: startsWith(github.ref, 'refs/tags/') + run: | + TAG_NAME=${GITHUB_REF#refs/tags/} + cp bazel-bin/sparrow-cli-linux.tar.gz sparrow-cli-${TAG_NAME}-linux.tar.gz + - name: Rename artifact with commit hash for push + if: ${{ !startsWith(github.ref, 'refs/tags/') }} + run: | + SHORT_COMMIT=$(echo ${{ github.sha }} | cut -c1-7) + cp bazel-bin/sparrow-cli-linux.tar.gz sparrow-cli-${SHORT_COMMIT}-linux.tar.gz - name: Upload sparrow-cli.tar.gz artifact + if: ${{ !startsWith(github.ref, 'refs/tags/') }} uses: actions/upload-artifact@v4 with: name: sparrow-cli-linux - path: bazel-bin/sparrow-cli-linux.tar.gz + path: sparrow-cli-*-linux.tar.gz + - name: Upload to Release + if: startsWith(github.ref, 'refs/tags/') + uses: softprops/action-gh-release@v1 + with: + files: sparrow-cli-*-linux.tar.gz build-macos: runs-on: macos-latest @@ -60,8 +78,24 @@ jobs: repository-cache: true - name: Build All run: bazel build //... + - name: Rename artifact with tag for release + if: startsWith(github.ref, 'refs/tags/') + run: | + TAG_NAME=${GITHUB_REF#refs/tags/} + cp bazel-bin/sparrow-cli-mac.tar.gz sparrow-cli-${TAG_NAME}-mac.tar.gz + - name: Rename artifact with commit hash for push + if: ${{ !startsWith(github.ref, 'refs/tags/') }} + run: | + SHORT_COMMIT=$(echo ${{ github.sha }} | cut -c1-7) + cp bazel-bin/sparrow-cli-mac.tar.gz sparrow-cli-${SHORT_COMMIT}-mac.tar.gz - name: Upload sparrow-cli.tar.gz artifact + if: ${{ !startsWith(github.ref, 'refs/tags/') }} uses: actions/upload-artifact@v4 with: name: sparrow-cli-macos - path: bazel-bin/sparrow-cli-mac.tar.gz + path: sparrow-cli-*-mac.tar.gz + - name: Upload to Release + if: startsWith(github.ref, 'refs/tags/') + uses: softprops/action-gh-release@v1 + with: + files: sparrow-cli-*-mac.tar.gz From 4ed13fb2cc2164390ddf9d0c0dd077922b357372 Mon Sep 17 00:00:00 2001 From: Zhou Ang Date: Fri, 29 Aug 2025 16:09:59 +0800 Subject: [PATCH 3/9] fix build output name --- .github/workflows/bazel_cli_build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/bazel_cli_build.yml b/.github/workflows/bazel_cli_build.yml index ea4a7f0..af231f4 100644 --- a/.github/workflows/bazel_cli_build.yml +++ b/.github/workflows/bazel_cli_build.yml @@ -43,12 +43,12 @@ jobs: if: startsWith(github.ref, 'refs/tags/') run: | TAG_NAME=${GITHUB_REF#refs/tags/} - cp bazel-bin/sparrow-cli-linux.tar.gz sparrow-cli-${TAG_NAME}-linux.tar.gz + cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${TAG_NAME}-linux.tar.gz - name: Rename artifact with commit hash for push if: ${{ !startsWith(github.ref, 'refs/tags/') }} run: | SHORT_COMMIT=$(echo ${{ github.sha }} | cut -c1-7) - cp bazel-bin/sparrow-cli-linux.tar.gz sparrow-cli-${SHORT_COMMIT}-linux.tar.gz + cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${SHORT_COMMIT}-linux.tar.gz - name: Upload sparrow-cli.tar.gz artifact if: ${{ !startsWith(github.ref, 'refs/tags/') }} uses: actions/upload-artifact@v4 @@ -82,12 +82,12 @@ jobs: if: startsWith(github.ref, 'refs/tags/') run: | TAG_NAME=${GITHUB_REF#refs/tags/} - cp bazel-bin/sparrow-cli-mac.tar.gz sparrow-cli-${TAG_NAME}-mac.tar.gz + cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${TAG_NAME}-mac.tar.gz - name: Rename artifact with commit hash for push if: ${{ !startsWith(github.ref, 'refs/tags/') }} run: | SHORT_COMMIT=$(echo ${{ github.sha }} | cut -c1-7) - cp bazel-bin/sparrow-cli-mac.tar.gz sparrow-cli-${SHORT_COMMIT}-mac.tar.gz + cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${SHORT_COMMIT}-mac.tar.gz - name: Upload sparrow-cli.tar.gz artifact if: ${{ !startsWith(github.ref, 'refs/tags/') }} uses: actions/upload-artifact@v4 From 1dc90973ba27458eb2931232a1260380133ae3d7 Mon Sep 17 00:00:00 2001 From: Zhou Ang Date: Tue, 2 Sep 2025 10:58:52 +0800 Subject: [PATCH 4/9] rename artifact with version --- .github/workflows/bazel_cli_build.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bazel_cli_build.yml b/.github/workflows/bazel_cli_build.yml index af231f4..d10c1e1 100644 --- a/.github/workflows/bazel_cli_build.yml +++ b/.github/workflows/bazel_cli_build.yml @@ -44,16 +44,18 @@ jobs: run: | TAG_NAME=${GITHUB_REF#refs/tags/} cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${TAG_NAME}-linux.tar.gz + echo "TAG_NAME=${TAG_NAME}" >> $GITHUB_ENV - name: Rename artifact with commit hash for push if: ${{ !startsWith(github.ref, 'refs/tags/') }} run: | SHORT_COMMIT=$(echo ${{ github.sha }} | cut -c1-7) cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${SHORT_COMMIT}-linux.tar.gz + echo "ARTIFACT_NAME=sparrow-cli-${SHORT_COMMIT}-linux" >> $GITHUB_ENV - name: Upload sparrow-cli.tar.gz artifact if: ${{ !startsWith(github.ref, 'refs/tags/') }} uses: actions/upload-artifact@v4 with: - name: sparrow-cli-linux + name: ${{ env.ARTIFACT_NAME }} path: sparrow-cli-*-linux.tar.gz - name: Upload to Release if: startsWith(github.ref, 'refs/tags/') @@ -62,7 +64,7 @@ jobs: files: sparrow-cli-*-linux.tar.gz build-macos: - runs-on: macos-latest + runs-on: macos-14 steps: - name: Checkout repository uses: actions/checkout@v4 @@ -83,16 +85,18 @@ jobs: run: | TAG_NAME=${GITHUB_REF#refs/tags/} cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${TAG_NAME}-mac.tar.gz + echo "TAG_NAME=${TAG_NAME}" >> $GITHUB_ENV - name: Rename artifact with commit hash for push if: ${{ !startsWith(github.ref, 'refs/tags/') }} run: | SHORT_COMMIT=$(echo ${{ github.sha }} | cut -c1-7) cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${SHORT_COMMIT}-mac.tar.gz + echo "ARTIFACT_NAME=sparrow-cli-${SHORT_COMMIT}-mac" >> $GITHUB_ENV - name: Upload sparrow-cli.tar.gz artifact if: ${{ !startsWith(github.ref, 'refs/tags/') }} uses: actions/upload-artifact@v4 with: - name: sparrow-cli-macos + name: ${{ env.ARTIFACT_NAME }} path: sparrow-cli-*-mac.tar.gz - name: Upload to Release if: startsWith(github.ref, 'refs/tags/') From 304a970adba107221829c4de1c41c61a26dcc6ca Mon Sep 17 00:00:00 2001 From: Ang Zhou Date: Tue, 2 Sep 2025 11:22:56 +0800 Subject: [PATCH 5/9] Update .github/workflows/bazel_cli_build.yml merge artifact name step Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/bazel_cli_build.yml | 28 ++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/.github/workflows/bazel_cli_build.yml b/.github/workflows/bazel_cli_build.yml index d10c1e1..4aaec4d 100644 --- a/.github/workflows/bazel_cli_build.yml +++ b/.github/workflows/bazel_cli_build.yml @@ -39,29 +39,31 @@ jobs: repository-cache: true - name: Build All run: bazel build //... - - name: Rename artifact with tag for release - if: startsWith(github.ref, 'refs/tags/') - run: | - TAG_NAME=${GITHUB_REF#refs/tags/} - cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${TAG_NAME}-linux.tar.gz - echo "TAG_NAME=${TAG_NAME}" >> $GITHUB_ENV - - name: Rename artifact with commit hash for push - if: ${{ !startsWith(github.ref, 'refs/tags/') }} + - name: Prepare artifact name and copy run: | - SHORT_COMMIT=$(echo ${{ github.sha }} | cut -c1-7) - cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${SHORT_COMMIT}-linux.tar.gz - echo "ARTIFACT_NAME=sparrow-cli-${SHORT_COMMIT}-linux" >> $GITHUB_ENV + if [[ "${GITHUB_REF}" == refs/tags/* ]]; then + TAG_NAME="${GITHUB_REF#refs/tags/}" + ARTIFACT_NAME="sparrow-cli-${TAG_NAME}-linux" + cp bazel-bin/sparrow-cli.tar.gz "${ARTIFACT_NAME}.tar.gz" + echo "TAG_NAME=${TAG_NAME}" >> $GITHUB_ENV + echo "ARTIFACT_NAME=${ARTIFACT_NAME}" >> $GITHUB_ENV + else + SHORT_COMMIT="$(echo ${{ github.sha }} | cut -c1-7)" + ARTIFACT_NAME="sparrow-cli-${SHORT_COMMIT}-linux" + cp bazel-bin/sparrow-cli.tar.gz "${ARTIFACT_NAME}.tar.gz" + echo "ARTIFACT_NAME=${ARTIFACT_NAME}" >> $GITHUB_ENV + fi - name: Upload sparrow-cli.tar.gz artifact if: ${{ !startsWith(github.ref, 'refs/tags/') }} uses: actions/upload-artifact@v4 with: name: ${{ env.ARTIFACT_NAME }} - path: sparrow-cli-*-linux.tar.gz + path: ${{ env.ARTIFACT_NAME }}.tar.gz - name: Upload to Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: - files: sparrow-cli-*-linux.tar.gz + files: ${{ env.ARTIFACT_NAME }}.tar.gz build-macos: runs-on: macos-14 From e25503c809ea58a2447c567d751d1242d3ed7b18 Mon Sep 17 00:00:00 2001 From: Ang Zhou Date: Tue, 2 Sep 2025 11:24:40 +0800 Subject: [PATCH 6/9] Update .github/workflows/bazel_cli_build.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/bazel_cli_build.yml | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/.github/workflows/bazel_cli_build.yml b/.github/workflows/bazel_cli_build.yml index 4aaec4d..52f985e 100644 --- a/.github/workflows/bazel_cli_build.yml +++ b/.github/workflows/bazel_cli_build.yml @@ -82,18 +82,11 @@ jobs: repository-cache: true - name: Build All run: bazel build //... - - name: Rename artifact with tag for release - if: startsWith(github.ref, 'refs/tags/') - run: | - TAG_NAME=${GITHUB_REF#refs/tags/} - cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${TAG_NAME}-mac.tar.gz - echo "TAG_NAME=${TAG_NAME}" >> $GITHUB_ENV - - name: Rename artifact with commit hash for push - if: ${{ !startsWith(github.ref, 'refs/tags/') }} - run: | - SHORT_COMMIT=$(echo ${{ github.sha }} | cut -c1-7) - cp bazel-bin/sparrow-cli.tar.gz sparrow-cli-${SHORT_COMMIT}-mac.tar.gz - echo "ARTIFACT_NAME=sparrow-cli-${SHORT_COMMIT}-mac" >> $GITHUB_ENV + - name: Copy and rename artifact + uses: ./.github/actions/copy-artifact + with: + source: bazel-bin/sparrow-cli.tar.gz + platform: mac - name: Upload sparrow-cli.tar.gz artifact if: ${{ !startsWith(github.ref, 'refs/tags/') }} uses: actions/upload-artifact@v4 From f3ff3c07509d9b66d3d8bde75586911f3ed4caaf Mon Sep 17 00:00:00 2001 From: Ang Zhou Date: Tue, 2 Sep 2025 11:24:58 +0800 Subject: [PATCH 7/9] Update .github/workflows/bazel_cli_build.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/bazel_cli_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bazel_cli_build.yml b/.github/workflows/bazel_cli_build.yml index 52f985e..d6ffa40 100644 --- a/.github/workflows/bazel_cli_build.yml +++ b/.github/workflows/bazel_cli_build.yml @@ -97,4 +97,4 @@ jobs: if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: - files: sparrow-cli-*-mac.tar.gz + files: sparrow-cli-${{ env.TAG_NAME }}-mac.tar.gz From 2d1ded936142dc4659f1f7ad156a320d715e9ac4 Mon Sep 17 00:00:00 2001 From: AngZhou Date: Sun, 21 Sep 2025 21:56:18 +0800 Subject: [PATCH 8/9] fix: update artifact naming and copying logic for macOS build --- .github/workflows/bazel_cli_build.yml | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/bazel_cli_build.yml b/.github/workflows/bazel_cli_build.yml index d6ffa40..450f412 100644 --- a/.github/workflows/bazel_cli_build.yml +++ b/.github/workflows/bazel_cli_build.yml @@ -82,19 +82,28 @@ jobs: repository-cache: true - name: Build All run: bazel build //... - - name: Copy and rename artifact - uses: ./.github/actions/copy-artifact - with: - source: bazel-bin/sparrow-cli.tar.gz - platform: mac + - name: Prepare artifact name and copy + run: | + if [[ "${GITHUB_REF}" == refs/tags/* ]]; then + TAG_NAME="${GITHUB_REF#refs/tags/}" + ARTIFACT_NAME="sparrow-cli-${TAG_NAME}-mac" + cp bazel-bin/sparrow-cli.tar.gz "${ARTIFACT_NAME}.tar.gz" + echo "TAG_NAME=${TAG_NAME}" >> $GITHUB_ENV + echo "ARTIFACT_NAME=${ARTIFACT_NAME}" >> $GITHUB_ENV + else + SHORT_COMMIT="$(echo ${{ github.sha }} | cut -c1-7)" + ARTIFACT_NAME="sparrow-cli-${SHORT_COMMIT}-mac" + cp bazel-bin/sparrow-cli.tar.gz "${ARTIFACT_NAME}.tar.gz" + echo "ARTIFACT_NAME=${ARTIFACT_NAME}" >> $GITHUB_ENV + fi - name: Upload sparrow-cli.tar.gz artifact if: ${{ !startsWith(github.ref, 'refs/tags/') }} uses: actions/upload-artifact@v4 with: name: ${{ env.ARTIFACT_NAME }} - path: sparrow-cli-*-mac.tar.gz + path: ${{ env.ARTIFACT_NAME }}.tar.gz - name: Upload to Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: - files: sparrow-cli-${{ env.TAG_NAME }}-mac.tar.gz + files: ${{ env.ARTIFACT_NAME }}.tar.gz From 52fda8a8854d56780a1696fcc0c67e9c3a48caa1 Mon Sep 17 00:00:00 2001 From: AngZhou Date: Mon, 22 Sep 2025 00:42:29 +0800 Subject: [PATCH 9/9] fix: append .tar.gz extension to artifact name in upload steps --- .github/workflows/bazel_cli_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bazel_cli_build.yml b/.github/workflows/bazel_cli_build.yml index 450f412..b2a55a8 100644 --- a/.github/workflows/bazel_cli_build.yml +++ b/.github/workflows/bazel_cli_build.yml @@ -57,7 +57,7 @@ jobs: if: ${{ !startsWith(github.ref, 'refs/tags/') }} uses: actions/upload-artifact@v4 with: - name: ${{ env.ARTIFACT_NAME }} + name: ${{ env.ARTIFACT_NAME }}.tar.gz path: ${{ env.ARTIFACT_NAME }}.tar.gz - name: Upload to Release if: startsWith(github.ref, 'refs/tags/') @@ -100,7 +100,7 @@ jobs: if: ${{ !startsWith(github.ref, 'refs/tags/') }} uses: actions/upload-artifact@v4 with: - name: ${{ env.ARTIFACT_NAME }} + name: ${{ env.ARTIFACT_NAME }}.tar.gz path: ${{ env.ARTIFACT_NAME }}.tar.gz - name: Upload to Release if: startsWith(github.ref, 'refs/tags/')