Kaynağa Gözat

Add CI step to check generated code is up-to-date (#15)

George Barnett 1 yıl önce
ebeveyn
işleme
39c40fa668
2 değiştirilmiş dosya ile 49 ekleme ve 0 silme
  1. 18 0
      .github/workflows/soundness.yml
  2. 31 0
      dev/check-generated-code.sh

+ 18 - 0
.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

+ 31 - 0
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"