You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by xu...@apache.org on 2025/12/12 12:01:58 UTC
(opendal) branch xuanwo/replace-setup-protoc created (now 4cca7e516)
This is an automated email from the ASF dual-hosted git repository.
xuanwo pushed a change to branch xuanwo/replace-setup-protoc
in repository https://gitbox.apache.org/repos/asf/opendal.git
at 4cca7e516 ci: Remove setup-protoc entirely
This branch includes the following new commits:
new 4cca7e516 ci: Remove setup-protoc entirely
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(opendal) 01/01: ci: Remove setup-protoc entirely
Posted by xu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
xuanwo pushed a commit to branch xuanwo/replace-setup-protoc
in repository https://gitbox.apache.org/repos/asf/opendal.git
commit 4cca7e516ff7a4236bab99dc56ea856ad0a6d839
Author: Xuanwo <gi...@xuanwo.io>
AuthorDate: Fri Dec 12 20:01:37 2025 +0800
ci: Remove setup-protoc entirely
Signed-off-by: Xuanwo <gi...@xuanwo.io>
---
.github/actions/setup/action.yaml | 81 +++++++++++++++++++++++++++++++++++---
.github/workflows/release_java.yml | 8 ++--
2 files changed, 80 insertions(+), 9 deletions(-)
diff --git a/.github/actions/setup/action.yaml b/.github/actions/setup/action.yaml
index 2ee2c2d16..0f64ef29e 100644
--- a/.github/actions/setup/action.yaml
+++ b/.github/actions/setup/action.yaml
@@ -16,7 +16,7 @@
# under the License.
name: Setup Rust Builder
-description: 'Prepare Rust Build Environment'
+description: "Prepare Rust Build Environment"
inputs:
need-rocksdb:
description: "This setup needs rocksdb or not"
@@ -59,10 +59,82 @@ runs:
- name: Setup Protoc
if: inputs.need-protoc == 'true'
- uses: arduino/setup-protoc@v3
+ shell: bash
+ run: |
+ set -euo pipefail
+
+ PROTOC_VERSION="23.4"
+ PROTOC_ROOT="${RUNNER_TEMP}/protoc/${PROTOC_VERSION}"
+
+ case "${RUNNER_OS}-${RUNNER_ARCH}" in
+ Linux-X64)
+ PROTOC_PLATFORM="linux-x86_64"
+ ;;
+ Linux-ARM64)
+ PROTOC_PLATFORM="linux-aarch_64"
+ ;;
+ macOS-X64)
+ PROTOC_PLATFORM="osx-x86_64"
+ ;;
+ macOS-ARM64)
+ PROTOC_PLATFORM="osx-aarch_64"
+ ;;
+ Windows-X64)
+ PROTOC_PLATFORM="win64"
+ ;;
+ *)
+ echo "Unsupported runner: ${RUNNER_OS}-${RUNNER_ARCH}" >&2
+ exit 1
+ ;;
+ esac
+
+ echo "PROTOC_VERSION=${PROTOC_VERSION}" >> "${GITHUB_ENV}"
+ echo "PROTOC_ROOT=${PROTOC_ROOT}" >> "${GITHUB_ENV}"
+ echo "PROTOC_PLATFORM=${PROTOC_PLATFORM}" >> "${GITHUB_ENV}"
+
+ - name: Cache Protoc
+ if: inputs.need-protoc == 'true'
+ id: cache-protoc
+ uses: actions/cache@v4
with:
- version: "23.4"
- repo-token: ${{ inputs.github-token }}
+ path: ${{ runner.temp }}/protoc/${{ env.PROTOC_VERSION }}
+ key: protoc-${{ env.PROTOC_VERSION }}-${{ runner.os }}-${{ runner.arch }}
+
+ - name: Install Protoc (Unix)
+ if: inputs.need-protoc == 'true' && runner.os != 'Windows' && steps.cache-protoc.outputs.cache-hit != 'true'
+ shell: bash
+ run: |
+ set -euo pipefail
+
+ PROTOC_ZIP="protoc-${PROTOC_VERSION}-${PROTOC_PLATFORM}.zip"
+ PROTOC_URL="https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/${PROTOC_ZIP}"
+
+ mkdir -p "${PROTOC_ROOT}"
+ curl -fsSL -o "${RUNNER_TEMP}/${PROTOC_ZIP}" "${PROTOC_URL}"
+ unzip -q "${RUNNER_TEMP}/${PROTOC_ZIP}" -d "${PROTOC_ROOT}"
+
+ - name: Install Protoc (Windows)
+ if: inputs.need-protoc == 'true' && runner.os == 'Windows' && steps.cache-protoc.outputs.cache-hit != 'true'
+ shell: pwsh
+ run: |
+ $ErrorActionPreference = 'Stop'
+
+ $protocZip = "protoc-$env:PROTOC_VERSION-$env:PROTOC_PLATFORM.zip"
+ $protocUrl = "https://github.com/protocolbuffers/protobuf/releases/download/v$env:PROTOC_VERSION/$protocZip"
+ $zipPath = Join-Path $env:RUNNER_TEMP $protocZip
+ $dest = $env:PROTOC_ROOT
+
+ New-Item -ItemType Directory -Force -Path $dest | Out-Null
+ Invoke-WebRequest -Uri $protocUrl -OutFile $zipPath
+ Expand-Archive -Path $zipPath -DestinationPath $dest -Force
+
+ - name: Add Protoc to PATH
+ if: inputs.need-protoc == 'true'
+ shell: bash
+ run: |
+ set -euo pipefail
+ echo "${PROTOC_ROOT}/bin" >> "${GITHUB_PATH}"
+ protoc --version
- name: Install cargo-nextest
if: inputs.need-nextest == 'true'
@@ -133,4 +205,3 @@ runs:
rm foundationdb-clients_7.1.17-1_amd64.deb
rm foundationdb-server_7.1.17-1_amd64.deb
-
diff --git a/.github/workflows/release_java.yml b/.github/workflows/release_java.yml
index e4662eccc..c530d0fcb 100644
--- a/.github/workflows/release_java.yml
+++ b/.github/workflows/release_java.yml
@@ -66,11 +66,11 @@ jobs:
- uses: actions/setup-python@v6
with:
python-version: "3.11"
- - name: Install Protoc
- uses: arduino/setup-protoc@v3
+ - name: Setup Rust toolchain
+ uses: ./.github/actions/setup
with:
- version: "23.4"
- repo-token: ${{ secrets.GITHUB_TOKEN }}
+ need-protoc: true
+ github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup linux for zigbuild
if: ${{ contains(matrix.os, 'ubuntu') }}