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.

67 lines
2.1 KiB

name: 'Docker Bazel Run'
description: 'Run a Bazel-based docker image for Protobuf CI testing'
inputs:
credentials:
required: true
description: "The GCP credentials to use for reading the docker image"
type: string
image:
required: false
default: us-docker.pkg.dev/protobuf-build/containers/common/linux/bazel:5.1.1-aec4d74f2eb6938fc53ef7d9a79a4bf2da24abc1
description: "The docker image to use"
type: string
bazel-cache:
required: true
description: >
A unique path for the Bazel cache. This will trigger the generation
of a BAZEL_CACHE environment variable inside the container that provides
the appropriate flags for any bazel command.
type: string
bazel:
required: false
description: "The Bazel command to run"
type: string
bash:
required: false
description: "A bash command to run. $BAZEL_FLAGS will be available to use for bazel runs."
type: string
runs:
using: 'composite'
steps:
- name: Authenticate
id: auth
uses: ./.github/actions/internal/gcloud-auth
with:
credentials: ${{ inputs.credentials }}
- name: Setup Runner
uses: ./.github/actions/internal/setup-runner
- name: Setup Bazel
id: bazel
uses: ./.github/actions/internal/bazel-setup
with:
credentials-file: /workspace/$(basename ${{ steps.auth.outputs.credentials-file }})
bazel-cache: ${{ inputs.bazel-cache }}
- name: Validate inputs
if: ${{ (inputs.bash && inputs.bazel) || (!inputs.bash && !inputs.bazel) }}
shell: bash
run: echo "Invalid specification of both non-Bazel and Bazel command"; exit 1
- name: Run Bash Docker
uses: ./.github/actions/internal/docker-run
if: ${{ inputs.bash }}
with:
image: ${{ inputs.image }}
run-flags: --entrypoint "/bin/bash"
command: -l -c "${{ inputs.bash }}"
- name: Run Bazel Docker
uses: ./.github/actions/internal/docker-run
if: ${{ !inputs.bash }}
with:
image: ${{ inputs.image }}
command: ${{ inputs.bazel }} ${{ steps.bazel.outputs.bazel-flags }}