Skip to content

chore(deps): update all dependencies #4829

chore(deps): update all dependencies

chore(deps): update all dependencies #4829

Workflow file for this run

---
name: Showcase CI
on:
push:
branches:
- main
pull_request:
jobs:
regenerate:
runs-on: ubuntu-latest
outputs:
modified_files: ${{ steps.mod.outputs.modified_files }}
steps:
- uses: actions/setup-go@v5
with:
go-version: '1.19.2'
- name: Install Protoc
uses: arduino/setup-protoc@v1
- name: Install external generators
run: |
go install github.com/golang/protobuf/protoc-gen-go@latest
go install github.com/googleapis/gapic-generator-go/cmd/protoc-gen-go_cli@latest
go install github.com/googleapis/gapic-generator-go/cmd/protoc-gen-go_gapic@latest
- uses: actions/checkout@v4
- name: Checkout common protos
run: git submodule init && git submodule update
- name: Download go deps
run: go mod download
- name: Install REST server generator
run: go install ./util/cmd/protoc-gen-go_rest_server
- name: Regenerate sources
run: go run ./util/cmd/compile_protos
- name: Capture modified files
id: mod
run: |
files=$(git ls-files --deleted --modified --other --directory --exclude-standard cmd client server/genproto server/genrest)
echo ::set-output name=modified_files::$files
- name: Prepare regenerated sources
if: steps.mod.outputs.modified_files
run: tar czf regen.tgz ${{ steps.mod.outputs.modified_files }}
- uses: actions/upload-artifact@v4
if: steps.mod.outputs.modified_files
with:
name: regenerated-sources
path: regen.tgz
lint:
needs: regenerate
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v5
with:
go-version: '1.19.2'
- name: Install golint
run: go install golang.org/x/lint/golint@latest
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
if: needs.regenerate.outputs.modified_files
with:
name: regenerated-sources
- name: Expand regen archive
if: needs.regenerate.outputs.modified_files
run: |
tar xvzf regen.tgz
rm regen.tgz
- name: Check formatting
run: gofmt -l ./server/services > gofmt.txt && ! [ -s gofmt.txt ]
if: ${{ always() }}
- name: Lint service implementations
run: golint ./server/services >> golint.txt && ! [ -s golint.txt ]
if: ${{ always() }}
- name: Vet service implementations
# The mod download is there to prevent go vet from logging mod downloads
# which would mess up the empty vetting results check.
run: go mod download && go vet ./server/services 2> govet.txt && ! [ -s govet.txt ]
if: ${{ always() }}
- uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: linting-results
path: |
gofmt.txt
golint.txt
govet.txt
tests:
needs: regenerate
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.19.2'
- uses: actions/download-artifact@v4
if: needs.regenerate.outputs.modified_files
with:
name: regenerated-sources
- name: Expand regen archive
if: needs.regenerate.outputs.modified_files
run: |
tar xvzf regen.tgz
rm regen.tgz
- name: Run mod tidy
run: go mod tidy
- name: Run unit tests
run: go test ./...
- name: Run server coverage
run: go test ./server/... -coverprofile=coverage.txt -covermode=atomic
probes:
needs: regenerate
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.19.2'
- uses: actions/download-artifact@v4
if: needs.regenerate.outputs.modified_files
with:
name: regenerated-sources
- name: Expand regen archive
if: needs.regenerate.outputs.modified_files
run: |
tar xvzf regen.tgz
rm regen.tgz
- name: Run mod tidy
run: go mod tidy
- name: Install gapic-showcase CLI
run: go install ./cmd/gapic-showcase
- name: Probe gRPC and REST servers
run: |
gapic-showcase run &
gapic-showcase echo echo --response content --response.content "hello!"
GRPC_EXIT_CODE=$?
STATUSCODE=$(curl --silent --output /dev/null --write-out "%{http_code}" http://localhost:7469/hello)
echo "gRPC exit code: $GRPC_EXIT_CODE"
echo "REST status code: $STATUSCODE"
[ $STATUSCODE = "200" ] && [ GRPC_EXIT_CODE != 0 ]
# Disabled until https://github.com/googleapis/gapic-generator-typescript/pull/955 is merged/released.
# typescript-smoke-test:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# - uses: actions/setup-node@v2
# with:
# node-version: '12'
# - name: Run gapic-generator-typescript
# run: |
# mkdir tsout
# docker run --rm --user $UID \
# --mount type=bind,source="$(pwd)"/schema,destination=/in/protos/google/showcase/v1beta1,readonly \
# --mount type=bind,source="$(pwd)"/tsout,destination=/out/ \
# gcr.io/gapic-images/gapic-generator-typescript:latest
# - name: Run auto-generated tests
# run: |
# cd tsout
# npm install
# npm test
# npm run system-test
protobufjs-load-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install protobuf loader
run: npm install google-proto-files
- name: Verify protos can be loaded by protobufjs
run: |
node -e "require('google-proto-files').loadSync('schema/google/showcase/v1beta1/echo.proto');"
node -e "require('google-proto-files').loadSync('schema/google/showcase/v1beta1/identity.proto');"
node -e "require('google-proto-files').loadSync('schema/google/showcase/v1beta1/messaging.proto');"
node -e "require('google-proto-files').loadSync('schema/google/showcase/v1beta1/testing.proto');"
node -e "require('google-proto-files').loadSync('schema/google/showcase/v1beta1/compliance.proto');"
node -e "require('google-proto-files').loadSync('schema/google/showcase/v1beta1/sequence.proto');"
push-generated-sources:
needs: [regenerate, lint, tests, probes]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' && needs.regenerate.outputs.modified_files
steps:
- uses: actions/checkout@v4
with:
ref: main
- uses: actions/download-artifact@v4
with:
name: regenerated-sources
- name: Expand regen archive
run: |
tar xvzf regen.tgz
rm regen.tgz
- uses: googleapis/code-suggester@v4
env:
ACCESS_TOKEN: ${{ secrets.YOSHI_CODE_BOT_TOKEN }}
with:
command: pr
upstream_owner: googleapis
upstream_repo: gapic-showcase
description: 'Regenerated sources resulting from most recent commit to main'
title: 'chore: regenerate sources'
message: 'chore: regenerate sources'
primary: 'main'
branch: regen
git_dir: '.'
force: true
- name: Add automerge label to pull request
uses: actions/github-script@v7
with:
script: |
github.rest.issues.addLabels({
issue_number: ${{ steps.code_suggester.outputs.pull }},
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['automerge']
})
bazel_build_protos:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: bazel-contrib/setup-bazel@0.8.3
with:
# Avoid downloading Bazel every time.
bazelisk-cache: true
# Store build cache per workflow.
disk-cache: ${{ github.workflow }}
# Share repository cache between workflows.
repository-cache: true
- run: bazelisk build //schema/google/showcase/v1beta1:showcase_proto