12add0d91Sopenharmony_ciname: CI (bors)
22add0d91Sopenharmony_ci
32add0d91Sopenharmony_cion:
42add0d91Sopenharmony_ci  push:
52add0d91Sopenharmony_ci    branches:
62add0d91Sopenharmony_ci      - auto-libc
72add0d91Sopenharmony_ci      - try
82add0d91Sopenharmony_ci
92add0d91Sopenharmony_cipermissions: {}
102add0d91Sopenharmony_cijobs:
112add0d91Sopenharmony_ci  docker_linux_tier1:
122add0d91Sopenharmony_ci    permissions:
132add0d91Sopenharmony_ci      actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds)
142add0d91Sopenharmony_ci      contents: read # to fetch code (actions/checkout)
152add0d91Sopenharmony_ci
162add0d91Sopenharmony_ci    name: Docker Linux Tier1
172add0d91Sopenharmony_ci    runs-on: ubuntu-22.04
182add0d91Sopenharmony_ci    strategy:
192add0d91Sopenharmony_ci      fail-fast: true
202add0d91Sopenharmony_ci      matrix:
212add0d91Sopenharmony_ci        target: [
222add0d91Sopenharmony_ci          i686-unknown-linux-gnu,
232add0d91Sopenharmony_ci          x86_64-unknown-linux-gnu,
242add0d91Sopenharmony_ci        ]
252add0d91Sopenharmony_ci    steps:
262add0d91Sopenharmony_ci      - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
272add0d91Sopenharmony_ci        with:
282add0d91Sopenharmony_ci          github_token: "${{ secrets.GITHUB_TOKEN }}"
292add0d91Sopenharmony_ci      - uses: actions/checkout@v3
302add0d91Sopenharmony_ci      - name: Setup Rust toolchain
312add0d91Sopenharmony_ci        run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
322add0d91Sopenharmony_ci      - name: Execute run-docker.sh
332add0d91Sopenharmony_ci        run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }}
342add0d91Sopenharmony_ci
352add0d91Sopenharmony_ci  macos:
362add0d91Sopenharmony_ci    permissions:
372add0d91Sopenharmony_ci      actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds)
382add0d91Sopenharmony_ci      contents: read # to fetch code (actions/checkout)
392add0d91Sopenharmony_ci
402add0d91Sopenharmony_ci    name: macOS
412add0d91Sopenharmony_ci    runs-on: macos-12
422add0d91Sopenharmony_ci    strategy:
432add0d91Sopenharmony_ci      fail-fast: true
442add0d91Sopenharmony_ci      matrix:
452add0d91Sopenharmony_ci        target: [
462add0d91Sopenharmony_ci          x86_64-apple-darwin,
472add0d91Sopenharmony_ci        ]
482add0d91Sopenharmony_ci    steps:
492add0d91Sopenharmony_ci      - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
502add0d91Sopenharmony_ci        with:
512add0d91Sopenharmony_ci          github_token: "${{ secrets.GITHUB_TOKEN }}"
522add0d91Sopenharmony_ci      - uses: actions/checkout@v3
532add0d91Sopenharmony_ci      - name: Setup Rust toolchain
542add0d91Sopenharmony_ci        run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
552add0d91Sopenharmony_ci      - name: Execute run.sh
562add0d91Sopenharmony_ci        run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }}
572add0d91Sopenharmony_ci
582add0d91Sopenharmony_ci  windows:
592add0d91Sopenharmony_ci    permissions:
602add0d91Sopenharmony_ci      actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds)
612add0d91Sopenharmony_ci      contents: read # to fetch code (actions/checkout)
622add0d91Sopenharmony_ci
632add0d91Sopenharmony_ci    name: Windows
642add0d91Sopenharmony_ci    runs-on: windows-2022
652add0d91Sopenharmony_ci    env:
662add0d91Sopenharmony_ci      OS: windows
672add0d91Sopenharmony_ci    strategy:
682add0d91Sopenharmony_ci      fail-fast: true
692add0d91Sopenharmony_ci      matrix:
702add0d91Sopenharmony_ci        include:
712add0d91Sopenharmony_ci          - target: x86_64-pc-windows-gnu
722add0d91Sopenharmony_ci            env:
732add0d91Sopenharmony_ci              ARCH_BITS: 64
742add0d91Sopenharmony_ci              ARCH: x86_64
752add0d91Sopenharmony_ci          - target: x86_64-pc-windows-msvc
762add0d91Sopenharmony_ci          # Disabled because broken:
772add0d91Sopenharmony_ci          #  https://github.com/rust-lang/libc/issues/1592
782add0d91Sopenharmony_ci          #- target: i686-pc-windows-gnu
792add0d91Sopenharmony_ci          #  env:
802add0d91Sopenharmony_ci          #    ARCH_BITS: 32
812add0d91Sopenharmony_ci          #    ARCH: i686
822add0d91Sopenharmony_ci          - target: i686-pc-windows-msvc
832add0d91Sopenharmony_ci    steps:
842add0d91Sopenharmony_ci      - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
852add0d91Sopenharmony_ci        with:
862add0d91Sopenharmony_ci          github_token: "${{ secrets.GITHUB_TOKEN }}"
872add0d91Sopenharmony_ci      - uses: actions/checkout@v3
882add0d91Sopenharmony_ci      - name: Self-update rustup
892add0d91Sopenharmony_ci        run: rustup self update
902add0d91Sopenharmony_ci        shell: bash
912add0d91Sopenharmony_ci      - name: Setup Rust toolchain
922add0d91Sopenharmony_ci        run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
932add0d91Sopenharmony_ci        shell: bash
942add0d91Sopenharmony_ci      - name: Execute run.sh
952add0d91Sopenharmony_ci        run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }}
962add0d91Sopenharmony_ci        shell: bash
972add0d91Sopenharmony_ci
982add0d91Sopenharmony_ci  style_check:
992add0d91Sopenharmony_ci    permissions:
1002add0d91Sopenharmony_ci      actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds)
1012add0d91Sopenharmony_ci      contents: read # to fetch code (actions/checkout)
1022add0d91Sopenharmony_ci
1032add0d91Sopenharmony_ci    name: Style check
1042add0d91Sopenharmony_ci    runs-on: ubuntu-22.04
1052add0d91Sopenharmony_ci    steps:
1062add0d91Sopenharmony_ci      - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
1072add0d91Sopenharmony_ci        with:
1082add0d91Sopenharmony_ci          github_token: "${{ secrets.GITHUB_TOKEN }}"
1092add0d91Sopenharmony_ci      - uses: actions/checkout@v3
1102add0d91Sopenharmony_ci      - name: Setup Rust toolchain
1112add0d91Sopenharmony_ci        run: sh ./ci/install-rust.sh
1122add0d91Sopenharmony_ci      - name: Check style
1132add0d91Sopenharmony_ci        run: sh ci/style.sh
1142add0d91Sopenharmony_ci
1152add0d91Sopenharmony_ci  docker_linux_tier2:
1162add0d91Sopenharmony_ci    permissions:
1172add0d91Sopenharmony_ci      actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds)
1182add0d91Sopenharmony_ci      contents: read # to fetch code (actions/checkout)
1192add0d91Sopenharmony_ci
1202add0d91Sopenharmony_ci    name: Docker Linux Tier2
1212add0d91Sopenharmony_ci    needs: [docker_linux_tier1, style_check]
1222add0d91Sopenharmony_ci    runs-on: ubuntu-22.04
1232add0d91Sopenharmony_ci    strategy:
1242add0d91Sopenharmony_ci      fail-fast: true
1252add0d91Sopenharmony_ci      max-parallel: 12
1262add0d91Sopenharmony_ci      matrix:
1272add0d91Sopenharmony_ci        target: [
1282add0d91Sopenharmony_ci          # FIXME: Mysterious failures in CI, see
1292add0d91Sopenharmony_ci          # https://github.com/rust-lang/libc/issues/2081
1302add0d91Sopenharmony_ci          # aarch64-linux-android,
1312add0d91Sopenharmony_ci          aarch64-unknown-linux-gnu,
1322add0d91Sopenharmony_ci          aarch64-unknown-linux-musl,
1332add0d91Sopenharmony_ci          arm-linux-androideabi,
1342add0d91Sopenharmony_ci          arm-unknown-linux-gnueabihf,
1352add0d91Sopenharmony_ci          arm-unknown-linux-musleabihf,
1362add0d91Sopenharmony_ci          asmjs-unknown-emscripten,
1372add0d91Sopenharmony_ci          i686-linux-android,
1382add0d91Sopenharmony_ci          i686-unknown-linux-musl,
1392add0d91Sopenharmony_ci          mips-unknown-linux-gnu,
1402add0d91Sopenharmony_ci          mips-unknown-linux-musl,
1412add0d91Sopenharmony_ci          # FIXME: Somehow failed on CI
1422add0d91Sopenharmony_ci          # https://github.com/rust-lang/libc/runs/1659882216
1432add0d91Sopenharmony_ci          # mips64-unknown-linux-gnuabi64,
1442add0d91Sopenharmony_ci          # mips64el-unknown-linux-gnuabi64,
1452add0d91Sopenharmony_ci          mipsel-unknown-linux-musl,
1462add0d91Sopenharmony_ci          powerpc-unknown-linux-gnu,
1472add0d91Sopenharmony_ci          powerpc64-unknown-linux-gnu,
1482add0d91Sopenharmony_ci          powerpc64le-unknown-linux-gnu,
1492add0d91Sopenharmony_ci          s390x-unknown-linux-gnu,
1502add0d91Sopenharmony_ci          riscv64gc-unknown-linux-gnu,
1512add0d91Sopenharmony_ci          # FIXME: A recent nightly causes a linker failure:
1522add0d91Sopenharmony_ci          # https://github.com/rust-lang/rust/issues/76679
1532add0d91Sopenharmony_ci          # See this comment for more details:
1542add0d91Sopenharmony_ci          # https://github.com/rust-lang/libc/pull/2225#issuecomment-880696737
1552add0d91Sopenharmony_ci          #wasm32-wasi,
1562add0d91Sopenharmony_ci          sparc64-unknown-linux-gnu,
1572add0d91Sopenharmony_ci          wasm32-unknown-emscripten,
1582add0d91Sopenharmony_ci          x86_64-linux-android,
1592add0d91Sopenharmony_ci          x86_64-unknown-linux-gnux32,
1602add0d91Sopenharmony_ci          x86_64-unknown-linux-musl,
1612add0d91Sopenharmony_ci          # FIXME: It seems some items in `src/unix/mod.rs`
1622add0d91Sopenharmony_ci          # aren't defined on redox actually.
1632add0d91Sopenharmony_ci          # x86_64-unknown-redox,
1642add0d91Sopenharmony_ci        ]
1652add0d91Sopenharmony_ci    steps:
1662add0d91Sopenharmony_ci      - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
1672add0d91Sopenharmony_ci        with:
1682add0d91Sopenharmony_ci          github_token: "${{ secrets.GITHUB_TOKEN }}"
1692add0d91Sopenharmony_ci      - uses: actions/checkout@v3
1702add0d91Sopenharmony_ci      - name: Setup Rust toolchain
1712add0d91Sopenharmony_ci        run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
1722add0d91Sopenharmony_ci      - name: Execute run-docker.sh
1732add0d91Sopenharmony_ci        run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }}
1742add0d91Sopenharmony_ci
1752add0d91Sopenharmony_ci  # These targets are tier 3 or otherwise need to have CI build std via -Zbuild-std.
1762add0d91Sopenharmony_ci  # Because of this, only the nightly compiler can be used on these targets.
1772add0d91Sopenharmony_ci  docker_linux_build_std:
1782add0d91Sopenharmony_ci    permissions:
1792add0d91Sopenharmony_ci      actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds)
1802add0d91Sopenharmony_ci      contents: read # to fetch code (actions/checkout)
1812add0d91Sopenharmony_ci
1822add0d91Sopenharmony_ci    if: ${{ false }} # This is currently broken
1832add0d91Sopenharmony_ci    name: Docker Linux Build-Std Targets
1842add0d91Sopenharmony_ci    needs: [docker_linux_tier1, style_check]
1852add0d91Sopenharmony_ci    runs-on: ubuntu-22.04
1862add0d91Sopenharmony_ci    strategy:
1872add0d91Sopenharmony_ci      fail-fast: true
1882add0d91Sopenharmony_ci      max-parallel: 12
1892add0d91Sopenharmony_ci      matrix:
1902add0d91Sopenharmony_ci        target: [
1912add0d91Sopenharmony_ci          armv7-unknown-linux-uclibceabihf
1922add0d91Sopenharmony_ci        ]
1932add0d91Sopenharmony_ci    steps:
1942add0d91Sopenharmony_ci      - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
1952add0d91Sopenharmony_ci        with:
1962add0d91Sopenharmony_ci          github_token: "${{ secrets.GITHUB_TOKEN }}"
1972add0d91Sopenharmony_ci      - uses: actions/checkout@v3
1982add0d91Sopenharmony_ci      - name: Setup Rust toolchain
1992add0d91Sopenharmony_ci        run: TOOLCHAIN=nightly INSTALL_RUST_SRC=1 sh ./ci/install-rust.sh
2002add0d91Sopenharmony_ci      - name: Execute run-docker.sh
2012add0d91Sopenharmony_ci        run: LIBC_CI=1 TOOLCHAIN=nightly LIBC_CI_ZBUILD_STD=1 sh ./ci/run-docker.sh ${{ matrix.target }}
2022add0d91Sopenharmony_ci
2032add0d91Sopenharmony_ci  # devkitpro's pacman needs to be connected from Docker.
2042add0d91Sopenharmony_ci  docker_switch:
2052add0d91Sopenharmony_ci    permissions:
2062add0d91Sopenharmony_ci      actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds)
2072add0d91Sopenharmony_ci      contents: read # to fetch code (actions/checkout)
2082add0d91Sopenharmony_ci
2092add0d91Sopenharmony_ci    name: Docker Switch
2102add0d91Sopenharmony_ci    needs: [docker_linux_tier1, style_check]
2112add0d91Sopenharmony_ci    runs-on: ubuntu-22.04
2122add0d91Sopenharmony_ci    steps:
2132add0d91Sopenharmony_ci      - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
2142add0d91Sopenharmony_ci        with:
2152add0d91Sopenharmony_ci          github_token: "${{ secrets.GITHUB_TOKEN }}"
2162add0d91Sopenharmony_ci      - uses: actions/checkout@v3
2172add0d91Sopenharmony_ci      - name: Setup Rust toolchain
2182add0d91Sopenharmony_ci        run: sh ./ci/install-rust.sh
2192add0d91Sopenharmony_ci      - name: Execute run-docker.sh
2202add0d91Sopenharmony_ci        run: LIBC_CI=1 sh ./ci/run-docker.sh switch
2212add0d91Sopenharmony_ci
2222add0d91Sopenharmony_ci  build_channels_linux:
2232add0d91Sopenharmony_ci    permissions:
2242add0d91Sopenharmony_ci      actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds)
2252add0d91Sopenharmony_ci      contents: read # to fetch code (actions/checkout)
2262add0d91Sopenharmony_ci
2272add0d91Sopenharmony_ci    name: Build Channels Linux
2282add0d91Sopenharmony_ci    needs: docker_linux_tier2
2292add0d91Sopenharmony_ci    runs-on: ubuntu-22.04
2302add0d91Sopenharmony_ci    env:
2312add0d91Sopenharmony_ci      OS: linux
2322add0d91Sopenharmony_ci    strategy:
2332add0d91Sopenharmony_ci      fail-fast: true
2342add0d91Sopenharmony_ci      max-parallel: 5
2352add0d91Sopenharmony_ci      matrix:
2362add0d91Sopenharmony_ci        toolchain: [
2372add0d91Sopenharmony_ci          stable,
2382add0d91Sopenharmony_ci          beta,
2392add0d91Sopenharmony_ci          nightly,
2402add0d91Sopenharmony_ci          1.13.0,
2412add0d91Sopenharmony_ci          1.19.0,
2422add0d91Sopenharmony_ci          1.24.0,
2432add0d91Sopenharmony_ci          1.25.0,
2442add0d91Sopenharmony_ci          1.30.0,
2452add0d91Sopenharmony_ci        ]
2462add0d91Sopenharmony_ci    steps:
2472add0d91Sopenharmony_ci      - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
2482add0d91Sopenharmony_ci        with:
2492add0d91Sopenharmony_ci          github_token: "${{ secrets.GITHUB_TOKEN }}"
2502add0d91Sopenharmony_ci      - uses: actions/checkout@v3
2512add0d91Sopenharmony_ci      - name: Setup Rust toolchain
2522add0d91Sopenharmony_ci        run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh
2532add0d91Sopenharmony_ci      - name: Execute build.sh
2542add0d91Sopenharmony_ci        run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh
2552add0d91Sopenharmony_ci
2562add0d91Sopenharmony_ci  build_channels_macos:
2572add0d91Sopenharmony_ci    permissions:
2582add0d91Sopenharmony_ci      contents: read # to fetch code (actions/checkout)
2592add0d91Sopenharmony_ci
2602add0d91Sopenharmony_ci    name: Build Channels macOS
2612add0d91Sopenharmony_ci    needs: macos
2622add0d91Sopenharmony_ci    # FIXME: Use macOS 11 for now as CI failed with a linker error on macOS 12 image:
2632add0d91Sopenharmony_ci    # ld: in /.../x86_64-apple-darwin/lib/libstd-a4729905.rlib(rust.metadata.bin),
2642add0d91Sopenharmony_ci    # archive member 'rust.metadata.bin' with length 2958149 is not mach-o or llvm bitcode file '/.../x86_64-apple-darwin/lib/libstd-a4729905.rlib'
2652add0d91Sopenharmony_ci    # Possibly related: https://github.com/actions/runner-images/issues/6350
2662add0d91Sopenharmony_ci    runs-on: macos-11
2672add0d91Sopenharmony_ci    env:
2682add0d91Sopenharmony_ci      OS: macos
2692add0d91Sopenharmony_ci    strategy:
2702add0d91Sopenharmony_ci      fail-fast: true
2712add0d91Sopenharmony_ci      max-parallel: 4
2722add0d91Sopenharmony_ci      matrix:
2732add0d91Sopenharmony_ci        toolchain: [
2742add0d91Sopenharmony_ci          stable,
2752add0d91Sopenharmony_ci          beta,
2762add0d91Sopenharmony_ci          nightly,
2772add0d91Sopenharmony_ci          1.13.0,
2782add0d91Sopenharmony_ci          1.19.0,
2792add0d91Sopenharmony_ci          1.24.0,
2802add0d91Sopenharmony_ci          1.25.0,
2812add0d91Sopenharmony_ci          1.30.0,
2822add0d91Sopenharmony_ci        ]
2832add0d91Sopenharmony_ci    steps:
2842add0d91Sopenharmony_ci      - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
2852add0d91Sopenharmony_ci        with:
2862add0d91Sopenharmony_ci          github_token: "${{ secrets.GITHUB_TOKEN }}"
2872add0d91Sopenharmony_ci      - uses: actions/checkout@v3
2882add0d91Sopenharmony_ci      - name: Setup Rust toolchain
2892add0d91Sopenharmony_ci        run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh
2902add0d91Sopenharmony_ci      - name: Execute build.sh
2912add0d91Sopenharmony_ci        run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh
2922add0d91Sopenharmony_ci
2932add0d91Sopenharmony_ci  build_channels_windows:
2942add0d91Sopenharmony_ci    permissions:
2952add0d91Sopenharmony_ci      contents: read # to fetch code (actions/checkout)
2962add0d91Sopenharmony_ci
2972add0d91Sopenharmony_ci    name: Build Channels Windows
2982add0d91Sopenharmony_ci    runs-on: windows-2022
2992add0d91Sopenharmony_ci    env:
3002add0d91Sopenharmony_ci      OS: windows
3012add0d91Sopenharmony_ci    strategy:
3022add0d91Sopenharmony_ci      fail-fast: true
3032add0d91Sopenharmony_ci      matrix:
3042add0d91Sopenharmony_ci        toolchain: [
3052add0d91Sopenharmony_ci          1.19.0,
3062add0d91Sopenharmony_ci          1.24.0,
3072add0d91Sopenharmony_ci          1.25.0,
3082add0d91Sopenharmony_ci          1.30.0,
3092add0d91Sopenharmony_ci          stable,
3102add0d91Sopenharmony_ci        ]
3112add0d91Sopenharmony_ci    steps:
3122add0d91Sopenharmony_ci      - uses: actions/checkout@v3
3132add0d91Sopenharmony_ci      - name: Self-update rustup
3142add0d91Sopenharmony_ci        run: rustup self update
3152add0d91Sopenharmony_ci        shell: bash
3162add0d91Sopenharmony_ci      - name: Execute build.sh
3172add0d91Sopenharmony_ci        run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} WIN_TARGET=${{ matrix.target }} sh ./ci/build.sh
3182add0d91Sopenharmony_ci        shell: bash
3192add0d91Sopenharmony_ci
3202add0d91Sopenharmony_ci  semver_linux:
3212add0d91Sopenharmony_ci    if: ${{ false }} # This is currently broken
3222add0d91Sopenharmony_ci    name: Semver Linux
3232add0d91Sopenharmony_ci    runs-on: ubuntu-22.04
3242add0d91Sopenharmony_ci    continue-on-error: true
3252add0d91Sopenharmony_ci    steps:
3262add0d91Sopenharmony_ci      - uses: actions/checkout@v3
3272add0d91Sopenharmony_ci      - name: Setup Rust toolchain
3282add0d91Sopenharmony_ci        # Should update the semverver revision in semver.sh if we touch nightly ver.
3292add0d91Sopenharmony_ci        run: TOOLCHAIN=nightly-2022-05-23 sh ./ci/install-rust.sh
3302add0d91Sopenharmony_ci      - name: Check breaking changes
3312add0d91Sopenharmony_ci        run: sh ci/semver.sh linux
3322add0d91Sopenharmony_ci
3332add0d91Sopenharmony_ci  semver_macos:
3342add0d91Sopenharmony_ci    if: ${{ false }} # This is currently broken
3352add0d91Sopenharmony_ci    name: Semver macOS
3362add0d91Sopenharmony_ci    runs-on: macos-12
3372add0d91Sopenharmony_ci    continue-on-error: true
3382add0d91Sopenharmony_ci    steps:
3392add0d91Sopenharmony_ci      - uses: actions/checkout@v3
3402add0d91Sopenharmony_ci      - name: Setup Rust toolchain
3412add0d91Sopenharmony_ci        # Pin nightly version to make semverver compilable.
3422add0d91Sopenharmony_ci        run: TOOLCHAIN=nightly-2022-05-23 sh ./ci/install-rust.sh
3432add0d91Sopenharmony_ci      - name: Check breaking changes
3442add0d91Sopenharmony_ci        run: sh ci/semver.sh macos
3452add0d91Sopenharmony_ci
3462add0d91Sopenharmony_ci  docs:
3472add0d91Sopenharmony_ci    permissions:
3482add0d91Sopenharmony_ci      actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds)
3492add0d91Sopenharmony_ci      contents: read # to fetch code (actions/checkout)
3502add0d91Sopenharmony_ci
3512add0d91Sopenharmony_ci    name: Generate documentation
3522add0d91Sopenharmony_ci    runs-on: ubuntu-22.04
3532add0d91Sopenharmony_ci    needs: docker_linux_tier2
3542add0d91Sopenharmony_ci    steps:
3552add0d91Sopenharmony_ci      - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
3562add0d91Sopenharmony_ci        with:
3572add0d91Sopenharmony_ci          github_token: "${{ secrets.GITHUB_TOKEN }}"
3582add0d91Sopenharmony_ci      - uses: actions/checkout@v3
3592add0d91Sopenharmony_ci      - name: Setup Rust toolchain
3602add0d91Sopenharmony_ci        run: sh ./ci/install-rust.sh
3612add0d91Sopenharmony_ci      - name: Generate documentation
3622add0d91Sopenharmony_ci        run: LIBC_CI=1 sh ci/dox.sh
3632add0d91Sopenharmony_ci
3642add0d91Sopenharmony_ci  # These jobs doesn't actually test anything, but they're only used to tell
3652add0d91Sopenharmony_ci  # bors the build completed, as there is no practical way to detect when a
3662add0d91Sopenharmony_ci  # workflow is successful listening to webhooks only.
3672add0d91Sopenharmony_ci  #
3682add0d91Sopenharmony_ci  # ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
3692add0d91Sopenharmony_ci
3702add0d91Sopenharmony_ci  end_success:
3712add0d91Sopenharmony_ci    name: bors build finished
3722add0d91Sopenharmony_ci    if: github.event.pusher.name == 'bors' && success()
3732add0d91Sopenharmony_ci    runs-on: ubuntu-22.04
3742add0d91Sopenharmony_ci    needs: [
3752add0d91Sopenharmony_ci      docker_linux_tier1,
3762add0d91Sopenharmony_ci      docker_linux_tier2,
3772add0d91Sopenharmony_ci      #docker_linux_build_std,
3782add0d91Sopenharmony_ci      macos,
3792add0d91Sopenharmony_ci      windows,
3802add0d91Sopenharmony_ci      style_check,
3812add0d91Sopenharmony_ci      docker_switch,
3822add0d91Sopenharmony_ci      build_channels_linux,
3832add0d91Sopenharmony_ci      build_channels_macos,
3842add0d91Sopenharmony_ci      build_channels_windows,
3852add0d91Sopenharmony_ci      docs,
3862add0d91Sopenharmony_ci    ]
3872add0d91Sopenharmony_ci
3882add0d91Sopenharmony_ci    steps:
3892add0d91Sopenharmony_ci      - name: Mark the job as successful
3902add0d91Sopenharmony_ci        run: exit 0
3912add0d91Sopenharmony_ci
3922add0d91Sopenharmony_ci  end_failure:
3932add0d91Sopenharmony_ci    name: bors build finished
3942add0d91Sopenharmony_ci    if: github.event.pusher.name == 'bors' && (failure() || cancelled())
3952add0d91Sopenharmony_ci    runs-on: ubuntu-22.04
3962add0d91Sopenharmony_ci    needs: [
3972add0d91Sopenharmony_ci      docker_linux_tier1,
3982add0d91Sopenharmony_ci      docker_linux_tier2,
3992add0d91Sopenharmony_ci      #docker_linux_build_std,
4002add0d91Sopenharmony_ci      macos,
4012add0d91Sopenharmony_ci      windows,
4022add0d91Sopenharmony_ci      style_check,
4032add0d91Sopenharmony_ci      docker_switch,
4042add0d91Sopenharmony_ci      build_channels_linux,
4052add0d91Sopenharmony_ci      build_channels_macos,
4062add0d91Sopenharmony_ci      build_channels_windows,
4072add0d91Sopenharmony_ci      docs,
4082add0d91Sopenharmony_ci    ]
4092add0d91Sopenharmony_ci
4102add0d91Sopenharmony_ci    steps:
4112add0d91Sopenharmony_ci      - name: Mark the job as a failure
4122add0d91Sopenharmony_ci        run: exit 1
413