diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index caf97abf78d9..f67d56eb6d41 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,741 +1,741 @@ -############################################################# -# WARNING: automatically generated file, DO NOT CHANGE! # -############################################################# +# ############################################################# +# # WARNING: automatically generated file, DO NOT CHANGE! # +# ############################################################# -# This file was automatically generated by the expand-yaml-anchors tool. The -# source file that generated this one is: -# -# src/ci/github-actions/ci.yml -# -# Once you make changes to that file you need to run: -# -# ./x.py run src/tools/expand-yaml-anchors/ -# -# The CI build will fail if the tool is not run after changes to this file. +# # This file was automatically generated by the expand-yaml-anchors tool. The +# # source file that generated this one is: +# # +# # src/ci/github-actions/ci.yml +# # +# # Once you make changes to that file you need to run: +# # +# # ./x.py run src/tools/expand-yaml-anchors/ +# # +# # The CI build will fail if the tool is not run after changes to this file. ---- -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: - 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')" - 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: - 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')" - 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 +# --- +# 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: +# 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')" +# 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: +# 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')" +# 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 diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml index 97ed891c491d..c1e72adbbaf8 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -1,142 +1,142 @@ -# Automatically run `cargo update` periodically +# # Automatically run `cargo update` periodically ---- -name: Bump dependencies in Cargo.lock -on: - schedule: - # Run weekly - - cron: '0 0 * * Sun' - workflow_dispatch: - # Needed so we can run it manually -permissions: - contents: read -defaults: - run: - shell: bash -env: - # So cargo doesn't complain about unstable features - RUSTC_BOOTSTRAP: 1 - PR_TITLE: Weekly `cargo update` - PR_MESSAGE: | - Automation to keep dependencies in `Cargo.lock` current. +# --- +# name: Bump dependencies in Cargo.lock +# on: +# schedule: +# # Run weekly +# - cron: '0 0 * * Sun' +# workflow_dispatch: +# # Needed so we can run it manually +# permissions: +# contents: read +# defaults: +# run: +# shell: bash +# env: +# # So cargo doesn't complain about unstable features +# RUSTC_BOOTSTRAP: 1 +# PR_TITLE: Weekly `cargo update` +# PR_MESSAGE: | +# Automation to keep dependencies in `Cargo.lock` current. - The following is the output from `cargo update`: - COMMIT_MESSAGE: "cargo update \n\n" +# The following is the output from `cargo update`: +# COMMIT_MESSAGE: "cargo update \n\n" -jobs: - not-waiting-on-bors: - if: github.repository_owner == 'rust-lang' - name: skip if S-waiting-on-bors - runs-on: ubuntu-latest - steps: - - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - # Fetch state and labels of PR - # Or exit successfully if PR does not exist - JSON=$(gh pr view cargo_update --repo $GITHUB_REPOSITORY --json labels,state || exit 0) - STATE=$(echo "$JSON" | jq -r '.state') - WAITING_ON_BORS=$(echo "$JSON" | jq '.labels[] | any(.name == "S-waiting-on-bors"; .)') +# jobs: +# not-waiting-on-bors: +# if: github.repository_owner == 'rust-lang' +# name: skip if S-waiting-on-bors +# runs-on: ubuntu-latest +# steps: +# - env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# run: | +# # Fetch state and labels of PR +# # Or exit successfully if PR does not exist +# JSON=$(gh pr view cargo_update --repo $GITHUB_REPOSITORY --json labels,state || exit 0) +# STATE=$(echo "$JSON" | jq -r '.state') +# WAITING_ON_BORS=$(echo "$JSON" | jq '.labels[] | any(.name == "S-waiting-on-bors"; .)') - # Exit with error if open and S-waiting-on-bors - if [[ "$STATE" == "OPEN" && "$WAITING_ON_BORS" == "true" ]]; then - exit 1 - fi +# # Exit with error if open and S-waiting-on-bors +# if [[ "$STATE" == "OPEN" && "$WAITING_ON_BORS" == "true" ]]; then +# exit 1 +# fi - update: - if: github.repository_owner == 'rust-lang' - name: update dependencies - needs: not-waiting-on-bors - runs-on: ubuntu-latest - steps: - - name: checkout the source code - uses: actions/checkout@v4 - with: - submodules: recursive - - name: install the bootstrap toolchain - run: | - # Extract the stage0 version - TOOLCHAIN=$(jq -r '.compiler | {version,date} | join("-")' -- src/stage0.json) - # Install and set as default - rustup toolchain install --no-self-update --profile minimal $TOOLCHAIN - rustup default $TOOLCHAIN +# update: +# if: github.repository_owner == 'rust-lang' +# name: update dependencies +# needs: not-waiting-on-bors +# runs-on: ubuntu-latest +# steps: +# - name: checkout the source code +# uses: actions/checkout@v4 +# with: +# submodules: recursive +# - name: install the bootstrap toolchain +# run: | +# # Extract the stage0 version +# TOOLCHAIN=$(jq -r '.compiler | {version,date} | join("-")' -- src/stage0.json) +# # Install and set as default +# rustup toolchain install --no-self-update --profile minimal $TOOLCHAIN +# rustup default $TOOLCHAIN - - name: cargo update - # Remove first line that always just says "Updating crates.io index" - run: cargo update 2>&1 | sed '/crates.io index/d' | tee -a cargo_update.log - - name: upload Cargo.lock artifact for use in PR - uses: actions/upload-artifact@v3 - with: - name: Cargo-lock - path: Cargo.lock - retention-days: 1 - - name: upload cargo-update log artifact for use in PR - uses: actions/upload-artifact@v3 - with: - name: cargo-updates - path: cargo_update.log - retention-days: 1 +# - name: cargo update +# # Remove first line that always just says "Updating crates.io index" +# run: cargo update 2>&1 | sed '/crates.io index/d' | tee -a cargo_update.log +# - name: upload Cargo.lock artifact for use in PR +# uses: actions/upload-artifact@v3 +# with: +# name: Cargo-lock +# path: Cargo.lock +# retention-days: 1 +# - name: upload cargo-update log artifact for use in PR +# uses: actions/upload-artifact@v3 +# with: +# name: cargo-updates +# path: cargo_update.log +# retention-days: 1 - pr: - if: github.repository_owner == 'rust-lang' - name: amend PR - needs: update - runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write - steps: - - name: checkout the source code - uses: actions/checkout@v4 +# pr: +# if: github.repository_owner == 'rust-lang' +# name: amend PR +# needs: update +# runs-on: ubuntu-latest +# permissions: +# contents: write +# pull-requests: write +# steps: +# - name: checkout the source code +# uses: actions/checkout@v4 - - name: download Cargo.lock from update job - uses: actions/download-artifact@v3 - with: - name: Cargo-lock - - name: download cargo-update log from update job - uses: actions/download-artifact@v3 - with: - name: cargo-updates +# - name: download Cargo.lock from update job +# uses: actions/download-artifact@v3 +# with: +# name: Cargo-lock +# - name: download cargo-update log from update job +# uses: actions/download-artifact@v3 +# with: +# name: cargo-updates - - name: craft PR body and commit message - run: | - echo "${COMMIT_MESSAGE}" > commit.txt - cat cargo_update.log >> commit.txt +# - name: craft PR body and commit message +# run: | +# echo "${COMMIT_MESSAGE}" > commit.txt +# cat cargo_update.log >> commit.txt - echo "${PR_MESSAGE}" > body.md - echo '```txt' >> body.md - cat cargo_update.log >> body.md - echo '```' >> body.md +# echo "${PR_MESSAGE}" > body.md +# echo '```txt' >> body.md +# cat cargo_update.log >> body.md +# echo '```' >> body.md - - name: commit - run: | - git config user.name github-actions - git config user.email github-actions@github.com - git switch --force-create cargo_update - git add ./Cargo.lock - git commit --no-verify --file=commit.txt +# - name: commit +# run: | +# git config user.name github-actions +# git config user.email github-actions@github.com +# git switch --force-create cargo_update +# git add ./Cargo.lock +# git commit --no-verify --file=commit.txt - - name: push - run: git push --no-verify --force --set-upstream origin cargo_update +# - name: push +# run: git push --no-verify --force --set-upstream origin cargo_update - - name: edit existing open pull request - id: edit - # Don't fail job if we need to open new PR - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - # Exit with error if PR is closed - STATE=$(gh pr view cargo_update --repo $GITHUB_REPOSITORY --json state --jq '.state') - if [[ "$STATE" != "OPEN" ]]; then - exit 1 - fi +# - name: edit existing open pull request +# id: edit +# # Don't fail job if we need to open new PR +# continue-on-error: true +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# run: | +# # Exit with error if PR is closed +# STATE=$(gh pr view cargo_update --repo $GITHUB_REPOSITORY --json state --jq '.state') +# if [[ "$STATE" != "OPEN" ]]; then +# exit 1 +# fi - gh pr edit cargo_update --title "${PR_TITLE}" --body-file body.md --repo $GITHUB_REPOSITORY +# gh pr edit cargo_update --title "${PR_TITLE}" --body-file body.md --repo $GITHUB_REPOSITORY - - name: open new pull request - # Only run if there wasn't an existing PR - if: steps.edit.outcome != 'success' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh pr create --title "${PR_TITLE}" --body-file body.md --repo $GITHUB_REPOSITORY +# - name: open new pull request +# # Only run if there wasn't an existing PR +# if: steps.edit.outcome != 'success' +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# run: gh pr create --title "${PR_TITLE}" --body-file body.md --repo $GITHUB_REPOSITORY diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000000..306341fffa7b --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,79 @@ +name: Release + +on: + push: + branches: [ succinct ] + pull_request: + branches: [ succinct ] + workflow_call: + workflow_dispatch: + +jobs: + build: + runs-on: [buildjet-32vcpu-ubuntu-2204] + steps: + - name: Set up git private repo access + run: | + git config --global url."https://${{ secrets.PRIVATE_PULL_TOKEN }}@github.com".insteadOf ssh://git@github.com + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: Install ninja and cmake + uses: lukka/get-cmake@v3.27.4 + + - name: Check out succinctlabs/vm + uses: actions/checkout@v3 + with: + repository: succinctlabs/vm + path: vm + ref: john/cargo-succinct-build-toolchain + token: ${{ secrets.PRIVATE_PULL_TOKEN }} + + - name: Install cargo prove + run: cargo install --locked --path . + working-directory: vm/cli + + - name: Build toolchain + run: GITHUB_ACTIONS=false GITHUB_ACCESS_TOKEN=${{ secrets.PRIVATE_PULL_TOKEN }} cargo prove build-toolchain + + - name: Archive build output + uses: actions/upload-artifact@v3 + with: + name: rust-toolchain-x86_64-unknown-linux-gnu + path: | + rust/build/x86_64-unknown-linux-gnu/stage2 + !rust/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/src + !rust/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/rustc-src + + release: + needs: build + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + path: artifacts + - name: Compress artifacts + shell: bash + run: | + ls -lha ./artifacts + mkdir assets + for DIR in $(ls ./artifacts); do + tar czf "assets/$DIR.tar.gz" -C "artifacts/$DIR" . + done + ls -lha ./assets + - name: Create release + env: + GITHUB_TOKEN: ${{ secrets.PRIVATE_PULL_TOKEN }} + run: | + echo "Installing gh CLI..." + curl -L https://github.com/cli/cli/releases/download/v2.17.0/gh_2.17.0_linux_amd64.tar.gz | \ + tar xvz --strip-components=2 --exclude=man + chmod +x ./gh + ./gh release create --repo "$GITHUB_REPOSITORY" "$GITHUB_REF_NAME" ./assets/* || \ + ./gh release upload --repo "$GITHUB_REPOSITORY" "$GITHUB_REF_NAME" ./assets/* \ No newline at end of file diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs index 884bd23e8cce..1befd26022b6 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs @@ -1598,6 +1598,7 @@ supported_targets! { ("riscv32i-unknown-none-elf", riscv32i_unknown_none_elf), ("riscv32im-risc0-zkvm-elf", riscv32im_risc0_zkvm_elf), + ("riscv32im-succinct-zkvm-elf", riscv32im_succinct_zkvm_elf), ("riscv32im-unknown-none-elf", riscv32im_unknown_none_elf), ("riscv32imc-unknown-none-elf", riscv32imc_unknown_none_elf), ("riscv32imc-esp-espidf", riscv32imc_esp_espidf), diff --git a/compiler/rustc_target/src/spec/targets/riscv32im_succinct_zkvm_elf.rs b/compiler/rustc_target/src/spec/targets/riscv32im_succinct_zkvm_elf.rs new file mode 100644 index 000000000000..be2ef01f48ad --- /dev/null +++ b/compiler/rustc_target/src/spec/targets/riscv32im_succinct_zkvm_elf.rs @@ -0,0 +1,36 @@ +use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel}; +use crate::spec::{Target, TargetOptions}; + +pub fn target() -> Target { + Target { + data_layout: "e-m:e-p:32:32-i64:64-n32-S128".into(), + llvm_target: "riscv32".into(), + pointer_width: 32, + arch: "riscv32".into(), + + options: TargetOptions { + os: "zkvm".into(), + vendor: "succinct".into(), + linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes), + linker: Some("rust-lld".into()), + cpu: "generic-rv32".into(), + + // Some crates (*cough* crossbeam) assume you have 64 bit + // atomics if the target name is not in a hardcoded list. + // Since zkvm is singlethreaded and all operations are + // atomic, I guess we can just say we support 64-bit + // atomics. + max_atomic_width: Some(64), + atomic_cas: true, + + features: "+m".into(), + executables: true, + panic_strategy: PanicStrategy::Abort, + relocation_model: RelocModel::Static, + emit_debug_gdb_scripts: false, + eh_frame_header: false, + singlethread: true, + ..Default::default() + }, + } +} diff --git a/library/std/src/sys/pal/zkvm/args.rs b/library/std/src/sys/pal/zkvm/args.rs index 7753cf63840e..20df7616f4ae 100644 --- a/library/std/src/sys/pal/zkvm/args.rs +++ b/library/std/src/sys/pal/zkvm/args.rs @@ -33,7 +33,7 @@ impl Args { // "os_str". let arg_bytes: &[u8] = unsafe { crate::slice::from_raw_parts(words.cast() as *const u8, arg_len) }; - OsString::from_inner(super::os_str::Buf { inner: arg_bytes.to_vec() }) + OsString::from_inner(crate::sys::os_str::Buf { inner: arg_bytes.to_vec() }) } } diff --git a/library/std/src/sys/pal/zkvm/mod.rs b/library/std/src/sys/pal/zkvm/mod.rs index 7f221dc4fd98..ebdcb6abbdbc 100644 --- a/library/std/src/sys/pal/zkvm/mod.rs +++ b/library/std/src/sys/pal/zkvm/mod.rs @@ -12,8 +12,6 @@ const WORD_SIZE: usize = core::mem::size_of::(); pub mod alloc; #[path = "../zkvm/args.rs"] pub mod args; -#[path = "../unix/cmath.rs"] -pub mod cmath; pub mod env; #[path = "../unsupported/fs.rs"] pub mod fs; @@ -24,8 +22,6 @@ pub mod net; #[path = "../unsupported/once.rs"] pub mod once; pub mod os; -#[path = "../unix/os_str.rs"] -pub mod os_str; #[path = "../unix/path.rs"] pub mod path; #[path = "../unsupported/pipe.rs"] diff --git a/library/std/src/sys/pal/zkvm/os.rs b/library/std/src/sys/pal/zkvm/os.rs index d8739ee38246..4f3b43b3e86c 100644 --- a/library/std/src/sys/pal/zkvm/os.rs +++ b/library/std/src/sys/pal/zkvm/os.rs @@ -111,7 +111,7 @@ pub fn getenv(varname: &OsStr) -> Option { // reimplement "os_str" instead of just using the generic unix // "os_str". let u8s: &[u8] = unsafe { crate::slice::from_raw_parts(words.cast() as *const u8, nbytes) }; - Some(OsString::from_inner(super::os_str::Buf { inner: u8s.to_vec() })) + Some(OsString::from_inner(crate::sys::os_str::Buf { inner: u8s.to_vec() })) } pub fn setenv(_: &OsStr, _: &OsStr) -> io::Result<()> { diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs index 1336abf6c7ab..b13ce19ac832 100644 --- a/src/bootstrap/src/lib.rs +++ b/src/bootstrap/src/lib.rs @@ -94,6 +94,8 @@ const EXTRA_CHECK_CFGS: &[(Option, &str, Option<&[&'static str]>)] = &[ (Some(Mode::Std), "target_os", Some(&["zkvm"])), // #[cfg(bootstrap)] risc0 (Some(Mode::Std), "target_vendor", Some(&["risc0"])), + // #[cfg(bootstrap)] succinct + (Some(Mode::Std), "target_vendor", Some(&["succinct"])), (Some(Mode::Std), "target_arch", Some(&["spirv", "nvptx", "xtensa"])), /* Extra names used by dependencies */ // FIXME: Used by serde_json, but we should not be triggering on external dependencies. diff --git a/src/doc/rustc/src/SUMMARY.md b/src/doc/rustc/src/SUMMARY.md index 1998b008dc81..036b5bfcec99 100644 --- a/src/doc/rustc/src/SUMMARY.md +++ b/src/doc/rustc/src/SUMMARY.md @@ -48,6 +48,7 @@ - [nvptx64-nvidia-cuda](platform-support/nvptx64-nvidia-cuda.md) - [powerpc64-ibm-aix](platform-support/aix.md) - [riscv32im-risc0-zkvm-elf](platform-support/riscv32im-risc0-zkvm-elf.md) + - [riscv32im-succinct-zkvm-elf](platform-support/riscv32im-succinct-zkvm-elf.md) - [riscv32imac-unknown-xous-elf](platform-support/riscv32imac-unknown-xous-elf.md) - [riscv32*-unknown-none-elf](platform-support/riscv32imac-unknown-none-elf.md) - [sparc-unknown-none-elf](./platform-support/sparc-unknown-none-elf.md) diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index f648a60b6c48..0a8374c4b6bd 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -339,6 +339,7 @@ target | std | host | notes `riscv32gc-unknown-linux-gnu` | | | RISC-V Linux (kernel 5.4, glibc 2.33) `riscv32gc-unknown-linux-musl` | | | RISC-V Linux (kernel 5.4, musl + RISCV32 support patches) [`riscv32im-risc0-zkvm-elf`](platform-support/riscv32im-risc0-zkvm-elf.md) | ? | | RISC Zero's zero-knowledge Virtual Machine (RV32IM ISA) +[`riscv32im-succinct-zkvm-elf`](platform-support/riscv32im-succinct-zkvm-elf.md) | ? | | Succinct's zero-knowledge Virtual Machine (RV32IM ISA) [`riscv32imac-unknown-xous-elf`](platform-support/riscv32imac-unknown-xous-elf.md) | ? | | RISC-V Xous (RV32IMAC ISA) [`riscv32imc-esp-espidf`](platform-support/esp-idf.md) | ✓ | | RISC-V ESP-IDF [`riscv32imac-esp-espidf`](platform-support/esp-idf.md) | ✓ | | RISC-V ESP-IDF diff --git a/src/doc/rustc/src/platform-support/riscv32im-succinct-zkvm-elf.md b/src/doc/rustc/src/platform-support/riscv32im-succinct-zkvm-elf.md new file mode 100644 index 000000000000..bf3ec71aaa5f --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv32im-succinct-zkvm-elf.md @@ -0,0 +1,3 @@ +# `riscv32im-succinct-zkvm-elf` + +TODO \ No newline at end of file diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs index 1ef8cf7de3cd..0091c50a1b38 100644 --- a/src/tools/build-manifest/src/main.rs +++ b/src/tools/build-manifest/src/main.rs @@ -122,6 +122,7 @@ static TARGETS: &[&str] = &[ "powerpc64le-unknown-linux-gnu", "riscv32i-unknown-none-elf", "riscv32im-risc0-zkvm-elf", + "riscv32im-succinct-zkvm-elf", "riscv32im-unknown-none-elf", "riscv32imc-unknown-none-elf", "riscv32imac-unknown-none-elf", diff --git a/tests/assembly/targets/targets-elf.rs b/tests/assembly/targets/targets-elf.rs index 6eec05e85ac7..ba8ab73c9342 100644 --- a/tests/assembly/targets/targets-elf.rs +++ b/tests/assembly/targets/targets-elf.rs @@ -405,6 +405,9 @@ // revisions: riscv32im_risc0_zkvm_elf // [riscv32im_risc0_zkvm_elf] compile-flags: --target riscv32im-risc0-zkvm-elf // [riscv32im_risc0_zkvm_elf] needs-llvm-components: riscv +// revisions: riscv32im_succinct_zkvm_elf +// [riscv32im_succinct_zkvm_elf] compile-flags: --target riscv32im-succinct-zkvm-elf +// [riscv32im_succinct_zkvm_elf] needs-llvm-components: riscv // revisions: riscv32im_unknown_none_elf // [riscv32im_unknown_none_elf] compile-flags: --target riscv32im-unknown-none-elf // [riscv32im_unknown_none_elf] needs-llvm-components: riscv