From 3262ab273b15ebcb4195cb782d9bd767b9be256a Mon Sep 17 00:00:00 2001 From: David Wood Date: Wed, 6 Nov 2024 14:05:23 +0000 Subject: [PATCH] ci: fix matrix usage --- .github/workflows/main.yml | 202 +++++++++++++++++++------------------ 1 file changed, 105 insertions(+), 97 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d5751e03fe..eb4a7b6dbf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -65,7 +65,7 @@ jobs: test: needs: [style] name: Test - runs-on: ${{ matrix.os }} + runs-on: ${{ matrix.target.os }} strategy: matrix: profile: @@ -73,114 +73,122 @@ jobs: - release target: # Dockers that are run through docker on linux - - i686-unknown-linux-gnu - - x86_64-unknown-linux-gnu - - x86_64-unknown-linux-gnu-emulated - - arm-unknown-linux-gnueabihf - - armv7-unknown-linux-gnueabihf - - aarch64-unknown-linux-gnu - - riscv64gc-unknown-linux-gnu - - powerpc64le-unknown-linux-gnu - # MIPS targets disabled since they are dropped to tier 3. - # See https://github.com/rust-lang/compiler-team/issues/648 - #- mips-unknown-linux-gnu - #- mips64-unknown-linux-gnuabi64 - #- mips64el-unknown-linux-gnuabi64 - #- mipsel-unknown-linux-musl - - s390x-unknown-linux-gnu - - wasm32-wasip1 - - i586-unknown-linux-gnu - - nvptx64-nvidia-cuda - - thumbv6m-none-eabi - - thumbv7m-none-eabi - - thumbv7em-none-eabi - - thumbv7em-none-eabihf - - loongarch64-unknown-linux-gnu - - # macOS targets - - x86_64-apple-darwin - - aarch64-apple-darwin - # FIXME: gh-actions build environment doesn't have linker support - # - i686-apple-darwin - - # Windows targets - - x86_64-pc-windows-msvc - - i686-pc-windows-msvc - - aarch64-pc-windows-msvc - - x86_64-pc-windows-gnu - # - i686-pc-windows-gnu: - - include: - - target: i686-unknown-linux-gnu + - tuple: i686-unknown-linux-gnu os: ubuntu-latest - - target: x86_64-unknown-linux-gnu + - tuple: x86_64-unknown-linux-gnu os: ubuntu-latest - - target: x86_64-unknown-linux-gnu-emulated + - tuple: x86_64-unknown-linux-gnu-emulated os: ubuntu-latest - test_everything: true - rustflags: --cfg stdarch_intel_sde - - target: arm-unknown-linux-gnueabihf + - tuple: arm-unknown-linux-gnueabihf + os: ubuntu-latest + - tuple: armv7-unknown-linux-gnueabihf + os: ubuntu-latest + - tuple: aarch64-unknown-linux-gnu + os: ubuntu-latest + - tuple: riscv64gc-unknown-linux-gnu os: ubuntu-latest - - target: armv7-unknown-linux-gnueabihf + - tuple: powerpc64le-unknown-linux-gnu os: ubuntu-latest # MIPS targets disabled since they are dropped to tier 3. # See https://github.com/rust-lang/compiler-team/issues/648 - #- target: mips-unknown-linux-gnu + #- tuple: mips-unknown-linux-gnu # os: ubuntu-latest - # norun: true - #- target: mips64-unknown-linux-gnuabi64 + #- tuple: mips64-unknown-linux-gnuabi64 # os: ubuntu-latest - # norun: true - #- target: mips64el-unknown-linux-gnuabi64 + #- tuple: mips64el-unknown-linux-gnuabi64 # os: ubuntu-latest - # norun: true - #- target: mipsel-unknown-linux-musl + #- tuple: mipsel-unknown-linux-musl # os: ubuntu-latest - # norun: 1 - - target: powerpc64le-unknown-linux-gnu + - tuple: s390x-unknown-linux-gnu os: ubuntu-latest - disable_assert_instr: true - - target: s390x-unknown-linux-gnu + - tuple: i586-unknown-linux-gnu os: ubuntu-latest - - target: wasm32-wasip1 + - tuple: nvptx64-nvidia-cuda os: ubuntu-latest - - target: aarch64-apple-darwin - os: macos-latest - norun: true # https://github.com/rust-lang/stdarch/issues/1206 - - target: aarch64-apple-ios-macabi - os: macos-latest - norun: true # https://github.com/rust-lang/stdarch/issues/1206 - - target: aarch64-unknown-linux-gnu + - tuple: thumbv6m-none-eabi + os: ubuntu-latest + - tuple: thumbv7m-none-eabi + os: ubuntu-latest + - tuple: thumbv7em-none-eabi + os: ubuntu-latest + - tuple: thumbv7em-none-eabihf os: ubuntu-latest - - target: x86_64-apple-darwin + - tuple: loongarch64-unknown-linux-gnu + os: ubuntu-latest + - tuple: wasm32-wasip1 + os: ubuntu-latest + + # macOS targets + - tuple: x86_64-apple-darwin os: macos-13 - - target: x86_64-apple-ios-macabi + - tuple: x86_64-apple-ios-macabi os: macos-13 - - target: x86_64-pc-windows-msvc + - tuple: aarch64-apple-darwin + os: macos-latest + - tuple: aarch64-apple-ios-macabi + os: macos-latest + # FIXME: gh-actions build environment doesn't have linker support + # - tuple: i686-apple-darwin + # os: macos-13 + + # Windows targets + - tuple: x86_64-pc-windows-msvc os: windows-latest - - target: i686-pc-windows-msvc + - tuple: i686-pc-windows-msvc os: windows-latest - - target: aarch64-pc-windows-msvc + - tuple: aarch64-pc-windows-msvc os: windows-latest - norun: true - - target: x86_64-pc-windows-gnu + - tuple: x86_64-pc-windows-gnu os: windows-latest - - target: i586-unknown-linux-gnu - os: ubuntu-latest - - target: nvptx64-nvidia-cuda - os: ubuntu-latest - - target: thumbv6m-none-eabi - os: ubuntu-latest - - target: thumbv7m-none-eabi - os: ubuntu-latest - - target: thumbv7em-none-eabi - os: ubuntu-latest - - target: thumbv7em-none-eabihf - os: ubuntu-latest - - target: riscv64gc-unknown-linux-gnu - os: ubuntu-latest - - target: loongarch64-unknown-linux-gnu - os: ubuntu-latest + # - tuple: i686-pc-windows-gnu + # os: windows-latest + + # Add additional variables to the matrix variations generated above using `include`: + include: + - target: + tuple: x86_64-unknown-linux-gnu-emulated + os: ubuntu-latest + test_everything: true + rustflags: --cfg stdarch_intel_sde + # MIPS targets disabled since they are dropped to tier 3. + # See https://github.com/rust-lang/compiler-team/issues/648 + #- target: + # tuple: mips-unknown-linux-gnu + # os: ubuntu-latest + # norun: true + #- target: + # tuple: mips64-unknown-linux-gnuabi64 + # os: ubuntu-latest + # norun: true + #- target: + # tuple: mips64el-unknown-linux-gnuabi64 + # os: ubuntu-latest + # norun: true + #- target: + # tuple: mipsel-unknown-linux-musl + # os: ubuntu-latest + # norun: true + - target: + tuple: powerpc64le-unknown-linux-gnu + os: ubuntu-latest + disable_assert_instr: true + - target: + tuple: aarch64-apple-darwin + os: macos-latest + norun: true # https://github.com/rust-lang/stdarch/issues/1206 + - target: + tuple: aarch64-apple-ios-macabi + os: macos-latest + norun: true # https://github.com/rust-lang/stdarch/issues/1206 + - target: + tuple: aarch64-pc-windows-msvc + os: windows-latest + norun: true + - target: + tuple: x86_64-pc-windows-msvc + os: windows-latest + profile: dev + norun: true # FIXME: why doesn't this work in debug mode? steps: - uses: actions/checkout@v4 @@ -190,8 +198,8 @@ jobs: run: | rustup update nightly --no-self-update rustup default nightly - - run: rustup target add ${{ matrix.target }} - if: "!endsWith(matrix.target, 'emulated')" + - run: rustup target add ${{ matrix.target.tuple }} + if: "!endsWith(matrix.target.tuple, 'emulated')" - run: cargo generate-lockfile # Configure some env vars based on matrix configuration @@ -199,7 +207,7 @@ jobs: shell: bash - run: echo "NORUN=1" >> $GITHUB_ENV shell: bash - if: matrix.norun != '' || startsWith(matrix.target, 'thumb') || matrix.target == 'nvptx64-nvidia-cuda' + if: matrix.norun != '' || startsWith(matrix.target.tuple, 'thumb') || matrix.target.tuple == 'nvptx64-nvidia-cuda' - run: echo "STDARCH_TEST_EVERYTHING=1" >> $GITHUB_ENV shell: bash if: matrix.test_everything != '' @@ -211,21 +219,21 @@ jobs: if: matrix.disable_assert_instr != '' - run: echo "NOSTD=1" >> $GITHUB_ENV shell: bash - if: startsWith(matrix.target, 'thumb') || matrix.target == 'nvptx64-nvidia-cuda' + if: startsWith(matrix.target.tuple, 'thumb') || matrix.target.tuple == 'nvptx64-nvidia-cuda' # Windows & OSX go straight to `run.sh` ... - run: ./ci/run.sh shell: bash - if: matrix.os != 'ubuntu-latest' || startsWith(matrix.target, 'thumb') + if: matrix.target.os != 'ubuntu-latest' || startsWith(matrix.target.tuple, 'thumb') env: - TARGET: ${{ matrix.target }} + TARGET: ${{ matrix.target.tuple }} # ... while Linux goes to `run-docker.sh` - - run: ./ci/run-docker.sh ${{ matrix.target }} + - run: ./ci/run-docker.sh ${{ matrix.target.tuple }} shell: bash - if: "matrix.os == 'ubuntu-latest' && !startsWith(matrix.target, 'thumb')" + if: "matrix.target.os == 'ubuntu-latest' && !startsWith(matrix.target.tuple, 'thumb')" env: - TARGET: ${{ matrix.target }} + TARGET: ${{ matrix.target.tuple }} build-std-detect: needs: [style]