Pull all the upstream work on rust standard library plus fix the mutex problem with asyncify #51
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | ||
on: | ||
push: | ||
branches: | ||
- auto | ||
- try | ||
- try-perf | ||
- automation/bors/try | ||
- master | ||
pull_request: | ||
branches: | ||
- "**" | ||
permissions: | ||
contents: read | ||
defaults: | ||
run: | ||
shell: bash | ||
concurrency: | ||
group: "${{ github.workflow }}-${{ ((github.ref == 'refs/heads/try' || github.ref == 'refs/heads/try-perf') && github.sha) || github.ref }}" | ||
cancel-in-progress: true | ||
jobs: | ||
pr: | ||
name: "PR - ${{ matrix.name }}" | ||
env: | ||
PR_CI_JOB: 1 | ||
CI_JOB_NAME: "${{ matrix.name }}" | ||
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | ||
HEAD_SHA: "${{ github.event.pull_request.head.sha || github.sha }}" | ||
SCCACHE_BUCKET: rust-lang-ci-sccache2 | ||
TOOLSTATE_REPO: "https://github.com/rust-lang-nursery/rust-toolstate" | ||
CACHE_DOMAIN: ci-caches.rust-lang.org | ||
if: "github.event_name == 'pull_request'" | ||
continue-on-error: "${{ matrix.name == 'mingw-check-tidy' }}" | ||
strategy: | ||
matrix: | ||
include: | ||
- name: mingw-check | ||
os: ubuntu-20.04-4core-16gb | ||
env: {} | ||
- name: mingw-check-tidy | ||
os: ubuntu-20.04-4core-16gb | ||
env: {} | ||
- name: x86_64-gnu-llvm-16 | ||
env: | ||
ENABLE_GCC_CODEGEN: "1" | ||
os: ubuntu-20.04-16core-64gb | ||
- name: x86_64-gnu-tools | ||
os: ubuntu-20.04-16core-64gb | ||
env: {} | ||
timeout-minutes: 600 | ||
runs-on: "${{ matrix.os }}" | ||
steps: | ||
- name: disable git crlf conversion | ||
run: git config --global core.autocrlf false | ||
- name: checkout the source code | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 2 | ||
- name: configure the PR in which the error message will be posted | ||
run: "echo \"[CI_PR_NUMBER=$num]\"" | ||
env: | ||
num: "${{ github.event.number }}" | ||
if: "success() && !env.SKIP_JOB && github.event_name == 'pull_request'" | ||
- name: add extra environment variables | ||
run: src/ci/scripts/setup-environment.sh | ||
env: | ||
EXTRA_VARIABLES: "${{ toJson(matrix.env) }}" | ||
if: success() && !env.SKIP_JOB | ||
- name: decide whether to skip this job | ||
run: src/ci/scripts/should-skip-this.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure the channel matches the target branch | ||
run: src/ci/scripts/verify-channel.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: collect CPU statistics | ||
run: src/ci/scripts/collect-cpu-stats.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: show the current environment | ||
run: src/ci/scripts/dump-environment.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install awscli | ||
run: src/ci/scripts/install-awscli.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install sccache | ||
run: src/ci/scripts/install-sccache.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: select Xcode | ||
run: src/ci/scripts/select-xcode.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install clang | ||
run: src/ci/scripts/install-clang.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install tidy | ||
run: src/ci/scripts/install-tidy.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install WIX | ||
run: src/ci/scripts/install-wix.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: disable git crlf conversion | ||
run: src/ci/scripts/disable-git-crlf-conversion.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: checkout submodules | ||
run: src/ci/scripts/checkout-submodules.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install MSYS2 | ||
run: src/ci/scripts/install-msys2.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install MinGW | ||
run: src/ci/scripts/install-mingw.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install ninja | ||
run: src/ci/scripts/install-ninja.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: enable ipv6 on Docker | ||
run: src/ci/scripts/enable-docker-ipv6.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: disable git crlf conversion | ||
run: src/ci/scripts/disable-git-crlf-conversion.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure line endings are correct | ||
run: src/ci/scripts/verify-line-endings.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure backported commits are in upstream branches | ||
run: src/ci/scripts/verify-backported-commits.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure the stable version number is correct | ||
run: src/ci/scripts/verify-stable-version-number.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: run the build | ||
run: src/ci/scripts/run-build-from-ci.sh | ||
env: | ||
AWS_ACCESS_KEY_ID: "${{ env.CACHES_AWS_ACCESS_KEY_ID }}" | ||
AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}" | ||
TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}" | ||
if: success() && !env.SKIP_JOB | ||
- name: create github artifacts | ||
run: src/ci/scripts/create-doc-artifacts.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: upload artifacts to github | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: "${{ env.DOC_ARTIFACT_NAME }}" | ||
path: obj/artifacts/doc | ||
if-no-files-found: ignore | ||
retention-days: 5 | ||
if: success() && !env.SKIP_JOB | ||
- name: upload artifacts to S3 | ||
run: src/ci/scripts/upload-artifacts.sh | ||
env: | ||
AWS_ACCESS_KEY_ID: "${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }}" | ||
AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}" | ||
if: "success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1')" | ||
auto: | ||
name: "auto - ${{ matrix.name }}" | ||
env: | ||
CI_JOB_NAME: "${{ matrix.name }}" | ||
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | ||
HEAD_SHA: "${{ github.event.pull_request.head.sha || github.sha }}" | ||
SCCACHE_BUCKET: rust-lang-ci-sccache2 | ||
DEPLOY_BUCKET: rust-lang-ci2 | ||
TOOLSTATE_REPO: "https://github.com/rust-lang-nursery/rust-toolstate" | ||
TOOLSTATE_ISSUES_API_URL: "https://api.github.com/repos/rust-lang/rust/issues" | ||
TOOLSTATE_PUBLISH: 1 | ||
CACHES_AWS_ACCESS_KEY_ID: AKIA46X5W6CZI5DHEBFL | ||
ARTIFACTS_AWS_ACCESS_KEY_ID: AKIA46X5W6CZN24CBO55 | ||
AWS_REGION: us-west-1 | ||
CACHE_DOMAIN: ci-caches.rust-lang.org | ||
if: "github.event_name == 'push' && github.ref == 'refs/heads/auto' && github.repository == 'rust-lang-ci/rust'" | ||
strategy: | ||
matrix: | ||
include: | ||
- name: aarch64-gnu | ||
os: | ||
- self-hosted | ||
- ARM64 | ||
- linux | ||
- name: arm-android | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: armhf-gnu | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-aarch64-linux | ||
env: | ||
CODEGEN_BACKENDS: "llvm,cranelift" | ||
os: ubuntu-20.04-8core-32gb | ||
- name: dist-android | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-arm-linux | ||
os: ubuntu-20.04-16core-64gb | ||
env: {} | ||
- name: dist-armhf-linux | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-armv7-linux | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-i586-gnu-i586-i686-musl | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-i686-linux | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-loongarch64-linux | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-powerpc-linux | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-powerpc64-linux | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-powerpc64le-linux | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-riscv64-linux | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-s390x-linux | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-various-1 | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-various-2 | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-x86_64-freebsd | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-x86_64-illumos | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: dist-x86_64-linux | ||
env: | ||
CODEGEN_BACKENDS: "llvm,cranelift" | ||
os: ubuntu-20.04-16core-64gb | ||
- name: dist-x86_64-linux-alt | ||
env: | ||
IMAGE: dist-x86_64-linux | ||
CODEGEN_BACKENDS: "llvm,cranelift" | ||
os: ubuntu-20.04-16core-64gb | ||
- name: dist-x86_64-musl | ||
env: | ||
CODEGEN_BACKENDS: "llvm,cranelift" | ||
os: ubuntu-20.04-8core-32gb | ||
- name: dist-x86_64-netbsd | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: i686-gnu | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: i686-gnu-nopt | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: mingw-check | ||
os: ubuntu-20.04-4core-16gb | ||
env: {} | ||
- name: test-various | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: x86_64-gnu | ||
os: ubuntu-20.04-4core-16gb | ||
env: {} | ||
- name: x86_64-gnu-stable | ||
env: | ||
IMAGE: x86_64-gnu | ||
RUST_CI_OVERRIDE_RELEASE_CHANNEL: stable | ||
CI_ONLY_WHEN_CHANNEL: nightly | ||
os: ubuntu-20.04-4core-16gb | ||
- name: x86_64-gnu-aux | ||
os: ubuntu-20.04-4core-16gb | ||
env: {} | ||
- name: x86_64-gnu-integration | ||
env: | ||
CI_ONLY_WHEN_CHANNEL: nightly | ||
os: ubuntu-20.04-16core-64gb | ||
- name: x86_64-gnu-debug | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: x86_64-gnu-distcheck | ||
os: ubuntu-20.04-8core-32gb | ||
env: {} | ||
- name: x86_64-gnu-llvm-17 | ||
env: | ||
RUST_BACKTRACE: 1 | ||
os: ubuntu-20.04-8core-32gb | ||
- name: x86_64-gnu-llvm-16 | ||
env: | ||
RUST_BACKTRACE: 1 | ||
os: ubuntu-20.04-8core-32gb | ||
- name: x86_64-gnu-nopt | ||
os: ubuntu-20.04-4core-16gb | ||
env: {} | ||
- name: x86_64-gnu-tools | ||
env: | ||
DEPLOY_TOOLSTATES_JSON: toolstates-linux.json | ||
os: ubuntu-20.04-8core-32gb | ||
- name: dist-x86_64-apple | ||
env: | ||
SCRIPT: "./x.py dist bootstrap --include-default-paths --host=x86_64-apple-darwin --target=x86_64-apple-darwin" | ||
RUST_CONFIGURE_ARGS: "--enable-full-tools --enable-sanitizers --enable-profiler --set rust.jemalloc --set llvm.ninja=false --set rust.lto=thin" | ||
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1 | ||
MACOSX_DEPLOYMENT_TARGET: 10.12 | ||
SELECT_XCODE: /Applications/Xcode_13.4.1.app | ||
NO_LLVM_ASSERTIONS: 1 | ||
NO_DEBUG_ASSERTIONS: 1 | ||
NO_OVERFLOW_CHECKS: 1 | ||
DIST_REQUIRE_ALL_TOOLS: 1 | ||
CODEGEN_BACKENDS: "llvm,cranelift" | ||
os: macos-13 | ||
- name: dist-apple-various | ||
env: | ||
SCRIPT: "./x.py dist bootstrap --include-default-paths --host='' --target=aarch64-apple-ios,x86_64-apple-ios,aarch64-apple-ios-sim" | ||
RUST_CONFIGURE_ARGS: "--enable-sanitizers --enable-profiler --set rust.jemalloc --set llvm.ninja=false" | ||
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1 | ||
MACOSX_DEPLOYMENT_TARGET: 10.12 | ||
SELECT_XCODE: /Applications/Xcode_13.4.1.app | ||
NO_LLVM_ASSERTIONS: 1 | ||
NO_DEBUG_ASSERTIONS: 1 | ||
NO_OVERFLOW_CHECKS: 1 | ||
os: macos-13 | ||
- name: x86_64-apple-1 | ||
env: | ||
SCRIPT: "./x.py --stage 2 test --skip tests/ui --skip tests/rustdoc --skip tests/run-make-fulldeps" | ||
RUST_CONFIGURE_ARGS: "--build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc --set llvm.ninja=false" | ||
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1 | ||
MACOSX_DEPLOYMENT_TARGET: 10.12 | ||
MACOSX_STD_DEPLOYMENT_TARGET: 10.12 | ||
NO_LLVM_ASSERTIONS: 1 | ||
NO_DEBUG_ASSERTIONS: 1 | ||
NO_OVERFLOW_CHECKS: 1 | ||
os: macos-13 | ||
- name: x86_64-apple-2 | ||
env: | ||
SCRIPT: "./x.py --stage 2 test tests/ui tests/rustdoc tests/run-make-fulldeps" | ||
RUST_CONFIGURE_ARGS: "--build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc --set llvm.ninja=false" | ||
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1 | ||
MACOSX_DEPLOYMENT_TARGET: 10.12 | ||
MACOSX_STD_DEPLOYMENT_TARGET: 10.12 | ||
NO_LLVM_ASSERTIONS: 1 | ||
NO_DEBUG_ASSERTIONS: 1 | ||
NO_OVERFLOW_CHECKS: 1 | ||
os: macos-13 | ||
- name: dist-aarch64-apple | ||
env: | ||
SCRIPT: "./x.py dist bootstrap --include-default-paths --stage 2" | ||
RUST_CONFIGURE_ARGS: "--build=x86_64-apple-darwin --host=aarch64-apple-darwin --target=aarch64-apple-darwin --enable-full-tools --enable-sanitizers --enable-profiler --disable-docs --set rust.jemalloc --set llvm.ninja=false" | ||
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1 | ||
SELECT_XCODE: /Applications/Xcode_13.4.1.app | ||
USE_XCODE_CLANG: 1 | ||
MACOSX_DEPLOYMENT_TARGET: 11.0 | ||
MACOSX_STD_DEPLOYMENT_TARGET: 11.0 | ||
NO_LLVM_ASSERTIONS: 1 | ||
NO_DEBUG_ASSERTIONS: 1 | ||
NO_OVERFLOW_CHECKS: 1 | ||
DIST_REQUIRE_ALL_TOOLS: 1 | ||
JEMALLOC_SYS_WITH_LG_PAGE: 14 | ||
os: macos-13 | ||
- name: x86_64-msvc | ||
env: | ||
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --enable-profiler" | ||
SCRIPT: make ci-msvc | ||
os: windows-2019-8core-32gb | ||
- name: i686-msvc | ||
env: | ||
RUST_CONFIGURE_ARGS: "--build=i686-pc-windows-msvc" | ||
SCRIPT: make ci-msvc | ||
os: windows-2019-8core-32gb | ||
- name: x86_64-msvc-ext | ||
env: | ||
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 | ||
HOST_TARGET: x86_64-pc-windows-msvc | ||
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --enable-lld --save-toolstates=/tmp/toolstate/toolstates.json" | ||
DEPLOY_TOOLSTATES_JSON: toolstates-windows.json | ||
os: windows-2019-8core-32gb | ||
- name: i686-mingw | ||
env: | ||
RUST_CONFIGURE_ARGS: "--build=i686-pc-windows-gnu" | ||
SCRIPT: make ci-mingw | ||
NO_DOWNLOAD_CI_LLVM: 1 | ||
CUSTOM_MINGW: 1 | ||
os: windows-2019-8core-32gb | ||
- name: x86_64-mingw | ||
env: | ||
SCRIPT: make ci-mingw | ||
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-gnu --enable-profiler" | ||
NO_DOWNLOAD_CI_LLVM: 1 | ||
CUSTOM_MINGW: 1 | ||
os: windows-2019-8core-32gb | ||
- name: dist-x86_64-msvc | ||
env: | ||
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --host=x86_64-pc-windows-msvc --target=x86_64-pc-windows-msvc --enable-full-tools --enable-profiler" | ||
SCRIPT: python x.py build --set rust.debug=true opt-dist && PGO_HOST=x86_64-pc-windows-msvc ./build/x86_64-pc-windows-msvc/stage0-tools-bin/opt-dist windows-ci -- python x.py dist bootstrap --include-default-paths | ||
DIST_REQUIRE_ALL_TOOLS: 1 | ||
os: windows-2019-8core-32gb | ||
- name: dist-i686-msvc | ||
env: | ||
RUST_CONFIGURE_ARGS: "--build=i686-pc-windows-msvc --host=i686-pc-windows-msvc --target=i686-pc-windows-msvc,i586-pc-windows-msvc --enable-full-tools --enable-profiler" | ||
SCRIPT: python x.py dist bootstrap --include-default-paths | ||
DIST_REQUIRE_ALL_TOOLS: 1 | ||
os: windows-2019-8core-32gb | ||
- name: dist-aarch64-msvc | ||
env: | ||
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --host=aarch64-pc-windows-msvc --enable-full-tools --enable-profiler" | ||
SCRIPT: python x.py dist bootstrap --include-default-paths | ||
DIST_REQUIRE_ALL_TOOLS: 1 | ||
os: windows-2019-8core-32gb | ||
- name: dist-i686-mingw | ||
env: | ||
RUST_CONFIGURE_ARGS: "--build=i686-pc-windows-gnu --enable-full-tools --enable-profiler" | ||
NO_DOWNLOAD_CI_LLVM: 1 | ||
SCRIPT: python x.py dist bootstrap --include-default-paths | ||
CUSTOM_MINGW: 1 | ||
DIST_REQUIRE_ALL_TOOLS: 1 | ||
os: windows-2019-8core-32gb | ||
- name: dist-x86_64-mingw | ||
env: | ||
SCRIPT: python x.py dist bootstrap --include-default-paths | ||
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-gnu --enable-full-tools --enable-profiler" | ||
NO_DOWNLOAD_CI_LLVM: 1 | ||
CUSTOM_MINGW: 1 | ||
DIST_REQUIRE_ALL_TOOLS: 1 | ||
os: windows-2019-8core-32gb | ||
- name: dist-x86_64-msvc-alt | ||
env: | ||
RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --enable-extended --enable-profiler" | ||
SCRIPT: python x.py dist bootstrap --include-default-paths | ||
os: windows-2019-8core-32gb | ||
timeout-minutes: 600 | ||
runs-on: "${{ matrix.os }}" | ||
steps: | ||
- name: disable git crlf conversion | ||
run: git config --global core.autocrlf false | ||
- name: checkout the source code | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: wasix-org/cargo-wasix | ||
ref: main | ||
path: cargo-wasix | ||
# Linux! | ||
- name: Setup (Ubuntu) | ||
if: matrix.arch == 'x86' && contains(matrix.os, 'ubuntu') | ||
shell: bash | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y build-essential curl wget xz-utils git python3 ninja-build cmake | ||
- name: Build (Linux) | ||
if: matrix.arch == 'x86' && contains(matrix.os, 'ubuntu') | ||
shell: bash | ||
env: | ||
num: "${{ github.event.number }}" | ||
if: "success() && !env.SKIP_JOB && github.event_name == 'pull_request'" | ||
Check failure on line 457 in .github/workflows/ci.yml
|
||
- name: add extra environment variables | ||
run: src/ci/scripts/setup-environment.sh | ||
env: | ||
EXTRA_VARIABLES: "${{ toJson(matrix.env) }}" | ||
if: success() && !env.SKIP_JOB | ||
- name: decide whether to skip this job | ||
run: src/ci/scripts/should-skip-this.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure the channel matches the target branch | ||
run: src/ci/scripts/verify-channel.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: collect CPU statistics | ||
run: src/ci/scripts/collect-cpu-stats.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: show the current environment | ||
run: src/ci/scripts/dump-environment.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install awscli | ||
run: src/ci/scripts/install-awscli.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install sccache | ||
run: src/ci/scripts/install-sccache.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: select Xcode | ||
run: src/ci/scripts/select-xcode.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install clang | ||
run: src/ci/scripts/install-clang.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install tidy | ||
run: src/ci/scripts/install-tidy.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install WIX | ||
run: src/ci/scripts/install-wix.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: disable git crlf conversion | ||
run: src/ci/scripts/disable-git-crlf-conversion.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: checkout submodules | ||
run: src/ci/scripts/checkout-submodules.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install MSYS2 | ||
run: src/ci/scripts/install-msys2.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install MinGW | ||
run: src/ci/scripts/install-mingw.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install ninja | ||
run: src/ci/scripts/install-ninja.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: enable ipv6 on Docker | ||
run: src/ci/scripts/enable-docker-ipv6.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: disable git crlf conversion | ||
run: src/ci/scripts/disable-git-crlf-conversion.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure line endings are correct | ||
run: src/ci/scripts/verify-line-endings.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure backported commits are in upstream branches | ||
run: src/ci/scripts/verify-backported-commits.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure the stable version number is correct | ||
run: src/ci/scripts/verify-stable-version-number.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: run the build | ||
run: src/ci/scripts/run-build-from-ci.sh | ||
env: | ||
AWS_ACCESS_KEY_ID: "${{ env.CACHES_AWS_ACCESS_KEY_ID }}" | ||
AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}" | ||
TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}" | ||
if: success() && !env.SKIP_JOB | ||
- name: create github artifacts | ||
run: src/ci/scripts/create-doc-artifacts.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: upload artifacts to github | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: "${{ env.DOC_ARTIFACT_NAME }}" | ||
path: obj/artifacts/doc | ||
if-no-files-found: ignore | ||
retention-days: 5 | ||
if: success() && !env.SKIP_JOB | ||
- name: upload artifacts to S3 | ||
run: src/ci/scripts/upload-artifacts.sh | ||
env: | ||
AWS_ACCESS_KEY_ID: "${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }}" | ||
AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}" | ||
if: "success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1')" | ||
try: | ||
name: "try - ${{ matrix.name }}" | ||
env: | ||
DIST_TRY_BUILD: 1 | ||
CI_JOB_NAME: "${{ matrix.name }}" | ||
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | ||
HEAD_SHA: "${{ github.event.pull_request.head.sha || github.sha }}" | ||
SCCACHE_BUCKET: rust-lang-ci-sccache2 | ||
DEPLOY_BUCKET: rust-lang-ci2 | ||
TOOLSTATE_REPO: "https://github.com/rust-lang-nursery/rust-toolstate" | ||
TOOLSTATE_ISSUES_API_URL: "https://api.github.com/repos/rust-lang/rust/issues" | ||
TOOLSTATE_PUBLISH: 1 | ||
CACHES_AWS_ACCESS_KEY_ID: AKIA46X5W6CZI5DHEBFL | ||
ARTIFACTS_AWS_ACCESS_KEY_ID: AKIA46X5W6CZN24CBO55 | ||
AWS_REGION: us-west-1 | ||
CACHE_DOMAIN: ci-caches.rust-lang.org | ||
if: "github.event_name == 'push' && (((github.ref == 'refs/heads/try' || github.ref == 'refs/heads/try-perf') && github.repository == 'rust-lang-ci/rust') || ((github.ref == 'refs/heads/automation/bors/try') && github.repository == 'rust-lang/rust'))" | ||
strategy: | ||
matrix: | ||
include: | ||
- name: dist-x86_64-linux | ||
env: | ||
CODEGEN_BACKENDS: "llvm,cranelift" | ||
os: ubuntu-20.04-16core-64gb | ||
timeout-minutes: 600 | ||
runs-on: "${{ matrix.os }}" | ||
steps: | ||
- name: disable git crlf conversion | ||
run: git config --global core.autocrlf false | ||
- name: checkout the source code | ||
uses: actions/checkout@v4 | ||
with: | ||
name: rust-toolchain-x86_64-apple-darwin | ||
path: | | ||
wasix-rust/build/x86_64-apple-darwin/stage2 | ||
!wasix-rust/build/x86_64-apple-darwin/stage2/lib/rustlib/src | ||
!wasix-rust/build/x86_64-apple-darwin/stage2/lib/rustlib/rustc-src | ||
# Mac - aarch64 | ||
# Not running this on GitHub Actions yet, because the underlying runners use x86_64 and not aarch64. | ||
# This results in a cross-compile, which results in an erroneous build. | ||
# TODO: Come back to this and enable it once GitHub Actions supports aarch64 runners. | ||
# - name: Build (Mac Os, aarch64) | ||
# shell: bash | ||
# if: contains(matrix.os, 'macos-12') && matrix.arch == 'aarch64' | ||
# env: | ||
# WASIX_NO_UPDATE_REPOS: "1" | ||
# GITHUB_ACTIONS: "false" | ||
# WASIX_COMPONENTS: rust | ||
# WASIX_RUST_HOST: aarch64-apple-darwin | ||
# run: | | ||
# cd cargo-wasix | ||
# # NOTE: must unset GITHUB_ACTIONS env var, because Rst bootstrap checks for it. | ||
# # (see bootstrap config.rs) | ||
# GITHUB_ACTIONS=false WASIX_BUILD_DIR=$GITHUB_WORKSPACE cargo run -- wasix build-toolchain | ||
# - name: Copy wasm* builds from x86_64-apple-darwin to aarch64-apple-darwin | ||
# shell: bash | ||
# if: contains(matrix.os, 'macos-12') && matrix.arch == 'aarch64' | ||
# run: | | ||
# cp -r wasix-rust/build/x86_64-apple-darwin/stage2/lib/rustlib/wasm* wasix-rust/build/aarch64-apple-darwin/stage2/lib/rustlib | ||
# - name: Archive build output (Mac OS - aarch64) | ||
# uses: actions/upload-artifact@v3 | ||
# if: contains(matrix.os, 'macos-12') && matrix.arch == 'aarch64' | ||
# with: | ||
# name: rust-toolchain-aarch64-apple-darwin | ||
# path: | | ||
# wasix-rust/build/aarch64-apple-darwin/stage2 | ||
# !wasix-rust/build/aarch64-apple-darwin/stage2/lib/rustlib/src | ||
# !wasix-rust/build/aarch64-apple-darwin/stage2/lib/rustlib/rustc-src | ||
# Windows | ||
# - name: Install chocolatey deps (Windows) | ||
# if: contains(matrix.os, 'windows') && matrix.arch == 'x86' | ||
# shell: bash | ||
# continue-on-error: true | ||
# run: choco install -y visualstudio2019community cmake | ||
- name: Set up MinGW (Windows) | ||
if: contains(matrix.os, 'windows') && matrix.arch == 'x86' | ||
uses: egor-tensin/setup-mingw@v2 | ||
# - name: Install llvm (Windows) | ||
# if: matrix.os == 'self-hosted-windows' | ||
# uses: KyleMayes/install-llvm-action@v1 | ||
# with: | ||
# version: "10.0" | ||
- name: Install ninja (Windows) | ||
if: contains(matrix.os, 'windows') && matrix.arch == 'x86' | ||
uses: seanmiddleditch/gha-setup-ninja@master | ||
- name: Build (Windows) | ||
if: contains(matrix.os, 'windows') && matrix.arch == 'x86' | ||
continue-on-error: true | ||
shell: bash | ||
env: | ||
num: "${{ github.event.number }}" | ||
if: "success() && !env.SKIP_JOB && github.event_name == 'pull_request'" | ||
- name: add extra environment variables | ||
run: src/ci/scripts/setup-environment.sh | ||
env: | ||
EXTRA_VARIABLES: "${{ toJson(matrix.env) }}" | ||
if: success() && !env.SKIP_JOB | ||
- name: decide whether to skip this job | ||
run: src/ci/scripts/should-skip-this.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure the channel matches the target branch | ||
run: src/ci/scripts/verify-channel.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: collect CPU statistics | ||
run: src/ci/scripts/collect-cpu-stats.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: show the current environment | ||
run: src/ci/scripts/dump-environment.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install awscli | ||
run: src/ci/scripts/install-awscli.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install sccache | ||
run: src/ci/scripts/install-sccache.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: select Xcode | ||
run: src/ci/scripts/select-xcode.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install clang | ||
run: src/ci/scripts/install-clang.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install tidy | ||
run: src/ci/scripts/install-tidy.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install WIX | ||
run: src/ci/scripts/install-wix.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: disable git crlf conversion | ||
run: src/ci/scripts/disable-git-crlf-conversion.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: checkout submodules | ||
run: src/ci/scripts/checkout-submodules.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install MSYS2 | ||
run: src/ci/scripts/install-msys2.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install MinGW | ||
run: src/ci/scripts/install-mingw.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: install ninja | ||
run: src/ci/scripts/install-ninja.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: enable ipv6 on Docker | ||
run: src/ci/scripts/enable-docker-ipv6.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: disable git crlf conversion | ||
run: src/ci/scripts/disable-git-crlf-conversion.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure line endings are correct | ||
run: src/ci/scripts/verify-line-endings.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure backported commits are in upstream branches | ||
run: src/ci/scripts/verify-backported-commits.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: ensure the stable version number is correct | ||
run: src/ci/scripts/verify-stable-version-number.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: run the build | ||
run: src/ci/scripts/run-build-from-ci.sh | ||
env: | ||
AWS_ACCESS_KEY_ID: "${{ env.CACHES_AWS_ACCESS_KEY_ID }}" | ||
AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}" | ||
TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}" | ||
if: success() && !env.SKIP_JOB | ||
- name: create github artifacts | ||
run: src/ci/scripts/create-doc-artifacts.sh | ||
if: success() && !env.SKIP_JOB | ||
- name: upload artifacts to github | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: "${{ env.DOC_ARTIFACT_NAME }}" | ||
path: obj/artifacts/doc | ||
if-no-files-found: ignore | ||
retention-days: 5 | ||
if: success() && !env.SKIP_JOB | ||
- name: upload artifacts to S3 | ||
run: src/ci/scripts/upload-artifacts.sh | ||
env: | ||
AWS_ACCESS_KEY_ID: "${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }}" | ||
AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}" | ||
if: "success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1')" | ||
master: | ||
name: master | ||
runs-on: ubuntu-latest | ||
env: | ||
SCCACHE_BUCKET: rust-lang-ci-sccache2 | ||
DEPLOY_BUCKET: rust-lang-ci2 | ||
TOOLSTATE_REPO: "https://github.com/rust-lang-nursery/rust-toolstate" | ||
TOOLSTATE_ISSUES_API_URL: "https://api.github.com/repos/rust-lang/rust/issues" | ||
TOOLSTATE_PUBLISH: 1 | ||
CACHES_AWS_ACCESS_KEY_ID: AKIA46X5W6CZI5DHEBFL | ||
ARTIFACTS_AWS_ACCESS_KEY_ID: AKIA46X5W6CZN24CBO55 | ||
AWS_REGION: us-west-1 | ||
CACHE_DOMAIN: ci-caches.rust-lang.org | ||
if: "github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'rust-lang-ci/rust'" | ||
steps: | ||
- name: checkout the source code | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 2 | ||
- name: publish toolstate | ||
run: src/ci/publish_toolstate.sh | ||
shell: bash | ||
env: | ||
TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}" | ||
if: success() && !env.SKIP_JOB | ||
try-success: | ||
needs: | ||
- try | ||
if: "success() && github.event_name == 'push' && (github.ref == 'refs/heads/try' || github.ref == 'refs/heads/try-perf') && github.repository == 'rust-lang-ci/rust'" | ||
steps: | ||
- name: mark the job as a success | ||
run: exit 0 | ||
shell: bash | ||
name: bors build finished | ||
runs-on: ubuntu-latest | ||
try-failure: | ||
needs: | ||
- try | ||
if: "!success() && github.event_name == 'push' && (github.ref == 'refs/heads/try' || github.ref == 'refs/heads/try-perf') && github.repository == 'rust-lang-ci/rust'" | ||
steps: | ||
- name: mark the job as a failure | ||
run: exit 1 | ||
shell: bash | ||
name: bors build finished | ||
runs-on: ubuntu-latest | ||
auto-success: | ||
needs: | ||
- auto | ||
if: "success() && github.event_name == 'push' && github.ref == 'refs/heads/auto' && github.repository == 'rust-lang-ci/rust'" | ||
steps: | ||
- name: mark the job as a success | ||
run: exit 0 | ||
shell: bash | ||
name: bors build finished | ||
runs-on: ubuntu-latest | ||
auto-failure: | ||
needs: | ||
- auto | ||
if: "!success() && github.event_name == 'push' && github.ref == 'refs/heads/auto' && github.repository == 'rust-lang-ci/rust'" | ||
steps: | ||
- name: mark the job as a failure | ||
run: exit 1 | ||
shell: bash | ||
name: bors build finished | ||
runs-on: ubuntu-latest |