Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.8 KiB
75 lines
2.8 KiB
name: Setup Bazel |
|
description: Setup a Bazel environment for Protobuf CI testing |
|
inputs: |
|
credentials-file: |
|
required: true |
|
description: The GCP credentials file to use for caching |
|
type: string |
|
bazel-cache: |
|
required: true |
|
description: A unique path for the Bazel cache. |
|
type: string |
|
|
|
outputs: |
|
bazel-flags: |
|
description: Bazel flags that should be sent to all Bazel invocations |
|
value: ${{ steps.output.outputs.bazel-flags }} |
|
bazel-startup-flags: |
|
description: Bazel startup flags that should be sent to all Bazel invocations |
|
value: ${{ steps.output.outputs.bazel-startup-flags }} |
|
|
|
runs: |
|
using: 'composite' |
|
steps: |
|
- name: Initialize BAZEL environment variable |
|
shell: bash |
|
run: echo "BAZEL=bazelisk" >> $GITHUB_ENV |
|
|
|
- name: Initialize Windows startup flags |
|
if: runner.os == 'Windows' |
|
shell: bash |
|
run: echo "BAZEL_STARTUP_FLAGS=--output_user_root=C:/tmp --windows_enable_symlinks" >> $GITHUB_ENV |
|
|
|
- name: Initialize Bazel flags |
|
shell: bash |
|
run: echo "BAZEL_FLAGS=--keep_going --test_output=errors --test_timeout=600" >> $GITHUB_ENV |
|
|
|
- name: Initialize Windows-specific Bazel flags |
|
if: runner.os == 'Windows' |
|
shell: bash |
|
run: echo "BAZEL_FLAGS=$BAZEL_FLAGS --enable_runfiles" >> $GITHUB_ENV |
|
|
|
- name: Initialize MacOS-specific Bazel flags |
|
if: runner.os == 'macOS' |
|
shell: bash |
|
run: | |
|
echo "BAZEL_FLAGS=$BAZEL_FLAGS --xcode_version_config=//.github:host_xcodes" >> $GITHUB_ENV |
|
echo "DEVELOPER_DIR=${{ env.DEVELOPER_DIR || '/Applications/Xcode_14.1.app/Contents/Developer' }}" >> $GITHUB_ENV |
|
|
|
- name: Configure Bazel caching |
|
# Skip bazel cache for local act runs due to issue with credential files |
|
# and nested docker images |
|
if: ${{ inputs.bazel-cache && !github.event.act_local_test }} |
|
shell: bash |
|
run: >- |
|
echo "BAZEL_FLAGS=$BAZEL_FLAGS |
|
--google_credentials=${{ inputs.credentials-file }} |
|
--remote_cache=https://storage.googleapis.com/protobuf-bazel-cache/protobuf/gha/${{ inputs.bazel-cache }}" >> $GITHUB_ENV |
|
|
|
- name: Configure Bazel cache writing |
|
# External runs should never write to our caches. |
|
if: ${{ github.event_name != 'pull_request_target' && inputs.bazel-cache && !github.event.act_local_test }} |
|
shell: bash |
|
run: echo "BAZEL_FLAGS=$BAZEL_FLAGS --remote_upload_local_results" >> $GITHUB_ENV |
|
|
|
- name: Output Bazel flags |
|
id: output |
|
shell: bash |
|
run: | |
|
echo "bazel-flags=$BAZEL_FLAGS" >> $GITHUB_OUTPUT |
|
echo "bazel-startup-flags=$BAZEL_STARTUP_FLAGS" >> $GITHUB_OUTPUT |
|
|
|
- name: Restore Bazel repository cache |
|
uses: ./.github/actions/internal/repository-cache-restore |
|
with: |
|
bazel-cache: ${{ inputs.bazel-cache }}
|
|
|