bors: Make style_check unblocking #76
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 (bors) | ||
on: push | ||
permissions: {} | ||
jobs: | ||
docker_linux_tier1: | ||
permissions: | ||
actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) | ||
contents: read # to fetch code (actions/checkout) | ||
name: Docker Linux Tier1 | ||
runs-on: ubuntu-22.04 | ||
needs: check_cfg | ||
Check failure on line 14 in .github/workflows/bors.yml GitHub Actions / CI (bors)Invalid workflow file
|
||
strategy: | ||
fail-fast: true | ||
matrix: | ||
target: [ | ||
i686-unknown-linux-gnu, | ||
x86_64-unknown-linux-gnu, | ||
] | ||
steps: | ||
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master | ||
with: | ||
github_token: "${{ secrets.GITHUB_TOKEN }}" | ||
- uses: actions/checkout@v3 | ||
- name: Setup Rust toolchain | ||
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh | ||
- name: Execute run-docker.sh | ||
run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} | ||
macos: | ||
permissions: | ||
actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) | ||
contents: read # to fetch code (actions/checkout) | ||
name: macOS | ||
runs-on: macos-12 | ||
needs: build_channels_linux | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
target: [ | ||
x86_64-apple-darwin, | ||
] | ||
steps: | ||
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master | ||
with: | ||
github_token: "${{ secrets.GITHUB_TOKEN }}" | ||
- uses: actions/checkout@v3 | ||
- name: Setup Rust toolchain | ||
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh | ||
- name: Execute run.sh | ||
run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} | ||
windows: | ||
permissions: | ||
actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) | ||
contents: read # to fetch code (actions/checkout) | ||
name: Windows | ||
runs-on: windows-2022 | ||
needs: build_channels_linux | ||
env: | ||
OS: windows | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
include: | ||
- target: x86_64-pc-windows-gnu | ||
env: | ||
ARCH_BITS: 64 | ||
ARCH: x86_64 | ||
- target: x86_64-pc-windows-msvc | ||
# Disabled because broken: | ||
# https://github.com/rust-lang/libc/issues/1592 | ||
#- target: i686-pc-windows-gnu | ||
# env: | ||
# ARCH_BITS: 32 | ||
# ARCH: i686 | ||
- target: i686-pc-windows-msvc | ||
steps: | ||
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master | ||
with: | ||
github_token: "${{ secrets.GITHUB_TOKEN }}" | ||
- uses: actions/checkout@v3 | ||
- name: Self-update rustup | ||
run: rustup self update | ||
shell: bash | ||
- name: Setup Rust toolchain | ||
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh | ||
shell: bash | ||
- name: Execute run.sh | ||
run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} | ||
shell: bash | ||
style_check: | ||
permissions: | ||
actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) | ||
contents: read # to fetch code (actions/checkout) | ||
name: Style check | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master | ||
with: | ||
github_token: "${{ secrets.GITHUB_TOKEN }}" | ||
- uses: actions/checkout@v3 | ||
- name: Setup Rust toolchain | ||
run: sh ./ci/install-rust.sh | ||
- name: Check style | ||
run: sh ci/style.sh | ||
docker_linux_tier2: | ||
permissions: | ||
actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) | ||
contents: read # to fetch code (actions/checkout) | ||
name: Docker Linux Tier2 | ||
needs: check_cfg | ||
runs-on: ubuntu-22.04 | ||
strategy: | ||
fail-fast: true | ||
max-parallel: 12 | ||
matrix: | ||
target: [ | ||
# FIXME: Mysterious failures in CI, see | ||
# https://github.com/rust-lang/libc/issues/2081 | ||
# aarch64-linux-android, | ||
aarch64-unknown-linux-gnu, | ||
aarch64-unknown-linux-musl, | ||
arm-linux-androideabi, | ||
arm-unknown-linux-gnueabihf, | ||
arm-unknown-linux-musleabihf, | ||
asmjs-unknown-emscripten, | ||
i686-linux-android, | ||
i686-unknown-linux-musl, | ||
mips-unknown-linux-gnu, | ||
mips-unknown-linux-musl, | ||
# FIXME: Somehow failed on CI | ||
# https://github.com/rust-lang/libc/runs/1659882216 | ||
# mips64-unknown-linux-gnuabi64, | ||
# mips64el-unknown-linux-gnuabi64, | ||
mipsel-unknown-linux-musl, | ||
powerpc-unknown-linux-gnu, | ||
powerpc64-unknown-linux-gnu, | ||
powerpc64le-unknown-linux-gnu, | ||
s390x-unknown-linux-gnu, | ||
riscv64gc-unknown-linux-gnu, | ||
# FIXME: A recent nightly causes a linker failure: | ||
# https://github.com/rust-lang/rust/issues/76679 | ||
# See this comment for more details: | ||
# https://github.com/rust-lang/libc/pull/2225#issuecomment-880696737 | ||
#wasm32-wasi, | ||
sparc64-unknown-linux-gnu, | ||
wasm32-unknown-emscripten, | ||
x86_64-linux-android, | ||
x86_64-unknown-linux-gnux32, | ||
x86_64-unknown-linux-musl, | ||
# FIXME: It seems some items in `src/unix/mod.rs` | ||
# aren't defined on redox actually. | ||
# x86_64-unknown-redox, | ||
] | ||
steps: | ||
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master | ||
with: | ||
github_token: "${{ secrets.GITHUB_TOKEN }}" | ||
- uses: actions/checkout@v3 | ||
- name: Setup Rust toolchain | ||
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh | ||
- name: Execute run-docker.sh | ||
run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} | ||
# These targets are tier 3 or otherwise need to have CI build std via -Zbuild-std. | ||
# Because of this, only the nightly compiler can be used on these targets. | ||
docker_linux_build_std: | ||
permissions: | ||
actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) | ||
contents: read # to fetch code (actions/checkout) | ||
if: ${{ false }} # This is currently broken | ||
name: Docker Linux Build-Std Targets | ||
needs: docker_linux_tier1 | ||
runs-on: ubuntu-22.04 | ||
strategy: | ||
fail-fast: true | ||
max-parallel: 12 | ||
matrix: | ||
target: [ | ||
armv7-unknown-linux-uclibceabihf | ||
] | ||
steps: | ||
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master | ||
with: | ||
github_token: "${{ secrets.GITHUB_TOKEN }}" | ||
- uses: actions/checkout@v3 | ||
- name: Setup Rust toolchain | ||
run: TOOLCHAIN=nightly INSTALL_RUST_SRC=1 sh ./ci/install-rust.sh | ||
- name: Execute run-docker.sh | ||
run: LIBC_CI=1 TOOLCHAIN=nightly LIBC_CI_ZBUILD_STD=1 sh ./ci/run-docker.sh ${{ matrix.target }} | ||
# devkitpro's pacman needs to be connected from Docker. | ||
docker_switch: | ||
permissions: | ||
actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) | ||
contents: read # to fetch code (actions/checkout) | ||
name: Docker Switch | ||
needs: docker_linux_tier1 | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master | ||
with: | ||
github_token: "${{ secrets.GITHUB_TOKEN }}" | ||
- uses: actions/checkout@v3 | ||
- name: Setup Rust toolchain | ||
run: sh ./ci/install-rust.sh | ||
- name: Execute run-docker.sh | ||
run: LIBC_CI=1 sh ./ci/run-docker.sh switch | ||
build_channels_linux: | ||
permissions: | ||
actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) | ||
contents: read # to fetch code (actions/checkout) | ||
name: Build Channels Linux | ||
needs: check_cfg | ||
runs-on: ubuntu-22.04 | ||
env: | ||
OS: linux | ||
strategy: | ||
fail-fast: false | ||
max-parallel: 5 | ||
matrix: | ||
toolchain: [ | ||
stable, | ||
beta, | ||
nightly, | ||
# 1.13.0, | ||
1.19.0, | ||
1.24.0, | ||
1.25.0, | ||
1.30.0, | ||
] | ||
steps: | ||
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master | ||
with: | ||
github_token: "${{ secrets.GITHUB_TOKEN }}" | ||
- uses: actions/checkout@v3 | ||
- name: Setup Rust toolchain | ||
run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh | ||
- name: Execute build.sh | ||
run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh | ||
build_channels_macos: | ||
permissions: | ||
contents: read # to fetch code (actions/checkout) | ||
name: Build Channels macOS | ||
needs: macos | ||
# FIXME: Use macOS 11 for now as CI failed with a linker error on macOS 12 image: | ||
# ld: in /.../x86_64-apple-darwin/lib/libstd-a4729905.rlib(rust.metadata.bin), | ||
# archive member 'rust.metadata.bin' with length 2958149 is not mach-o or llvm bitcode file '/.../x86_64-apple-darwin/lib/libstd-a4729905.rlib' | ||
# Possibly related: https://github.com/actions/runner-images/issues/6350 | ||
env: | ||
OS: macos | ||
strategy: | ||
fail-fast: false | ||
max-parallel: 4 | ||
matrix: | ||
toolchain: [ | ||
stable, | ||
beta, | ||
nightly, | ||
1.13.0, | ||
1.19.0, | ||
1.24.0, | ||
1.25.0, | ||
1.30.0, | ||
] | ||
target: | ||
- { toolchain: stable, os: macos-12 } | ||
- { toolchain: beta, os: macos-12 } | ||
- { toolchain: nightly, os: macos-12 } | ||
# Use macOS 11 for older toolchains as newer Xcode donesn't work well. | ||
# - { toolchain: 1.13.0, os: macos-11 } | ||
- { toolchain: 1.19.0, os: macos-11 } | ||
- { toolchain: 1.24.0, os: macos-11 } | ||
- { toolchain: 1.25.0, os: macos-11 } | ||
- { toolchain: 1.30.0, os: macos-11 } | ||
runs-on: ${{ matrix.target.os }} | ||
steps: | ||
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master | ||
with: | ||
github_token: "${{ secrets.GITHUB_TOKEN }}" | ||
- uses: actions/checkout@v3 | ||
- name: Setup Rust toolchain | ||
run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh | ||
- name: Execute build.sh | ||
run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh | ||
build_channels_windows: | ||
permissions: | ||
contents: read # to fetch code (actions/checkout) | ||
name: Build Channels Windows | ||
runs-on: windows-2022 | ||
needs: windows | ||
env: | ||
OS: windows | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
toolchain: [ | ||
1.19.0, | ||
1.24.0, | ||
1.25.0, | ||
1.30.0, | ||
stable, | ||
] | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Self-update rustup | ||
run: rustup self update | ||
shell: bash | ||
- name: Execute build.sh | ||
run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} WIN_TARGET=${{ matrix.target }} sh ./ci/build.sh | ||
shell: bash | ||
semver_linux: | ||
if: ${{ false }} # This is currently broken | ||
name: Semver Linux | ||
runs-on: ubuntu-22.04 | ||
continue-on-error: true | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Setup Rust toolchain | ||
# Should update the semverver revision in semver.sh if we touch nightly ver. | ||
run: TOOLCHAIN=nightly-2022-05-23 sh ./ci/install-rust.sh | ||
- name: Check breaking changes | ||
run: sh ci/semver.sh linux | ||
semver_macos: | ||
if: ${{ false }} # This is currently broken | ||
name: Semver macOS | ||
runs-on: macos-12 | ||
continue-on-error: true | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Setup Rust toolchain | ||
# Pin nightly version to make semverver compilable. | ||
run: TOOLCHAIN=nightly-2022-05-23 sh ./ci/install-rust.sh | ||
- name: Check breaking changes | ||
run: sh ci/semver.sh macos | ||
docs: | ||
permissions: | ||
actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) | ||
contents: read # to fetch code (actions/checkout) | ||
name: Generate documentation | ||
runs-on: ubuntu-22.04 | ||
needs: docker_linux_tier2 | ||
steps: | ||
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master | ||
with: | ||
github_token: "${{ secrets.GITHUB_TOKEN }}" | ||
- uses: actions/checkout@v3 | ||
- name: Setup Rust toolchain | ||
run: sh ./ci/install-rust.sh | ||
- name: Generate documentation | ||
run: LIBC_CI=1 sh ci/dox.sh | ||
# These jobs doesn't actually test anything, but they're only used to tell | ||
# bors the build completed, as there is no practical way to detect when a | ||
# workflow is successful listening to webhooks only. | ||
# | ||
# ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB! | ||
end_success: | ||
name: bors build finished | ||
if: github.event.pusher.name == 'bors' && success() | ||
runs-on: ubuntu-22.04 | ||
needs: [ | ||
docker_linux_tier1, | ||
docker_linux_tier2, | ||
#docker_linux_build_std, | ||
macos, | ||
windows, | ||
style_check, | ||
docker_switch, | ||
build_channels_linux, | ||
build_channels_macos, | ||
build_channels_windows, | ||
docs, | ||
] | ||
steps: | ||
- name: Mark the job as successful | ||
run: exit 0 | ||
end_failure: | ||
name: bors build finished | ||
if: github.event.pusher.name == 'bors' && (failure() || cancelled()) | ||
runs-on: ubuntu-22.04 | ||
needs: [ | ||
docker_linux_tier1, | ||
docker_linux_tier2, | ||
#docker_linux_build_std, | ||
macos, | ||
windows, | ||
style_check, | ||
docker_switch, | ||
build_channels_linux, | ||
build_channels_macos, | ||
build_channels_windows, | ||
docs, | ||
] | ||
steps: | ||
- name: Mark the job as a failure | ||
run: exit 1 |