CI #984
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 | |
permissions: | |
contents: read | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
- dev | |
schedule: | |
- cron: '0 1 * * *' | |
workflow_dispatch: | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_NET_GIT_FETCH_WITH_CLI: true | |
CARGO_NET_RETRY: 10 | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: 1 | |
RUSTDOCFLAGS: -D warnings | |
RUSTFLAGS: -D warnings | |
RUSTUP_MAX_RETRIES: 10 | |
defaults: | |
run: | |
shell: bash | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
tidy: | |
uses: taiki-e/workflows/.github/workflows/tidy.yml@main | |
test: | |
needs: tidy | |
strategy: | |
fail-fast: false | |
matrix: | |
# https://github.com/taiki-e/rust-cross-toolchain/blob/HEAD/tools/target-list-shared.sh | |
target: | |
# Linux (GNU) | |
# rustup target list | grep -e '-linux-gnu' | |
# rustc --print target-list | grep -e '-linux-gnu' | |
- aarch64-unknown-linux-gnu | |
# - aarch64-unknown-linux-gnu_ilp32 # tier3 | |
- aarch64_be-unknown-linux-gnu # tier3 | |
# - aarch64_be-unknown-linux-gnu_ilp32 # tier3 | |
- arm-unknown-linux-gnueabi | |
# - arm-unknown-linux-gnueabihf # supported in rust-cross-toolchain but not ported to this action | |
- armeb-unknown-linux-gnueabi # tier3 | |
# - armv4t-unknown-linux-gnueabi # tier3, rustc generate code for armv5t (probably needs to pass +v4t to llvm) | |
- armv5te-unknown-linux-gnueabi | |
- armv7-unknown-linux-gnueabi | |
- armv7-unknown-linux-gnueabihf | |
- i586-unknown-linux-gnu | |
- i686-unknown-linux-gnu | |
- loongarch64-unknown-linux-gnu | |
# - m68k-unknown-linux-gnu # tier3, build fail: https://github.com/rust-lang/rust/issues/89498 | |
- mips-unknown-linux-gnu | |
- mips64-unknown-linux-gnuabi64 | |
- mips64el-unknown-linux-gnuabi64 | |
- mipsel-unknown-linux-gnu | |
- mipsisa32r6-unknown-linux-gnu # tier3 | |
- mipsisa32r6el-unknown-linux-gnu # tier3 | |
- mipsisa64r6-unknown-linux-gnuabi64 # tier3 | |
- mipsisa64r6el-unknown-linux-gnuabi64 # tier3 | |
- powerpc-unknown-linux-gnu | |
# - powerpc-unknown-linux-gnuspe # tier3, fails to run test, and GCC 9 removed support for this target | |
- powerpc64-unknown-linux-gnu | |
- powerpc64le-unknown-linux-gnu | |
- riscv32gc-unknown-linux-gnu # tier3 | |
- riscv64gc-unknown-linux-gnu | |
- s390x-unknown-linux-gnu | |
- sparc-unknown-linux-gnu # tier3 | |
- sparc64-unknown-linux-gnu | |
- thumbv7neon-unknown-linux-gnueabihf | |
- x86_64-unknown-linux-gnu | |
# - x86_64-unknown-linux-gnux32 # tier3, run-fail | |
os: | |
- ubuntu-22.04 | |
- ubuntu-20.04 | |
include: | |
# Linux (musl) | |
# rustup target list | grep -e '-linux-musl' | |
# rustc --print target-list | grep -e '-linux-musl' | |
- target: aarch64-unknown-linux-musl | |
- target: aarch64-unknown-linux-musl | |
runner: qemu-user@7.2 | |
- target: aarch64-unknown-linux-musl | |
qemu: '7.2' | |
- target: arm-unknown-linux-musleabi | |
- target: arm-unknown-linux-musleabihf | |
- target: armv5te-unknown-linux-musleabi | |
- target: armv7-unknown-linux-musleabi | |
- target: armv7-unknown-linux-musleabihf | |
# - target: hexagon-unknown-linux-musl # tier3 | |
- target: i586-unknown-linux-musl | |
- target: i686-unknown-linux-musl | |
- target: mips-unknown-linux-musl | |
# - target: mips64-openwrt-linux-musl # tier3 | |
- target: mips64-unknown-linux-muslabi64 | |
- target: mips64el-unknown-linux-muslabi64 | |
- target: mipsel-unknown-linux-musl | |
# - target: powerpc-unknown-linux-musl # tier3 | |
# - target: powerpc64-unknown-linux-musl # tier3 | |
# - target: powerpc64le-unknown-linux-musl # tier3 | |
# - target: riscv32gc-unknown-linux-musl # tier3 | |
# - target: riscv64gc-unknown-linux-musl # tier3 | |
# - target: s390x-unknown-linux-musl # tier3 | |
# - target: thumbv7neon-unknown-linux-musleabihf # tier3 | |
- target: x86_64-unknown-linux-musl | |
# Linux (uClibc) | |
# rustc --print target-list | grep -e '-linux-uclibc' | |
- target: armv5te-unknown-linux-uclibceabi # tier3 | |
- target: armv7-unknown-linux-uclibceabi # tier3 | |
- target: armv7-unknown-linux-uclibceabihf # tier3 | |
- target: mips-unknown-linux-uclibc # tier3 | |
- target: mipsel-unknown-linux-uclibc # tier3 | |
# Android | |
# rustup target list | grep -e '-android' | |
# rustc --print target-list | grep -e '-android' | |
- target: aarch64-linux-android | |
- target: arm-linux-androideabi | |
- target: arm-linux-androideabi@21 | |
- target: armv7-linux-androideabi | |
- target: i686-linux-android | |
- target: thumbv7neon-linux-androideabi | |
- target: x86_64-linux-android | |
# FreeBSD | |
# rustup target list | grep -e '-freebsd' | |
# rustc --print target-list | grep -e '-freebsd' | |
- target: aarch64-unknown-freebsd # tier3 | |
# - target: armv6-unknown-freebsd # tier3 | |
# - target: armv7-unknown-freebsd # tier3 | |
- target: i686-unknown-freebsd | |
# - target: powerpc-unknown-freebsd # tier3 | |
# - target: powerpc64-unknown-freebsd # tier3 | |
# - target: powerpc64le-unknown-freebsd # tier3 | |
# - target: riscv64gc-unknown-freebsd # tier3 | |
- target: x86_64-unknown-freebsd | |
- target: x86_64-unknown-freebsd@13 | |
# NetBSD | |
# rustup target list | grep -e '-netbsd' | |
# rustc --print target-list | grep -e '-netbsd' | |
- target: aarch64-unknown-netbsd # tier3 | |
# - target: aarch64_be-unknown-netbsd # tier3 | |
# - target: armv6-unknown-netbsd-eabihf # tier3 | |
# - target: armv7-unknown-netbsd-eabihf # tier3 | |
# - target: i686-unknown-netbsd # tier3 | |
# - target: powerpc-unknown-netbsd # tier3 | |
# - target: riscv64gc-unknown-netbsd # tier3 | |
# - target: sparc64-unknown-netbsd # tier3 | |
- target: x86_64-unknown-netbsd | |
- target: x86_64-unknown-netbsd@9 | |
# WASI | |
# rustup target list | grep -e '-wasi' | |
# rustc --print target-list | grep -e '-wasi' | |
- target: wasm32-wasi | |
# macOS | |
# rustup target list | grep -e '-darwin' | |
# rustc --print target-list | grep -e '-darwin' | |
- target: aarch64-apple-darwin | |
os: macos-latest | |
# - target: i686-apple-darwin # tier3 | |
# os: macos-latest | |
- target: x86_64-apple-darwin | |
os: macos-latest | |
- target: x86_64h-apple-darwin # tier3 | |
os: macos-latest | |
# Windows (MSVC) | |
# rustup target list | grep -e '-pc-windows-msvc' | |
# rustc --print target-list | grep -e '-pc-windows-msvc' | |
- { target: aarch64-pc-windows-msvc, os: windows-latest } | |
- { target: i586-pc-windows-msvc, os: windows-latest } | |
- { target: i686-pc-windows-msvc, os: windows-latest } | |
# - { target: thumbv7a-pc-windows-msvc, os: windows-latest } # tier3 | |
- { target: x86_64-pc-windows-msvc, os: windows-latest } | |
# Windows (MinGW) | |
# rustup target list | grep -e '-pc-windows-gnu' | |
# rustc --print target-list | grep -e '-pc-windows-gnu' | |
# Windows host: | |
# - target: i686-pc-windows-gnu | |
# os: windows-latest | |
- target: x86_64-pc-windows-gnu | |
os: windows-latest | |
# Linux host: | |
# - target: i686-pc-windows-gnu | |
- target: x86_64-pc-windows-gnu | |
- target: x86_64-pc-windows-gnu | |
runner: wine@7.13 | |
- target: x86_64-pc-windows-gnu | |
wine: '7.0.1' | |
- target: x86_64-pc-windows-gnullvm | |
- target: i686-pc-windows-gnullvm | |
- target: aarch64-pc-windows-gnullvm | |
# prettier-ignore | |
exclude: | |
# Linker error "unsupported ISA subset `z'" since nightly-2023-08-09 (LLVM 17) | |
- { target: riscv64gc-unknown-linux-gnu, os: ubuntu-20.04 } | |
# Segmentation fault on ubuntu 20.04: https://github.com/taiki-e/setup-cross-toolchain-action/issues/1 | |
- { target: aarch64_be-unknown-linux-gnu, os: ubuntu-20.04 } | |
- { target: armeb-unknown-linux-gnueabi, os: ubuntu-20.04 } | |
- { target: mips-unknown-linux-gnu, os: ubuntu-20.04 } | |
- { target: mips64-unknown-linux-gnuabi64, os: ubuntu-20.04 } | |
- { target: mipsisa32r6-unknown-linux-gnu, os: ubuntu-20.04 } | |
- { target: mipsisa64r6-unknown-linux-gnuabi64, os: ubuntu-20.04 } | |
- { target: powerpc64-unknown-linux-gnu, os: ubuntu-20.04 } | |
- { target: sparc-unknown-linux-gnu, os: ubuntu-20.04 } | |
- { target: sparc64-unknown-linux-gnu, os: ubuntu-20.04 } | |
runs-on: ${{ matrix.os || 'ubuntu-latest' }} | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install Rust | |
run: rustup toolchain add nightly --no-self-update && rustup default nightly | |
- run: echo "QEMU_STRACE=1" >>"${GITHUB_ENV}" | |
if: matrix.target != 'aarch64-pc-windows-gnullvm' | |
- uses: ./ | |
with: | |
target: ${{ matrix.target }} | |
runner: ${{ matrix.runner }} | |
qemu: ${{ matrix.qemu }} | |
wine: ${{ matrix.wine }} | |
- run: git clone --depth 1 https://github.com/taiki-e/rust-cross-toolchain.git | |
- run: tools/ci/test.sh ${{ matrix.target }} rust-cross-toolchain/docker/test/fixtures/rust | |
id: test | |
# For debugging | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.target }}-${{ matrix.os }} | |
# TODO(windows host): No files were found with the provided path: /tmp/artifacts/. No artifacts will be uploaded. | |
path: /tmp/artifacts/ |