Rename mingw-* CI jobs to pr-*
This commit is contained in:
parent
4e97337005
commit
62949cd2d6
16 changed files with 80 additions and 81 deletions
4
.github/workflows/ghcr.yml
vendored
4
.github/workflows/ghcr.yml
vendored
|
|
@ -53,9 +53,9 @@ jobs:
|
|||
run: |
|
||||
# List of DockerHub images to mirror to ghcr.io
|
||||
images=(
|
||||
# Mirrored because used by the mingw-check-tidy, which doesn't cache Docker images
|
||||
# Mirrored because used by pr-check-tidy, which doesn't cache Docker images
|
||||
"ubuntu:22.04"
|
||||
# Mirrored because used by all linux CI jobs, including mingw-check-tidy
|
||||
# Mirrored because used by all linux CI jobs, including pr-check-tidy
|
||||
"moby/buildkit:buildx-stable-1"
|
||||
# Mirrored because used when CI is running inside a Docker container
|
||||
"alpine:3.4"
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ use crate::utils::load_env_var;
|
|||
#[derive(serde::Deserialize, Debug, Clone)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct Job {
|
||||
/// Name of the job, e.g. mingw-check-1
|
||||
/// Name of the job, e.g. pr-check-1
|
||||
pub name: String,
|
||||
/// GitHub runner on which the job should be executed
|
||||
pub os: String,
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ try-job: dist-i686-msvc"#,
|
|||
fn pr_jobs() {
|
||||
let stdout = get_matrix("pull_request", "commit", "refs/heads/pr/1234");
|
||||
insta::assert_snapshot!(stdout, @r#"
|
||||
jobs=[{"name":"mingw-check-1","full_name":"PR - mingw-check-1","os":"ubuntu-24.04","env":{"PR_CI_JOB":1},"free_disk":true},{"name":"mingw-check-2","full_name":"PR - mingw-check-2","os":"ubuntu-24.04","env":{"PR_CI_JOB":1},"free_disk":true},{"name":"mingw-check-tidy","full_name":"PR - mingw-check-tidy","os":"ubuntu-24.04","env":{"PR_CI_JOB":1},"continue_on_error":true,"free_disk":true,"doc_url":"https://foo.bar"}]
|
||||
jobs=[{"name":"pr-check-1","full_name":"PR - pr-check-1","os":"ubuntu-24.04","env":{"PR_CI_JOB":1},"free_disk":true},{"name":"pr-check-2","full_name":"PR - pr-check-2","os":"ubuntu-24.04","env":{"PR_CI_JOB":1},"free_disk":true},{"name":"pr-check-tidy","full_name":"PR - pr-check-tidy","os":"ubuntu-24.04","env":{"PR_CI_JOB":1},"continue_on_error":true,"free_disk":true,"doc_url":"https://foo.bar"}]
|
||||
run_type=pr
|
||||
"#);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,11 +64,11 @@ envs:
|
|||
# These jobs automatically inherit envs.pr, to avoid repeating
|
||||
# it in each job definition.
|
||||
pr:
|
||||
- name: mingw-check-1
|
||||
- name: pr-check-1
|
||||
<<: *job-linux-4c
|
||||
- name: mingw-check-2
|
||||
- name: pr-check-2
|
||||
<<: *job-linux-4c
|
||||
- name: mingw-check-tidy
|
||||
- name: pr-check-tidy
|
||||
continue_on_error: true
|
||||
doc_url: https://foo.bar
|
||||
<<: *job-linux-4c
|
||||
|
|
|
|||
|
|
@ -1,58 +0,0 @@
|
|||
FROM ubuntu:22.04
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
g++ \
|
||||
make \
|
||||
ninja-build \
|
||||
file \
|
||||
curl \
|
||||
ca-certificates \
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3-pkg-resources \
|
||||
git \
|
||||
cmake \
|
||||
sudo \
|
||||
gdb \
|
||||
xz-utils \
|
||||
libssl-dev \
|
||||
pkg-config \
|
||||
mingw-w64 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV RUST_CONFIGURE_ARGS="--set rust.validate-mir-opts=3"
|
||||
|
||||
COPY scripts/nodejs.sh /scripts/
|
||||
RUN sh /scripts/nodejs.sh /node
|
||||
ENV PATH="/node/bin:${PATH}"
|
||||
|
||||
# Install es-check
|
||||
# Pin its version to prevent unrelated CI failures due to future es-check versions.
|
||||
RUN npm install es-check@6.1.1 eslint@8.6.0 typescript@5.7.3 -g
|
||||
|
||||
COPY scripts/sccache.sh /scripts/
|
||||
RUN sh /scripts/sccache.sh
|
||||
|
||||
COPY host-x86_64/mingw-check-1/reuse-requirements.txt /tmp/
|
||||
RUN pip3 install --no-deps --no-cache-dir --require-hashes -r /tmp/reuse-requirements.txt
|
||||
|
||||
COPY host-x86_64/mingw-check-1/check-default-config-profiles.sh /scripts/
|
||||
COPY host-x86_64/mingw-check-1/validate-toolstate.sh /scripts/
|
||||
|
||||
# Check library crates on all tier 1 targets.
|
||||
# We disable optimized compiler built-ins because that requires a C toolchain for the target.
|
||||
# We also skip the x86_64-unknown-linux-gnu target as it is well-tested by other jobs.
|
||||
ENV SCRIPT \
|
||||
/scripts/check-default-config-profiles.sh && \
|
||||
python3 ../x.py build --stage 1 src/tools/build-manifest && \
|
||||
python3 ../x.py test --stage 0 src/tools/compiletest && \
|
||||
python3 ../x.py check compiletest --set build.compiletest-use-stage0-libtest=true && \
|
||||
python3 ../x.py check --stage 1 --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu && \
|
||||
python3 ../x.py check --stage 1 --set build.optimized-compiler-builtins=false core alloc std --target=aarch64-unknown-linux-gnu,i686-pc-windows-msvc,i686-unknown-linux-gnu,x86_64-apple-darwin,x86_64-pc-windows-gnu,x86_64-pc-windows-msvc && \
|
||||
/scripts/validate-toolstate.sh && \
|
||||
reuse --include-submodules lint && \
|
||||
python3 ../x.py test collect-license-metadata && \
|
||||
# Runs checks to ensure that there are no issues in our JS code.
|
||||
es-check es2019 ../src/librustdoc/html/static/js/*.js && \
|
||||
tsc --project ../src/librustdoc/html/static/js/tsconfig.json
|
||||
58
src/ci/docker/host-x86_64/pr-check-1/Dockerfile
Normal file
58
src/ci/docker/host-x86_64/pr-check-1/Dockerfile
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
FROM ubuntu:22.04
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
g++ \
|
||||
make \
|
||||
ninja-build \
|
||||
file \
|
||||
curl \
|
||||
ca-certificates \
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3-pkg-resources \
|
||||
git \
|
||||
cmake \
|
||||
sudo \
|
||||
gdb \
|
||||
xz-utils \
|
||||
libssl-dev \
|
||||
pkg-config \
|
||||
mingw-w64 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV RUST_CONFIGURE_ARGS="--set rust.validate-mir-opts=3"
|
||||
|
||||
COPY scripts/nodejs.sh /scripts/
|
||||
RUN sh /scripts/nodejs.sh /node
|
||||
ENV PATH="/node/bin:${PATH}"
|
||||
|
||||
# Install es-check
|
||||
# Pin its version to prevent unrelated CI failures due to future es-check versions.
|
||||
RUN npm install es-check@6.1.1 eslint@8.6.0 typescript@5.7.3 -g
|
||||
|
||||
COPY scripts/sccache.sh /scripts/
|
||||
RUN sh /scripts/sccache.sh
|
||||
|
||||
COPY host-x86_64/pr-check-1/reuse-requirements.txt /tmp/
|
||||
RUN pip3 install --no-deps --no-cache-dir --require-hashes -r /tmp/reuse-requirements.txt
|
||||
|
||||
COPY host-x86_64/pr-check-1/check-default-config-profiles.sh /scripts/
|
||||
COPY host-x86_64/pr-check-1/validate-toolstate.sh /scripts/
|
||||
|
||||
# Check library crates on all tier 1 targets.
|
||||
# We disable optimized compiler built-ins because that requires a C toolchain for the target.
|
||||
# We also skip the x86_64-unknown-linux-gnu target as it is well-tested by other jobs.
|
||||
ENV SCRIPT \
|
||||
/scripts/check-default-config-profiles.sh && \
|
||||
python3 ../x.py build --stage 1 src/tools/build-manifest && \
|
||||
python3 ../x.py test --stage 0 src/tools/compiletest && \
|
||||
python3 ../x.py check compiletest --set build.compiletest-use-stage0-libtest=true && \
|
||||
python3 ../x.py check --stage 1 --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu && \
|
||||
python3 ../x.py check --stage 1 --set build.optimized-compiler-builtins=false core alloc std --target=aarch64-unknown-linux-gnu,i686-pc-windows-msvc,i686-unknown-linux-gnu,x86_64-apple-darwin,x86_64-pc-windows-gnu,x86_64-pc-windows-msvc && \
|
||||
/scripts/validate-toolstate.sh && \
|
||||
reuse --include-submodules lint && \
|
||||
python3 ../x.py test collect-license-metadata && \
|
||||
# Runs checks to ensure that there are no issues in our JS code.
|
||||
es-check es2019 ../src/librustdoc/html/static/js/*.js && \
|
||||
tsc --project ../src/librustdoc/html/static/js/tsconfig.json
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
# We use the ghcr base image because ghcr doesn't have a rate limit
|
||||
# and the mingw-check-tidy job doesn't cache docker images in CI.
|
||||
# and the pr-check-tidy job doesn't cache docker images in CI.
|
||||
FROM ghcr.io/rust-lang/ubuntu:22.04
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
|
@ -29,20 +29,20 @@ RUN sh /scripts/nodejs.sh /node
|
|||
ENV PATH="/node/bin:${PATH}"
|
||||
|
||||
# Install eslint
|
||||
COPY host-x86_64/mingw-check-tidy/eslint.version /tmp/
|
||||
COPY host-x86_64/pr-check-tidy/eslint.version /tmp/
|
||||
|
||||
COPY scripts/sccache.sh /scripts/
|
||||
RUN sh /scripts/sccache.sh
|
||||
|
||||
COPY host-x86_64/mingw-check-1/reuse-requirements.txt /tmp/
|
||||
COPY host-x86_64/pr-check-1/reuse-requirements.txt /tmp/
|
||||
RUN pip3 install --no-deps --no-cache-dir --require-hashes -r /tmp/reuse-requirements.txt \
|
||||
&& pip3 install virtualenv
|
||||
&& pip3 install virtualenv
|
||||
|
||||
COPY host-x86_64/mingw-check-1/validate-toolstate.sh /scripts/
|
||||
COPY host-x86_64/pr-check-1/validate-toolstate.sh /scripts/
|
||||
|
||||
RUN bash -c 'npm install -g eslint@$(cat /tmp/eslint.version)'
|
||||
|
||||
# NOTE: intentionally uses python2 for x.py so we can test it still works.
|
||||
# validate-toolstate only runs in our CI, so it's ok for it to only support python3.
|
||||
ENV SCRIPT TIDY_PRINT_DIFF=1 python2.7 ../x.py test --stage 0 \
|
||||
src/tools/tidy tidyselftest --extra-checks=py,cpp
|
||||
src/tools/tidy tidyselftest --extra-checks=py,cpp
|
||||
|
|
@ -122,11 +122,11 @@ jobs:
|
|||
# These jobs automatically inherit envs.pr, to avoid repeating
|
||||
# it in each job definition.
|
||||
pr:
|
||||
- name: mingw-check-1
|
||||
- name: pr-check-1
|
||||
<<: *job-linux-4c
|
||||
- name: mingw-check-2
|
||||
- name: pr-check-2
|
||||
<<: *job-linux-4c
|
||||
- name: mingw-check-tidy
|
||||
- name: pr-check-tidy
|
||||
continue_on_error: true
|
||||
free_disk: false
|
||||
env:
|
||||
|
|
@ -312,13 +312,13 @@ auto:
|
|||
/scripts/stage_2_test_set2.sh
|
||||
<<: *job-linux-4c
|
||||
|
||||
- name: mingw-check-1
|
||||
- name: pr-check-1
|
||||
<<: *job-linux-4c
|
||||
|
||||
- name: mingw-check-2
|
||||
- name: pr-check-2
|
||||
<<: *job-linux-4c
|
||||
|
||||
- name: mingw-check-tidy
|
||||
- name: pr-check-tidy
|
||||
free_disk: false
|
||||
<<: *job-linux-4c
|
||||
|
||||
|
|
|
|||
|
|
@ -66,8 +66,8 @@ kinds of builds (sets of jobs).
|
|||
### Pull Request builds
|
||||
|
||||
After each push to a pull request, a set of `pr` jobs are executed. Currently,
|
||||
these execute the `x86_64-gnu-llvm-X`, `x86_64-gnu-tools`, `mingw-check-1`, `mingw-check-2`
|
||||
and `mingw-check-tidy` jobs, all running on Linux. These execute a relatively short
|
||||
these execute the `x86_64-gnu-llvm-X`, `x86_64-gnu-tools`, `pr-check-1`, `pr-check-2`
|
||||
and `pr-check-tidy` jobs, all running on Linux. These execute a relatively short
|
||||
(~40 minutes) and lightweight test suite that should catch common issues. More
|
||||
specifically, they run a set of lints, they try to perform a cross-compile check
|
||||
build to Windows mingw (without producing any artifacts) and they test the
|
||||
|
|
|
|||
|
|
@ -52,8 +52,7 @@ fn get_eslint_version() -> Option<String> {
|
|||
}
|
||||
|
||||
pub fn check(librustdoc_path: &Path, tools_path: &Path, src_path: &Path, bad: &mut bool) {
|
||||
let eslint_version_path =
|
||||
src_path.join("ci/docker/host-x86_64/mingw-check-tidy/eslint.version");
|
||||
let eslint_version_path = src_path.join("ci/docker/host-x86_64/pr-check-tidy/eslint.version");
|
||||
let eslint_version = match std::fs::read_to_string(&eslint_version_path) {
|
||||
Ok(version) => version.trim().to_string(),
|
||||
Err(error) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue