323 lines
9.2 KiB
YAML
323 lines
9.2 KiB
YAML
name: CI (bors)
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- auto-libc
|
|
- try
|
|
|
|
jobs:
|
|
docker_linux_tier1:
|
|
name: Docker Linux Tier1
|
|
runs-on: ubuntu-18.04
|
|
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@v2
|
|
- 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:
|
|
name: macOS
|
|
runs-on: macos-10.15
|
|
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@v2
|
|
- 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:
|
|
name: Windows
|
|
runs-on: windows-2019
|
|
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@v2
|
|
- 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:
|
|
name: Style check
|
|
runs-on: ubuntu-18.04
|
|
strategy:
|
|
fail-fast: true
|
|
steps:
|
|
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
|
|
with:
|
|
github_token: "${{ secrets.GITHUB_TOKEN }}"
|
|
- uses: actions/checkout@v2
|
|
- name: Setup Rust toolchain
|
|
run: sh ./ci/install-rust.sh
|
|
- name: Check style
|
|
run: sh ci/style.sh
|
|
|
|
docker_linux_tier2:
|
|
name: Docker Linux Tier2
|
|
needs: [docker_linux_tier1, style_check]
|
|
runs-on: ubuntu-18.04
|
|
strategy:
|
|
fail-fast: true
|
|
max-parallel: 12
|
|
matrix:
|
|
target: [
|
|
aarch64-linux-android,
|
|
aarch64-unknown-linux-gnu,
|
|
aarch64-unknown-linux-musl,
|
|
arm-linux-androideabi,
|
|
arm-unknown-linux-gnueabihf,
|
|
arm-unknown-linux-musleabihf,
|
|
# FIXME: Disabled because currently broken, see:
|
|
# https://github.com/rust-lang/libc/issues/1591
|
|
# asmjs-unknown-emscripten,
|
|
# FIXME: Disabled due to https://github.com/rust-lang/libc/issues/1765
|
|
# i686-linux-android,
|
|
i686-unknown-linux-musl,
|
|
mips-unknown-linux-gnu,
|
|
mips-unknown-linux-musl,
|
|
mips64-unknown-linux-gnuabi64,
|
|
mips64el-unknown-linux-gnuabi64,
|
|
mipsel-unknown-linux-musl,
|
|
# FIXME: Figure out why this is disabled.
|
|
#powerpc-unknown-linux-gnu,
|
|
powerpc64-unknown-linux-gnu,
|
|
powerpc64le-unknown-linux-gnu,
|
|
s390x-unknown-linux-gnu,
|
|
riscv64gc-unknown-linux-gnu,
|
|
# FIXME: Figure out why this is disabled.
|
|
#wasm32-wasi,
|
|
sparc64-unknown-linux-gnu,
|
|
wasm32-unknown-emscripten,
|
|
x86_64-linux-android,
|
|
x86_64-unknown-linux-gnux32,
|
|
x86_64-unknown-linux-musl,
|
|
]
|
|
steps:
|
|
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
|
|
with:
|
|
github_token: "${{ secrets.GITHUB_TOKEN }}"
|
|
- uses: actions/checkout@v2
|
|
- 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 }}
|
|
|
|
# devkitpro's pacman needs to be connected from Docker.
|
|
docker_switch:
|
|
name: Docker Switch
|
|
needs: [docker_linux_tier1, style_check]
|
|
runs-on: ubuntu-18.04
|
|
strategy:
|
|
fail-fast: true
|
|
steps:
|
|
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
|
|
with:
|
|
github_token: "${{ secrets.GITHUB_TOKEN }}"
|
|
- uses: actions/checkout@v2
|
|
- 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:
|
|
name: Build Channels Linux
|
|
needs: docker_linux_tier2
|
|
runs-on: ubuntu-18.04
|
|
env:
|
|
OS: linux
|
|
strategy:
|
|
fail-fast: true
|
|
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@v2
|
|
- 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:
|
|
name: Build Channels macOS
|
|
needs: macos
|
|
runs-on: macos-10.15
|
|
env:
|
|
OS: macos
|
|
strategy:
|
|
fail-fast: true
|
|
max-parallel: 4
|
|
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@v2
|
|
- 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
|
|
|
|
semver_linux:
|
|
name: Semver Linux
|
|
needs: build_channels_linux
|
|
runs-on: ubuntu-18.04
|
|
strategy:
|
|
fail-fast: true
|
|
steps:
|
|
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
|
|
with:
|
|
github_token: "${{ secrets.GITHUB_TOKEN }}"
|
|
- uses: actions/checkout@v2
|
|
- name: Setup Rust toolchain
|
|
# FIXME: Pin nightly version to make semverver compilable.
|
|
run: TOOLCHAIN=nightly-2020-06-18 sh ./ci/install-rust.sh
|
|
- name: Check breaking changes
|
|
run: sh ci/semver.sh linux
|
|
|
|
semver_macos:
|
|
name: Semver macOS
|
|
needs: build_channels_macos
|
|
runs-on: macos-10.15
|
|
strategy:
|
|
fail-fast: true
|
|
steps:
|
|
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
|
|
with:
|
|
github_token: "${{ secrets.GITHUB_TOKEN }}"
|
|
- uses: actions/checkout@v2
|
|
- name: Setup Rust toolchain
|
|
# FIXME: Pin nightly version to make semverver compilable.
|
|
run: TOOLCHAIN=nightly-2020-06-18 sh ./ci/install-rust.sh
|
|
- name: Check breaking changes
|
|
run: sh ci/semver.sh macos
|
|
|
|
docs:
|
|
name: Generate documentation
|
|
runs-on: ubuntu-18.04
|
|
needs: docker_linux_tier2
|
|
strategy:
|
|
fail-fast: true
|
|
steps:
|
|
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
|
|
with:
|
|
github_token: "${{ secrets.GITHUB_TOKEN }}"
|
|
- uses: actions/checkout@v2
|
|
- 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-18.04
|
|
needs: [
|
|
docker_linux_tier1,
|
|
docker_linux_tier2,
|
|
macos,
|
|
windows,
|
|
style_check,
|
|
docker_switch,
|
|
build_channels_linux,
|
|
build_channels_macos,
|
|
semver_linux,
|
|
semver_macos,
|
|
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-18.04
|
|
needs: [
|
|
docker_linux_tier1,
|
|
docker_linux_tier2,
|
|
macos,
|
|
windows,
|
|
style_check,
|
|
docker_switch,
|
|
build_channels_linux,
|
|
build_channels_macos,
|
|
semver_linux,
|
|
semver_macos,
|
|
docs,
|
|
]
|
|
|
|
steps:
|
|
- name: Mark the job as a failure
|
|
run: exit 1
|