summaryrefslogtreecommitdiffstats
path: root/src/ci/github-actions
diff options
context:
space:
mode:
Diffstat (limited to 'src/ci/github-actions')
-rw-r--r--src/ci/github-actions/ci.yml117
-rw-r--r--src/ci/github-actions/problem_matchers.json40
2 files changed, 76 insertions, 81 deletions
diff --git a/src/ci/github-actions/ci.yml b/src/ci/github-actions/ci.yml
index fd619467f..8027e6996 100644
--- a/src/ci/github-actions/ci.yml
+++ b/src/ci/github-actions/ci.yml
@@ -34,6 +34,8 @@ x--expand-yaml-anchors--remove:
- &shared-ci-variables
CI_JOB_NAME: ${{ matrix.name }}
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
+ # commit of PR sha or commit sha. `GITHUB_SHA` is not accurate for PRs.
+ HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
- &public-variables
SCCACHE_BUCKET: rust-lang-ci-sccache2
@@ -145,13 +147,6 @@ x--expand-yaml-anchors--remove:
run: src/ci/scripts/verify-channel.sh
<<: *step
- - name: configure GitHub Actions to kill the build when outdated
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
- with:
- github_token: "${{ secrets.github_token }}"
- if: success() && !env.SKIP_JOB && github.ref != 'refs/heads/try' && github.ref != 'refs/heads/try-perf'
- <<: *step
-
- name: collect CPU statistics
run: src/ci/scripts/collect-cpu-stats.sh
<<: *step
@@ -229,6 +224,20 @@ x--expand-yaml-anchors--remove:
TOOLSTATE_REPO_ACCESS_TOKEN: ${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}
<<: *step
+ - name: create github artifacts
+ run: src/ci/scripts/create-doc-artifacts.sh
+ <<: *step
+
+ - name: upload artifacts to github
+ uses: actions/upload-artifact@v3
+ with:
+ # name is set in previous step
+ name: ${{ env.DOC_ARTIFACT_NAME }}
+ path: obj/artifacts/doc
+ if-no-files-found: ignore
+ retention-days: 5
+ <<: *step
+
- name: upload artifacts to S3
run: src/ci/scripts/upload-artifacts.sh
env:
@@ -289,14 +298,20 @@ defaults:
# shell is PowerShell.)
shell: bash
+concurrency:
+ # For a given workflow, if we push to the same branch, cancel all previous builds on that branch.
+ # We add an exception for try builds (try branch) and unrolled rollup builds (try-perf), which
+ # are all triggered on the same branch, but which should be able to run concurrently.
+ group: ${{ github.workflow }}-${{ ((github.ref == 'refs/heads/try' || github.ref == 'refs/heads/try-perf') && github.sha) || github.ref }}
+ cancel-in-progress: true
+
jobs:
pr:
- permissions:
- actions: write # for rust-lang/simpleinfra/github-actions/cancel-outdated-builds
<<: *base-ci-job
name: PR - ${{ matrix.name }}
env:
<<: [*shared-ci-variables, *public-variables]
+ PR_CI_JOB: 1
if: github.event_name == 'pull_request'
continue-on-error: ${{ matrix.name == 'mingw-check-tidy' }}
strategy:
@@ -315,8 +330,6 @@ jobs:
<<: *job-linux-16c
auto:
- permissions:
- actions: write # for rust-lang/simpleinfra/github-actions/cancel-outdated-builds
<<: *base-ci-job
name: auto - ${{ matrix.name }}
env:
@@ -362,18 +375,6 @@ jobs:
- name: dist-loongarch64-linux
<<: *job-linux-8c
- - name: dist-mips-linux
- <<: *job-linux-8c
-
- - name: dist-mips64-linux
- <<: *job-linux-8c
-
- - name: dist-mips64el-linux
- <<: *job-linux-8c
-
- - name: dist-mipsel-linux
- <<: *job-linux-8c
-
- name: dist-powerpc-linux
<<: *job-linux-8c
@@ -473,11 +474,6 @@ jobs:
RUST_BACKTRACE: 1
<<: *job-linux-8c
- - name: x86_64-gnu-llvm-14-stage1
- env:
- RUST_BACKTRACE: 1
- <<: *job-linux-8c
-
- name: x86_64-gnu-nopt
<<: *job-linux-4c
@@ -582,40 +578,22 @@ jobs:
# Windows Builders #
######################
- - name: x86_64-msvc-1
- env:
- RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
- SCRIPT: make ci-subset-1
- <<: *job-windows-8c
-
- - name: x86_64-msvc-2
+ - name: x86_64-msvc
env:
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
- SCRIPT: make ci-subset-2
+ SCRIPT: make ci-msvc
<<: *job-windows-8c
- - name: i686-msvc-1
+ - name: i686-msvc
env:
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
- SCRIPT: make ci-subset-1
+ SCRIPT: make ci-msvc
<<: *job-windows-8c
- - name: i686-msvc-2
+ - name: x86_64-msvc-ext
env:
- RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
- SCRIPT: make ci-subset-2
- <<: *job-windows-8c
-
- - name: x86_64-msvc-cargo
- env:
- SCRIPT: python x.py --stage 2 test src/tools/cargotest src/tools/cargo
- RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-lld
- <<: *job-windows-8c
-
- - name: x86_64-msvc-tools
- env:
- SCRIPT: src/ci/docker/host-x86_64/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstate/toolstates.json windows
- RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstate/toolstates.json
+ SCRIPT: python x.py --stage 2 test src/tools/cargotest src/tools/cargo && src/ci/docker/host-x86_64/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstate/toolstates.json windows
+ RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-lld --save-toolstates=/tmp/toolstate/toolstates.json
DEPLOY_TOOLSTATES_JSON: toolstates-windows.json
<<: *job-windows-8c
@@ -635,41 +613,19 @@ jobs:
# came from the mingw-w64 SourceForge download site. Unfortunately
# SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
- - name: i686-mingw-1
+ - name: i686-mingw
env:
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
- SCRIPT: make ci-mingw-subset-1
- # We are intentionally allowing an old toolchain on this builder (and that's
- # incompatible with LLVM downloads today).
- NO_DOWNLOAD_CI_LLVM: 1
- CUSTOM_MINGW: 1
- <<: *job-windows-8c
-
- - name: i686-mingw-2
- env:
- RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
- SCRIPT: make ci-mingw-subset-2
- # We are intentionally allowing an old toolchain on this builder (and that's
- # incompatible with LLVM downloads today).
- NO_DOWNLOAD_CI_LLVM: 1
- CUSTOM_MINGW: 1
- <<: *job-windows-8c
-
- - name: x86_64-mingw-1
- env:
- SCRIPT: make ci-mingw-subset-1
- RUST_CONFIGURE_ARGS: >-
- --build=x86_64-pc-windows-gnu
- --enable-profiler
+ SCRIPT: make ci-mingw
# We are intentionally allowing an old toolchain on this builder (and that's
# incompatible with LLVM downloads today).
NO_DOWNLOAD_CI_LLVM: 1
CUSTOM_MINGW: 1
<<: *job-windows-8c
- - name: x86_64-mingw-2
+ - name: x86_64-mingw
env:
- SCRIPT: make ci-mingw-subset-2
+ SCRIPT: make ci-mingw
RUST_CONFIGURE_ARGS: >-
--build=x86_64-pc-windows-gnu
--enable-profiler
@@ -752,11 +708,10 @@ jobs:
<<: *job-windows-8c
try:
- permissions:
- actions: write # for rust-lang/simpleinfra/github-actions/cancel-outdated-builds
<<: *base-ci-job
name: try - ${{ matrix.name }}
env:
+ DIST_TRY_BUILD: 1
<<: [*shared-ci-variables, *prod-variables]
if: github.event_name == 'push' && (github.ref == 'refs/heads/try' || github.ref == 'refs/heads/try-perf') && github.repository == 'rust-lang-ci/rust'
strategy:
diff --git a/src/ci/github-actions/problem_matchers.json b/src/ci/github-actions/problem_matchers.json
index 37561924b..b6c7ace84 100644
--- a/src/ci/github-actions/problem_matchers.json
+++ b/src/ci/github-actions/problem_matchers.json
@@ -10,6 +10,46 @@
"message": 3
}
]
+ },
+ {
+ "owner": "cargo-common",
+ "pattern": [
+ {
+ "regexp": "^(warning|warn|error)(\\[(\\S*)\\])?: (.*)$",
+ "severity": 1,
+ "message": 4,
+ "code": 3
+ },
+ {
+ "regexp": "^\\s+-->\\s(\\S+):(\\d+):(\\d+)$",
+ "file": 1,
+ "line": 2,
+ "column": 3
+ }
+ ]
+ },
+ {
+ "owner": "compiler-panic",
+ "pattern": [
+ {
+ "regexp": "error: internal compiler error: (.*):(\\d+):(\\d+): (.*)$",
+ "message": 4,
+ "file": 1,
+ "line": 2,
+ "column": 3
+ }
+ ]
+ },
+ {
+ "owner": "cargo-fmt",
+ "pattern": [
+ {
+ "regexp": "^(Diff in (\\S+)) at line (\\d+):",
+ "message": 1,
+ "file": 2,
+ "line": 3
+ }
+ ]
}
]
}