about summary refs log tree commit diff
path: root/src/ci/docker
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2021-06-28 17:55:01 +0200
committerGuillaume Gomez <guillaume.gomez@huawei.com>2021-07-02 15:08:45 +0200
commit13bdc5c2be5a4a1490a2c777580cd9ad7a097343 (patch)
tree7f85059b0b38fe02e98c0ead70285493a5f4d9d2 /src/ci/docker
parent1aa6c7cbc6d2582e7407cde9c65014aef8a189bb (diff)
downloadrust-13bdc5c2be5a4a1490a2c777580cd9ad7a097343.tar.gz
rust-13bdc5c2be5a4a1490a2c777580cd9ad7a097343.zip
Add check to ensure error code explanations are not removed anymore even if not emitted
Diffstat (limited to 'src/ci/docker')
-rw-r--r--src/ci/docker/host-x86_64/mingw-check/Dockerfile2
-rwxr-xr-xsrc/ci/docker/host-x86_64/mingw-check/validate-error-codes.sh15
-rwxr-xr-xsrc/ci/docker/run.sh5
3 files changed, 22 insertions, 0 deletions
diff --git a/src/ci/docker/host-x86_64/mingw-check/Dockerfile b/src/ci/docker/host-x86_64/mingw-check/Dockerfile
index 66afe84be4a..8066ea3a944 100644
--- a/src/ci/docker/host-x86_64/mingw-check/Dockerfile
+++ b/src/ci/docker/host-x86_64/mingw-check/Dockerfile
@@ -28,6 +28,7 @@ COPY scripts/sccache.sh /scripts/
 RUN sh /scripts/sccache.sh
 
 COPY host-x86_64/mingw-check/validate-toolstate.sh /scripts/
+COPY host-x86_64/mingw-check/validate-error-codes.sh /scripts/
 
 ENV RUN_CHECK_WITH_PARALLEL_QUERIES 1
 ENV SCRIPT python3 ../x.py --stage 2 test src/tools/expand-yaml-anchors && \
@@ -37,6 +38,7 @@ ENV SCRIPT python3 ../x.py --stage 2 test src/tools/expand-yaml-anchors && \
            python3 ../x.py test --stage 2 src/tools/tidy && \
            python3 ../x.py doc --stage 0 library/test && \
            /scripts/validate-toolstate.sh && \
+           /scripts/validate-error-codes.sh && \
            # Runs checks to ensure that there are no ES5 issues in our JS code.
            es-check es5 ../src/librustdoc/html/static/*.js && \
            eslint ../src/librustdoc/html/static/*.js
diff --git a/src/ci/docker/host-x86_64/mingw-check/validate-error-codes.sh b/src/ci/docker/host-x86_64/mingw-check/validate-error-codes.sh
new file mode 100755
index 00000000000..d5231ede591
--- /dev/null
+++ b/src/ci/docker/host-x86_64/mingw-check/validate-error-codes.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+# Checks that no error code explanation is removed.
+
+set -euo pipefail
+
+echo "Check if an error code explanation was removed..."
+
+if (git diff "$BASE_COMMIT" --name-status | grep '^D' \
+        | grep --quiet "compiler/rustc_error_codes/src/error_codes/"); then
+    echo "Error code explanations should never be removed!"
+    echo "Take a look at E0001 to see how to handle it."
+    exit 1
+fi
+
+echo "No error code explanation was removed!"
diff --git a/src/ci/docker/run.sh b/src/ci/docker/run.sh
index 3a47076722c..f6b2cf34313 100755
--- a/src/ci/docker/run.sh
+++ b/src/ci/docker/run.sh
@@ -219,6 +219,10 @@ else
   command="/checkout/src/ci/run.sh"
 fi
 
+# Get some needed information for $BASE_COMMIT
+git fetch "https://github.com/$GITHUB_REPOSITORY" "$GITHUB_BASE_REF"
+BASE_COMMIT="$(git merge-base FETCH_HEAD HEAD)"
+
 docker \
   run \
   --workdir /checkout/obj \
@@ -237,6 +241,7 @@ docker \
   --env TOOLSTATE_PUBLISH \
   --env RUST_CI_OVERRIDE_RELEASE_CHANNEL \
   --env CI_JOB_NAME="${CI_JOB_NAME-$IMAGE}" \
+  --env BASE_COMMIT="$BASE_COMMIT" \
   --init \
   --rm \
   rust-ci \