diff --git a/.github/workflows/bazel_cli_build.yml b/.github/workflows/bazel_cli_build.yml index f9b968e..b2a55a8 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: @@ -6,6 +6,8 @@ on: - 'doc/**' - 'example/**' - '**/*.md' + tags: + - '*' pull_request: paths-ignore: - 'doc/**' @@ -15,8 +17,56 @@ 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: Prepare artifact name and copy + run: | + 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 }}.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: ${{ env.ARTIFACT_NAME }}.tar.gz + build-macos: - runs-on: macos-latest + runs-on: macos-14 steps: - name: Checkout repository uses: actions/checkout@v4 @@ -32,8 +82,28 @@ jobs: repository-cache: true - name: Build All run: bazel build //... + - 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: sparrow-cli - path: bazel-bin/sparrow-cli.tar.gz + name: ${{ env.ARTIFACT_NAME }}.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: ${{ env.ARTIFACT_NAME }}.tar.gz