googleapis/.github/workflows/diregapic.yaml
2025-03-26 14:20:51 -07:00

57 lines
2.9 KiB
YAML

---
name: DIREGAPIC Updater
on: # yamllint disable-line rule:truthy
schedule:
- cron: '19 */8 * * *'
workflow_dispatch:
jobs:
regenerate-compute:
if: github.repository == 'googleapis/googleapis'
runs-on: ubuntu-latest
container: gcr.io/gapic-images/googleapis:prod
steps:
- name: Checkout master
uses: actions/checkout@v3
with:
ref: master
- name: Download discovery docs
run: |
curl https://raw.githubusercontent.com/googleapis/discovery-artifact-manager/refs/heads/master/discoveries/compute.v1.json --output google/cloud/compute/v1/compute.v1.json
echo compute_revision=$(grep -oP '"revision":\s*"\d+"' google/cloud/compute/v1/compute.v1.json | grep -oP '\d+') >> $GITHUB_ENV
- name: Regenerate API definitions
run: |
git config --global --add safe.directory /__w/googleapis/googleapis
bazelisk build --experimental_convenience_symlinks=normal //google/cloud/compute/v1:compute_gen
cp bazel-bin/google/cloud/compute/v1/compute_gen.proto google/cloud/compute/v1/compute.proto
cp bazel-bin/google/cloud/compute/v1/compute_gen.config.out.json google/cloud/compute/v1/compute.config.json
bazelisk build --experimental_convenience_symlinks=normal //google/cloud/compute/v1:compute_grpc_service_config_gen
cp bazel-bin/google/cloud/compute/v1/compute_grpc_service_config_gen.json google/cloud/compute/v1/compute_grpc_service_config.json
bazelisk build --experimental_convenience_symlinks=normal //google/cloud/compute/v1:compute_gapic_gen
cp bazel-bin/google/cloud/compute/v1/compute_gapic_gen.yaml google/cloud/compute/v1/compute_gapic.yaml
# Skip any config-only changes when determining whether the API changed:
# - The execution timestamp recorded in the config will always differ from the previous one
# - Some schema hashes appear to change for no reason (internal issue 406083082)
echo api_changes=$( { git diff --stat | grep -v file | grep -v compute.config.json ; } && git diff-index --shortstat HEAD) >> $GITHUB_ENV
- name: Build GAPIC clients
if: contains(env.api_changes, 'file')
run: |
bazelisk build --experimental_convenience_symlinks=normal //google/cloud/compute/v1/...
bazelisk build --experimental_convenience_symlinks=normal //google/cloud/compute/v1/...
- name: Create PR
uses: googleapis/code-suggester@v2
if: contains(env.api_changes, 'file')
env:
ACCESS_TOKEN: ${{ secrets.YOSHI_CODE_BOT_TOKEN }}
with:
command: pr
upstream_owner: googleapis
upstream_repo: googleapis
title: 'feat: [DIREGAPIC] Update API definitions'
description: 'feat: Update Compute Engine API to revision ${{ env.compute_revision }}'
message: 'feat: Update Compute Engine API to revision ${{ env.compute_revision }}'
primary: 'master'
branch: diregapic
git_dir: '.'
force: true
fork: true