diff --git a/.github/workflows/soundness.yml b/.github/workflows/soundness.yml index 43447ea..d880e14 100644 --- a/.github/workflows/soundness.yml +++ b/.github/workflows/soundness.yml @@ -17,3 +17,21 @@ jobs: - name: Run license check run: | ./dev/license-check.sh + + check-generated-code: + name: Check generated code + runs-on: ubuntu-latest + container: + image: swift:latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + persist-credentials: false + - name: Mark the workspace as safe + run: git config --global --add safe.directory ${GITHUB_WORKSPACE} + - name: Install protoc + run: apt update && apt install -y protobuf-compiler + - name: Check generated code + run: | + ./dev/check-generated-code.sh diff --git a/dev/check-generated-code.sh b/dev/check-generated-code.sh new file mode 100755 index 0000000..3094c38 --- /dev/null +++ b/dev/check-generated-code.sh @@ -0,0 +1,31 @@ +#!/bin/bash +## Copyright 2024, gRPC Authors All rights reserved. +## +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. + +set -euo pipefail + +log() { printf -- "** %s\n" "$*" >&2; } +error() { printf -- "** ERROR: %s\n" "$*" >&2; } +fatal() { error "$@"; exit 1; } + +here="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Re-generate everything. +log "Regenerating protos..." +"$here"/protos/generate.sh + +# Check for changes. +GIT_PAGER='' git diff --exit-code '*.swift' + +log "Generated code is up-to-date"