From 272b655478a92bdde22b130aa42b56b087ae3d92 Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Sun, 8 Oct 2023 01:56:49 +0900 Subject: [PATCH] wip --- .github/workflows/ci.yml | 955 ++++++++++++++++++++------------------- 1 file changed, 480 insertions(+), 475 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 026307e6..72bd0b5c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,61 +37,61 @@ concurrency: cancel-in-progress: true jobs: - check-external-types: - uses: taiki-e/github-actions/.github/workflows/check-external-types.yml@main - deny: - uses: taiki-e/github-actions/.github/workflows/deny.yml@main - docs: - uses: taiki-e/github-actions/.github/workflows/docs.yml@main - with: - target: x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,powerpc64le-unknown-linux-gnu,s390x-unknown-linux-gnu,armv5te-unknown-linux-gnueabi - msrv: - needs: tidy - uses: taiki-e/github-actions/.github/workflows/msrv.yml@main - with: - event_name: ${{ github.event_name }} - # NB: sync with env.TEST_FEATURES - # Exclude serde and critical-section features because the MSRV when it is enabled depends on the MSRV of them - args: --features float,std --ignore-unknown-features - tidy: - uses: taiki-e/github-actions/.github/workflows/tidy.yml@main - with: - # clippy is covered by TESTS=1 ./tools/build.sh - clippy: false + # check-external-types: + # uses: taiki-e/github-actions/.github/workflows/check-external-types.yml@main + # deny: + # uses: taiki-e/github-actions/.github/workflows/deny.yml@main + # docs: + # uses: taiki-e/github-actions/.github/workflows/docs.yml@main + # with: + # target: x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu,powerpc64le-unknown-linux-gnu,s390x-unknown-linux-gnu,armv5te-unknown-linux-gnueabi + # msrv: + # needs: tidy + # uses: taiki-e/github-actions/.github/workflows/msrv.yml@main + # with: + # event_name: ${{ github.event_name }} + # # NB: sync with env.TEST_FEATURES + # # Exclude serde and critical-section features because the MSRV when it is enabled depends on the MSRV of them + # args: --features float,std --ignore-unknown-features + # tidy: + # uses: taiki-e/github-actions/.github/workflows/tidy.yml@main + # with: + # # clippy is covered by TESTS=1 ./tools/build.sh + # clippy: false test: - needs: tidy + # needs: tidy strategy: fail-fast: false matrix: include: - # LLVM version table: - # - LLVM 12: stable ? - 1.55, - # - LLVM 13: stable 1.56 - 1.59, - nightly-2022-02-17 (1.60) - # - LLVM 14: stable 1.60 - 1.64, nightly-2022-02-18 (1.60) - nightly-2022-08-12 (1.65) - # - LLVM 15: stable 1.65 - 1.69, nightly-2022-08-13 (1.65) - nightly-2023-03-25 (1.70) - # - LLVM 16: stable 1.70 - 1.72, nightly-2023-03-26 (1.70) - nightly-2023-08-08 (1.73) - # - LLVM 17: stable 1.73 - , nightly-2023-08-09 (1.73) - - - rust: '1.56' - - rust: '1.59' # LLVM 13 - # - rust: '1.64' # LLVM 14 - # - rust: '1.69' # LLVM 15 - # - rust: '1.72' # LLVM 16 - - rust: stable - - rust: beta - - rust: nightly - - rust: nightly - flags: -C panic=abort -Z panic_abort_tests - - rust: nightly - os: macos-latest - - rust: nightly - os: windows-latest - - rust: nightly-x86_64-pc-windows-gnu - os: windows-latest - - rust: nightly-i686-pc-windows-msvc - os: windows-latest - - rust: nightly-i686-pc-windows-gnu - os: windows-latest + # # LLVM version table: + # # - LLVM 12: stable ? - 1.55, + # # - LLVM 13: stable 1.56 - 1.59, - nightly-2022-02-17 (1.60) + # # - LLVM 14: stable 1.60 - 1.64, nightly-2022-02-18 (1.60) - nightly-2022-08-12 (1.65) + # # - LLVM 15: stable 1.65 - 1.69, nightly-2022-08-13 (1.65) - nightly-2023-03-25 (1.70) + # # - LLVM 16: stable 1.70 - 1.72, nightly-2023-03-26 (1.70) - nightly-2023-08-08 (1.73) + # # - LLVM 17: stable 1.73 - , nightly-2023-08-09 (1.73) - + # - rust: '1.56' + # - rust: '1.59' # LLVM 13 + # # - rust: '1.64' # LLVM 14 + # # - rust: '1.69' # LLVM 15 + # # - rust: '1.72' # LLVM 16 + # - rust: stable + # - rust: beta + # - rust: nightly + # - rust: nightly + # flags: -C panic=abort -Z panic_abort_tests + # - rust: nightly + # os: macos-latest + # - rust: nightly + # os: windows-latest + # - rust: nightly-x86_64-pc-windows-gnu + # os: windows-latest + # - rust: nightly-i686-pc-windows-msvc + # os: windows-latest + # - rust: nightly-i686-pc-windows-gnu + # os: windows-latest - rust: '1.59' # LLVM 13 target: aarch64-unknown-linux-gnu # - rust: '1.64' # LLVM 14 @@ -124,86 +124,86 @@ jobs: target: aarch64-linux-android - rust: nightly target: aarch64-pc-windows-gnullvm - - rust: '1.59' - target: armv5te-unknown-linux-gnueabi - - rust: stable - target: armv5te-unknown-linux-gnueabi - - rust: nightly - target: armv5te-unknown-linux-gnueabi - - rust: nightly - target: arm-unknown-linux-gnueabi - - rust: nightly - target: armv7-unknown-linux-gnueabi - - rust: nightly - target: armv7-unknown-linux-gnueabihf - - rust: nightly - target: armeb-unknown-linux-gnueabi - - rust: nightly - target: arm-linux-androideabi - - rust: nightly - target: i586-unknown-linux-gnu - - rust: '1.59' - target: i686-unknown-linux-gnu - - rust: stable - target: i686-unknown-linux-gnu - - rust: nightly - target: i686-unknown-linux-gnu - - rust: nightly - target: loongarch64-unknown-linux-gnu - - rust: nightly - target: mips-unknown-linux-gnu - - rust: nightly - target: mipsel-unknown-linux-gnu - - rust: nightly - target: mips64-unknown-linux-gnuabi64 - - rust: nightly - target: mips64el-unknown-linux-gnuabi64 - - rust: nightly-2023-07-18 # TODO: hang with LLVM 17 - target: mipsisa32r6-unknown-linux-gnu - - rust: nightly-2023-07-18 # TODO: hang with LLVM 17 - target: mipsisa32r6el-unknown-linux-gnu - - rust: nightly - target: mipsisa64r6-unknown-linux-gnuabi64 - - rust: nightly - target: mipsisa64r6el-unknown-linux-gnuabi64 - - rust: nightly - target: powerpc-unknown-linux-gnu - - rust: nightly - target: powerpc64-unknown-linux-gnu - # - rust: nightly-2023-08-08 # Rust 1.73, LLVM 16 - # target: powerpc64-unknown-linux-gnu - # - rust: nightly-2023-03-25 # Rust 1.70, LLVM 15 + # - rust: '1.59' + # target: armv5te-unknown-linux-gnueabi + # - rust: stable + # target: armv5te-unknown-linux-gnueabi + # - rust: nightly + # target: armv5te-unknown-linux-gnueabi + # - rust: nightly + # target: arm-unknown-linux-gnueabi + # - rust: nightly + # target: armv7-unknown-linux-gnueabi + # - rust: nightly + # target: armv7-unknown-linux-gnueabihf + # - rust: nightly + # target: armeb-unknown-linux-gnueabi + # - rust: nightly + # target: arm-linux-androideabi + # - rust: nightly + # target: i586-unknown-linux-gnu + # - rust: '1.59' + # target: i686-unknown-linux-gnu + # - rust: stable + # target: i686-unknown-linux-gnu + # - rust: nightly + # target: i686-unknown-linux-gnu + # - rust: nightly + # target: loongarch64-unknown-linux-gnu + # - rust: nightly + # target: mips-unknown-linux-gnu + # - rust: nightly + # target: mipsel-unknown-linux-gnu + # - rust: nightly + # target: mips64-unknown-linux-gnuabi64 + # - rust: nightly + # target: mips64el-unknown-linux-gnuabi64 + # - rust: nightly-2023-07-18 # TODO: hang with LLVM 17 + # target: mipsisa32r6-unknown-linux-gnu + # - rust: nightly-2023-07-18 # TODO: hang with LLVM 17 + # target: mipsisa32r6el-unknown-linux-gnu + # - rust: nightly + # target: mipsisa64r6-unknown-linux-gnuabi64 + # - rust: nightly + # target: mipsisa64r6el-unknown-linux-gnuabi64 + # - rust: nightly + # target: powerpc-unknown-linux-gnu + # - rust: nightly # target: powerpc64-unknown-linux-gnu - # - rust: nightly-2022-08-12 # Rust 1.65, LLVM 14 + # # - rust: nightly-2023-08-08 # Rust 1.73, LLVM 16 + # # target: powerpc64-unknown-linux-gnu + # # - rust: nightly-2023-03-25 # Rust 1.70, LLVM 15 + # # target: powerpc64-unknown-linux-gnu + # # - rust: nightly-2022-08-12 # Rust 1.65, LLVM 14 + # # target: powerpc64-unknown-linux-gnu + # - rust: nightly-2022-02-13 # Rust 1.60, LLVM 13 (oldest version we can use asm_experimental_arch on this target) # target: powerpc64-unknown-linux-gnu - - rust: nightly-2022-02-13 # Rust 1.60, LLVM 13 (oldest version we can use asm_experimental_arch on this target) - target: powerpc64-unknown-linux-gnu - - rust: nightly - target: powerpc64le-unknown-linux-gnu - # - rust: nightly-2023-08-08 # Rust 1.73, LLVM 16 + # - rust: nightly # target: powerpc64le-unknown-linux-gnu - # - rust: nightly-2023-03-25 # Rust 1.70, LLVM 15 + # # - rust: nightly-2023-08-08 # Rust 1.73, LLVM 16 + # # target: powerpc64le-unknown-linux-gnu + # # - rust: nightly-2023-03-25 # Rust 1.70, LLVM 15 + # # target: powerpc64le-unknown-linux-gnu + # # - rust: nightly-2022-08-12 # Rust 1.65, LLVM 14 + # # target: powerpc64le-unknown-linux-gnu + # - rust: nightly-2022-02-13 # Rust 1.60, LLVM 13 (oldest version we can use asm_experimental_arch on this target) # target: powerpc64le-unknown-linux-gnu - # - rust: nightly-2022-08-12 # Rust 1.65, LLVM 14 - # target: powerpc64le-unknown-linux-gnu - - rust: nightly-2022-02-13 # Rust 1.60, LLVM 13 (oldest version we can use asm_experimental_arch on this target) - target: powerpc64le-unknown-linux-gnu - - rust: nightly - target: riscv32gc-unknown-linux-gnu - - rust: '1.59' - target: riscv64gc-unknown-linux-gnu - - rust: stable - target: riscv64gc-unknown-linux-gnu - - rust: nightly - target: riscv64gc-unknown-linux-gnu - - rust: nightly - target: s390x-unknown-linux-gnu - - rust: nightly-2023-05-09 # Rust 1.71, LLVM 16 (oldest version we can use asm_experimental_arch on this target) - target: s390x-unknown-linux-gnu - - rust: nightly - target: sparc64-unknown-linux-gnu - - rust: nightly - target: thumbv7neon-unknown-linux-gnueabihf + # - rust: nightly + # target: riscv32gc-unknown-linux-gnu + # - rust: '1.59' + # target: riscv64gc-unknown-linux-gnu + # - rust: stable + # target: riscv64gc-unknown-linux-gnu + # - rust: nightly + # target: riscv64gc-unknown-linux-gnu + # - rust: nightly + # target: s390x-unknown-linux-gnu + # - rust: nightly-2023-05-09 # Rust 1.71, LLVM 16 (oldest version we can use asm_experimental_arch on this target) + # target: s390x-unknown-linux-gnu + # - rust: nightly + # target: sparc64-unknown-linux-gnu + # - rust: nightly + # target: thumbv7neon-unknown-linux-gnueabihf runs-on: ${{ matrix.os || 'ubuntu-latest' }} timeout-minutes: 60 steps: @@ -244,366 +244,371 @@ jobs: - run: echo "RELEASE=--release" >>"${GITHUB_ENV}" if: matrix.target == 'mips-unknown-linux-gnu' || matrix.target == 'mipsel-unknown-linux-gnu' - - run: tools/test.sh -vv $TARGET $DOCTEST_XCOMPILE $BUILD_STD $RELEASE - # We test doctest only once with the default build conditions because doctest is slow. Both api-test - # and src/tests have extended copies of doctest, so this will not reduce test coverage. - - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE - env: - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} --cfg portable_atomic_no_outline_atomics - RUSTFLAGS: ${{ env.RUSTFLAGS }} --cfg portable_atomic_no_outline_atomics - # outline-atomics is disabled by default on aarch64 musl with static linking - if: (matrix.target == '' && !contains(matrix.rust, 'i686') || startsWith(matrix.target, 'x86_64')) || startsWith(matrix.target, 'aarch64') && !(contains(matrix.target, '-musl') && matrix.flags == '') || startsWith(matrix.target, 'armv5te') || matrix.target == 'arm-linux-androideabi' - - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE - env: - # Note: detect_false cfg is intended to make it easy for portable-atomic developers to - # test cases such as has_cmpxchg16b == false, has_lse == false, - # __kuser_helper_version < 5, etc., and is not a public API. - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} --cfg portable_atomic_test_outline_atomics_detect_false - RUSTFLAGS: ${{ env.RUSTFLAGS }} --cfg portable_atomic_test_outline_atomics_detect_false - # outline-atomics is disabled by default on aarch64 musl with static linking - if: (matrix.target == '' && !contains(matrix.rust, 'i686') || startsWith(matrix.target, 'x86_64')) || startsWith(matrix.target, 'aarch64') && !(contains(matrix.target, '-musl') && matrix.flags == '') || startsWith(matrix.target, 'armv5te') || matrix.target == 'arm-linux-androideabi' - # outline-atomics is disabled by default on aarch64 musl with static linking and powerpc64 - # powerpc64le- (little-endian) is skipped because it is pwr8 by default - - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE - env: - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} --cfg portable_atomic_outline_atomics - RUSTFLAGS: ${{ env.RUSTFLAGS }} --cfg portable_atomic_outline_atomics - if: startsWith(matrix.target, 'aarch64') && contains(matrix.target, '-musl') && matrix.flags == '' || startsWith(matrix.target, 'powerpc64-') - - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE - env: - # Note: detect_false cfg is intended to make it easy for portable-atomic developers to - # test cases such as has_cmpxchg16b == false, has_lse == false, - # __kuser_helper_version < 5, etc., and is not a public API. - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} --cfg portable_atomic_outline_atomics --cfg portable_atomic_test_outline_atomics_detect_false - RUSTFLAGS: ${{ env.RUSTFLAGS }} --cfg portable_atomic_outline_atomics --cfg portable_atomic_test_outline_atomics_detect_false - if: startsWith(matrix.target, 'aarch64') && contains(matrix.target, '-musl') && matrix.flags == '' || startsWith(matrix.target, 'powerpc64-') - # x86_64 +cmpxchg16b + # - run: tools/test.sh -vv $TARGET $DOCTEST_XCOMPILE $BUILD_STD $RELEASE + # # We test doctest only once with the default build conditions because doctest is slow. Both api-test + # # and src/tests have extended copies of doctest, so this will not reduce test coverage. + # - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE + # env: + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} --cfg portable_atomic_no_outline_atomics + # RUSTFLAGS: ${{ env.RUSTFLAGS }} --cfg portable_atomic_no_outline_atomics + # # outline-atomics is disabled by default on aarch64 musl with static linking + # if: (matrix.target == '' && !contains(matrix.rust, 'i686') || startsWith(matrix.target, 'x86_64')) || startsWith(matrix.target, 'aarch64') && !(contains(matrix.target, '-musl') && matrix.flags == '') || startsWith(matrix.target, 'armv5te') || matrix.target == 'arm-linux-androideabi' + # - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE + # env: + # # Note: detect_false cfg is intended to make it easy for portable-atomic developers to + # # test cases such as has_cmpxchg16b == false, has_lse == false, + # # __kuser_helper_version < 5, etc., and is not a public API. + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} --cfg portable_atomic_test_outline_atomics_detect_false + # RUSTFLAGS: ${{ env.RUSTFLAGS }} --cfg portable_atomic_test_outline_atomics_detect_false + # # outline-atomics is disabled by default on aarch64 musl with static linking + # if: (matrix.target == '' && !contains(matrix.rust, 'i686') || startsWith(matrix.target, 'x86_64')) || startsWith(matrix.target, 'aarch64') && !(contains(matrix.target, '-musl') && matrix.flags == '') || startsWith(matrix.target, 'armv5te') || matrix.target == 'arm-linux-androideabi' + # # outline-atomics is disabled by default on aarch64 musl with static linking and powerpc64 + # # powerpc64le- (little-endian) is skipped because it is pwr8 by default + # - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE + # env: + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} --cfg portable_atomic_outline_atomics + # RUSTFLAGS: ${{ env.RUSTFLAGS }} --cfg portable_atomic_outline_atomics + # if: startsWith(matrix.target, 'aarch64') && contains(matrix.target, '-musl') && matrix.flags == '' || startsWith(matrix.target, 'powerpc64-') + # - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE + # env: + # # Note: detect_false cfg is intended to make it easy for portable-atomic developers to + # # test cases such as has_cmpxchg16b == false, has_lse == false, + # # __kuser_helper_version < 5, etc., and is not a public API. + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} --cfg portable_atomic_outline_atomics --cfg portable_atomic_test_outline_atomics_detect_false + # RUSTFLAGS: ${{ env.RUSTFLAGS }} --cfg portable_atomic_outline_atomics --cfg portable_atomic_test_outline_atomics_detect_false + # if: startsWith(matrix.target, 'aarch64') && contains(matrix.target, '-musl') && matrix.flags == '' || startsWith(matrix.target, 'powerpc64-') + # # x86_64 +cmpxchg16b + # - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE + # env: + # # cmpxchg16b + outline-atomics (vmovdqa load/store) path is tested in first 2 runs on macOS. + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics + # RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics + # if: matrix.target == '' && !contains(matrix.rust, 'i686') || startsWith(matrix.target, 'x86_64') + # aarch64 no lse - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE env: - # cmpxchg16b + outline-atomics (vmovdqa load/store) path is tested in first 2 runs on macOS. - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics - RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics - if: matrix.target == '' && !contains(matrix.rust, 'i686') || startsWith(matrix.target, 'x86_64') - # aarch64 +lse - - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE - env: - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-feature=+lse - RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-feature=+lse - if: startsWith(matrix.target, 'aarch64') - # aarch64 +lse,+lse2 - - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE - env: - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-feature=+lse,+lse2 - RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-feature=+lse,+lse2 + QEMU_CPU: cortex-a72 if: startsWith(matrix.target, 'aarch64') - # powerpc64 pwr7 - # powerpc64- (big-endian) is skipped because it is pre-pwr8 by default - - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE - env: - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-cpu=pwr7 - RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-cpu=pwr7 - if: startsWith(matrix.target, 'powerpc64le-') - # powerpc64 pwr8 - # powerpc64le- (little-endian) is skipped because it is pwr8 by default - - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE - env: - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-cpu=pwr8 - RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-cpu=pwr8 - if: startsWith(matrix.target, 'powerpc64-') - # s390x z196 (arch9) - - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE - env: - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-cpu=z196 - RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-cpu=z196 - if: startsWith(matrix.target, 's390x') - # s390x z15 (arch13) - - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE - env: - # TODO: disable high-word LLVM target-feature to avoid LLVM codegen bug. - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-cpu=z15 -C target-feature=-high-word - RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-cpu=z15 -C target-feature=-high-word - if: startsWith(matrix.target, 's390x') + # # aarch64 +lse + # - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE + # env: + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-feature=+lse + # RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-feature=+lse + # if: startsWith(matrix.target, 'aarch64') + # # aarch64 +lse,+lse2 + # - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE + # env: + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-feature=+lse,+lse2 + # RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-feature=+lse,+lse2 + # if: startsWith(matrix.target, 'aarch64') + # # powerpc64 pwr7 + # # powerpc64- (big-endian) is skipped because it is pre-pwr8 by default + # - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE + # env: + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-cpu=pwr7 + # RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-cpu=pwr7 + # if: startsWith(matrix.target, 'powerpc64le-') + # # powerpc64 pwr8 + # # powerpc64le- (little-endian) is skipped because it is pwr8 by default + # - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE + # env: + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-cpu=pwr8 + # RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-cpu=pwr8 + # if: startsWith(matrix.target, 'powerpc64-') + # # s390x z196 (arch9) + # - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE + # env: + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-cpu=z196 + # RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-cpu=z196 + # if: startsWith(matrix.target, 's390x') + # # s390x z15 (arch13) + # - run: tools/test.sh -vv --tests $TARGET $BUILD_STD $RELEASE + # env: + # # TODO: disable high-word LLVM target-feature to avoid LLVM codegen bug. + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-cpu=z15 -C target-feature=-high-word + # RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-cpu=z15 -C target-feature=-high-word + # if: startsWith(matrix.target, 's390x') - # Skip targets that also checked by "build" job. - - run: tools/build.sh ${{ matrix.target || 'host' }} - env: - SKIP_DEFAULT_TARGET: 1 - - run: TESTS=1 tools/build.sh ${{ matrix.target || 'host' }} - env: - SKIP_DEFAULT_TARGET: 1 + # # Skip targets that also checked by "build" job. + # - run: tools/build.sh ${{ matrix.target || 'host' }} + # env: + # SKIP_DEFAULT_TARGET: 1 + # - run: TESTS=1 tools/build.sh ${{ matrix.target || 'host' }} + # env: + # SKIP_DEFAULT_TARGET: 1 - - run: cargo minimal-versions build -vvv --workspace --no-private --features $TEST_FEATURES --ignore-unknown-features $TARGET $BUILD_STD $RELEASE + # - run: cargo minimal-versions build -vvv --workspace --no-private --features $TEST_FEATURES --ignore-unknown-features $TARGET $BUILD_STD $RELEASE - test-bsd: - needs: tidy - name: test (${{ matrix.target }}${{ matrix.version }}) - strategy: - fail-fast: false - matrix: - include: - - target: aarch64-unknown-freebsd - os: freebsd - version: '12.4' - - target: aarch64-unknown-freebsd - os: freebsd - version: '13.2' - - target: aarch64-unknown-openbsd - os: openbsd - version: '7.3' - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - with: - persist-credentials: false - - uses: taiki-e/cross-platform-actions-action@neoverse-v1 - with: - environment_variables: CARGO_INCREMENTAL CARGO_NET_RETRY CARGO_TERM_COLOR RUST_BACKTRACE RUST_TEST_THREADS RUSTDOCFLAGS RUSTFLAGS RUSTUP_MAX_RETRIES TEST_FEATURES - operating_system: ${{ matrix.os }} - architecture: aarch64 - version: ${{ matrix.version }} - shell: bash - run: | - set -eEuxo pipefail - export RUSTFLAGS="${RUSTFLAGS} --cfg qemu" - # AArch64 FreeBSD/OpenBSD are tier 3 targets, so install rust from package manager instead of rustup. - case "$(uname -s)" in - FreeBSD) sudo pkg install -y rust ;; - OpenBSD) - # As of OpenBSD 7.3, the built-in git library is very slow. - export CARGO_NET_GIT_FETCH_WITH_CLI=true - # OpenBSD 7.3's rustc version is 1.68, which sparse protocol is not default protocol. - export CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse - sudo pkg_add git rust - ;; - esac - rustc -vV - cargo test --features std --tests -- aarch64 + # test-bsd: + # needs: tidy + # name: test (${{ matrix.target }}${{ matrix.version }}) + # strategy: + # fail-fast: false + # matrix: + # include: + # - target: aarch64-unknown-freebsd + # os: freebsd + # version: '12.4' + # - target: aarch64-unknown-freebsd + # os: freebsd + # version: '13.2' + # - target: aarch64-unknown-openbsd + # os: openbsd + # version: '7.3' + # runs-on: ubuntu-latest + # timeout-minutes: 60 + # steps: + # - uses: actions/checkout@v4 + # with: + # persist-credentials: false + # - uses: taiki-e/cross-platform-actions-action@neoverse-v1 + # with: + # environment_variables: CARGO_INCREMENTAL CARGO_NET_RETRY CARGO_TERM_COLOR RUST_BACKTRACE RUST_TEST_THREADS RUSTDOCFLAGS RUSTFLAGS RUSTUP_MAX_RETRIES TEST_FEATURES + # operating_system: ${{ matrix.os }} + # architecture: aarch64 + # version: ${{ matrix.version }} + # shell: bash + # run: | + # set -eEuxo pipefail + # export RUSTFLAGS="${RUSTFLAGS} --cfg qemu" + # # AArch64 FreeBSD/OpenBSD are tier 3 targets, so install rust from package manager instead of rustup. + # case "$(uname -s)" in + # FreeBSD) sudo pkg install -y rust ;; + # OpenBSD) + # # As of OpenBSD 7.3, the built-in git library is very slow. + # export CARGO_NET_GIT_FETCH_WITH_CLI=true + # # OpenBSD 7.3's rustc version is 1.68, which sparse protocol is not default protocol. + # export CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse + # sudo pkg_add git rust + # ;; + # esac + # rustc -vV + # cargo test --features std --tests -- aarch64 - build: - needs: tidy - name: build (${{ matrix.name || matrix.rust }}) - strategy: - fail-fast: false - matrix: - include: - - rust: '1.34' - - rust: '1.59' - - rust: stable - - rust: beta - - rust: nightly - # The oldest nightly that can compile this crate is nightly-2019-01-27 - # which Atomic{I,U}{8,16,32,64} stabilized. - # https://github.com/rust-lang/rust/pull/57425 - # Note: Old nightly compilers are essentially fragile, so support for - # them is on a best-effort basis. - - rust: nightly-2019-01-27 - # https://github.com/taiki-e/portable-atomic/pull/52 - - rust: nightly-2020-06-21 - # for AVR: https://github.com/rust-lang/compiler-builtins/issues/400 - - rust: nightly-2020-12-26 - # Check that test suite can be built - - name: nightly, --tests - rust: nightly - tests: 1 - # Check that this crate can be built for all builtin targets - - name: stable, all tier1/tier2 - rust: stable - target-group: tier1/tier2 - # Skip targets that also checked by other matrix. - skip-default-target: 1 - - name: nightly, all tier1/tier2 - rust: nightly - target-group: tier1/tier2 - skip-default-target: 1 - - name: nightly, all tier3 - rust: nightly - target-group: tier3 - skip-default-target: 1 - runs-on: ubuntu-latest - timeout-minutes: 120 # TODO - steps: - - uses: actions/checkout@v4 - with: - persist-credentials: false - - uses: taiki-e/github-actions/free-device-space@main - if: matrix.target-group == '' - - name: Install Rust - run: rustup toolchain add ${{ matrix.rust }} --no-self-update && rustup default ${{ matrix.rust }} - - uses: taiki-e/install-action@cargo-hack - - run: tools/build.sh - env: - TESTS: ${{ matrix.tests }} - TARGET_GROUP: ${{ matrix.target-group }} - SKIP_DEFAULT_TARGET: ${{ matrix.skip-default-target }} + # build: + # needs: tidy + # name: build (${{ matrix.name || matrix.rust }}) + # strategy: + # fail-fast: false + # matrix: + # include: + # - rust: '1.34' + # - rust: '1.59' + # - rust: stable + # - rust: beta + # - rust: nightly + # # The oldest nightly that can compile this crate is nightly-2019-01-27 + # # which Atomic{I,U}{8,16,32,64} stabilized. + # # https://github.com/rust-lang/rust/pull/57425 + # # Note: Old nightly compilers are essentially fragile, so support for + # # them is on a best-effort basis. + # - rust: nightly-2019-01-27 + # # https://github.com/taiki-e/portable-atomic/pull/52 + # - rust: nightly-2020-06-21 + # # for AVR: https://github.com/rust-lang/compiler-builtins/issues/400 + # - rust: nightly-2020-12-26 + # # Check that test suite can be built + # - name: nightly, --tests + # rust: nightly + # tests: 1 + # # Check that this crate can be built for all builtin targets + # - name: stable, all tier1/tier2 + # rust: stable + # target-group: tier1/tier2 + # # Skip targets that also checked by other matrix. + # skip-default-target: 1 + # - name: nightly, all tier1/tier2 + # rust: nightly + # target-group: tier1/tier2 + # skip-default-target: 1 + # - name: nightly, all tier3 + # rust: nightly + # target-group: tier3 + # skip-default-target: 1 + # runs-on: ubuntu-latest + # timeout-minutes: 120 # TODO + # steps: + # - uses: actions/checkout@v4 + # with: + # persist-credentials: false + # - uses: taiki-e/github-actions/free-device-space@main + # if: matrix.target-group == '' + # - name: Install Rust + # run: rustup toolchain add ${{ matrix.rust }} --no-self-update && rustup default ${{ matrix.rust }} + # - uses: taiki-e/install-action@cargo-hack + # - run: tools/build.sh + # env: + # TESTS: ${{ matrix.tests }} + # TARGET_GROUP: ${{ matrix.target-group }} + # SKIP_DEFAULT_TARGET: ${{ matrix.skip-default-target }} - no-std: - needs: tidy - strategy: - fail-fast: false - matrix: - rust: - - '1.64' - - stable - - nightly - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - with: - persist-credentials: false - - name: Install Rust - run: rustup toolchain add ${{ matrix.rust }} --no-self-update && rustup default ${{ matrix.rust }} - - uses: taiki-e/install-action@cargo-hack - if: startsWith(matrix.rust, 'nightly') - - uses: taiki-e/install-action@v2 - with: - tool: espup - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: startsWith(matrix.rust, 'nightly') - - run: | - set -eEuxo pipefail - sudo apt-get -o Acquire::Retries=10 -qq update && sudo apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends \ - avr-libc \ - gcc-avr \ - qemu-system-arm \ - qemu-system-misc \ - simavr - # APT's qemu package doesn't provide firmware for riscv32: https://packages.ubuntu.com/en/jammy/all/qemu-system-data/filelist - OPENSBI_VERSION=1.3.1 # https://github.com/riscv-software-src/opensbi/releases - curl --proto '=https' --tlsv1.2 -fsSL --retry 10 --retry-connrefused "https://github.com/riscv-software-src/opensbi/releases/download/v${OPENSBI_VERSION}/opensbi-${OPENSBI_VERSION}-rv-bin.tar.xz" \ - | tar xJf - - sudo mv "opensbi-${OPENSBI_VERSION}-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin" /usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.bin - sudo mv "opensbi-${OPENSBI_VERSION}-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.elf" /usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf - rm -rf "opensbi-${OPENSBI_VERSION}-rv-bin" - - run: espup install --targets esp32 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: startsWith(matrix.rust, 'nightly') - - run: tools/no-std.sh - - run: tools/build.sh +esp xtensa-esp32-none-elf - if: startsWith(matrix.rust, 'nightly') - - run: tools/no-std.sh +esp xtensa-esp32-none-elf - if: startsWith(matrix.rust, 'nightly') + # no-std: + # needs: tidy + # strategy: + # fail-fast: false + # matrix: + # rust: + # - '1.64' + # - stable + # - nightly + # runs-on: ubuntu-latest + # timeout-minutes: 60 + # steps: + # - uses: actions/checkout@v4 + # with: + # persist-credentials: false + # - name: Install Rust + # run: rustup toolchain add ${{ matrix.rust }} --no-self-update && rustup default ${{ matrix.rust }} + # - uses: taiki-e/install-action@cargo-hack + # if: startsWith(matrix.rust, 'nightly') + # - uses: taiki-e/install-action@v2 + # with: + # tool: espup + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # if: startsWith(matrix.rust, 'nightly') + # - run: | + # set -eEuxo pipefail + # sudo apt-get -o Acquire::Retries=10 -qq update && sudo apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends \ + # avr-libc \ + # gcc-avr \ + # qemu-system-arm \ + # qemu-system-misc \ + # simavr + # # APT's qemu package doesn't provide firmware for riscv32: https://packages.ubuntu.com/en/jammy/all/qemu-system-data/filelist + # OPENSBI_VERSION=1.3.1 # https://github.com/riscv-software-src/opensbi/releases + # curl --proto '=https' --tlsv1.2 -fsSL --retry 10 --retry-connrefused "https://github.com/riscv-software-src/opensbi/releases/download/v${OPENSBI_VERSION}/opensbi-${OPENSBI_VERSION}-rv-bin.tar.xz" \ + # | tar xJf - + # sudo mv "opensbi-${OPENSBI_VERSION}-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin" /usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.bin + # sudo mv "opensbi-${OPENSBI_VERSION}-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.elf" /usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf + # rm -rf "opensbi-${OPENSBI_VERSION}-rv-bin" + # - run: espup install --targets esp32 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # if: startsWith(matrix.rust, 'nightly') + # - run: tools/no-std.sh + # - run: tools/build.sh +esp xtensa-esp32-none-elf + # if: startsWith(matrix.rust, 'nightly') + # - run: tools/no-std.sh +esp xtensa-esp32-none-elf + # if: startsWith(matrix.rust, 'nightly') - miri: - needs: tidy - strategy: - fail-fast: false - matrix: - include: - - target: x86_64-unknown-linux-gnu - - target: x86_64-unknown-linux-gnu - flags: -C target-feature=+cmpxchg16b - - target: aarch64-unknown-linux-gnu - - target: i686-unknown-linux-gnu - - target: powerpc64le-unknown-linux-gnu - - target: s390x-unknown-linux-gnu - runs-on: 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 --component miri && rustup default nightly - # - run: sudo apt-get -o Acquire::Retries=10 -qq update && sudo apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends moreutils - - run: echo "TARGET=--target=${{ matrix.target }}" >>"${GITHUB_ENV}" - if: matrix.target != 'x86_64-unknown-linux-gnu' - - run: tools/test.sh miri $TARGET - env: - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} ${{ matrix.flags }} - RUSTFLAGS: ${{ env.RUSTFLAGS }} ${{ matrix.flags }} + # miri: + # needs: tidy + # strategy: + # fail-fast: false + # matrix: + # include: + # - target: x86_64-unknown-linux-gnu + # - target: x86_64-unknown-linux-gnu + # flags: -C target-feature=+cmpxchg16b + # - target: aarch64-unknown-linux-gnu + # - target: i686-unknown-linux-gnu + # - target: powerpc64le-unknown-linux-gnu + # - target: s390x-unknown-linux-gnu + # runs-on: 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 --component miri && rustup default nightly + # # - run: sudo apt-get -o Acquire::Retries=10 -qq update && sudo apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends moreutils + # - run: echo "TARGET=--target=${{ matrix.target }}" >>"${GITHUB_ENV}" + # if: matrix.target != 'x86_64-unknown-linux-gnu' + # - run: tools/test.sh miri $TARGET + # env: + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} ${{ matrix.flags }} + # RUSTFLAGS: ${{ env.RUSTFLAGS }} ${{ matrix.flags }} - san: - needs: tidy - strategy: - fail-fast: false - matrix: - sanitizer: - - address - - memory - - thread - runs-on: 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: sudo apt-get -o Acquire::Retries=10 -qq update && sudo apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends moreutils - - run: | - echo "ASAN_OPTIONS=detect_stack_use_after_return=1" >>"${GITHUB_ENV}" - echo "RUSTFLAGS=${RUSTFLAGS} -Z sanitizer=address" >>"${GITHUB_ENV}" - echo "RUSTDOCFLAGS=${RUSTDOCFLAGS} -Z sanitizer=address" >>"${GITHUB_ENV}" - if: matrix.sanitizer == 'address' - - run: | - echo "MSAN_OPTIONS=verbosity=2" >>"${GITHUB_ENV}" - echo "RUSTFLAGS=${RUSTFLAGS} -Z sanitizer=memory -Z sanitizer-memory-track-origins" >>"${GITHUB_ENV}" - echo "RUSTDOCFLAGS=${RUSTDOCFLAGS} -Z sanitizer=memory -Z sanitizer-memory-track-origins" >>"${GITHUB_ENV}" - if: matrix.sanitizer == 'memory' - - run: | - echo "RUSTFLAGS=${RUSTFLAGS} -Z sanitizer=thread" >>"${GITHUB_ENV}" - echo "RUSTDOCFLAGS=${RUSTDOCFLAGS} -Z sanitizer=thread" >>"${GITHUB_ENV}" - if: matrix.sanitizer == 'thread' - - run: tools/test.sh -Z build-std -vv - # We test doctest only once with the default build conditions because doctest is slow. Both api-test - # and src/tests have extended copies of doctest, so this will not reduce test coverage. - # +cmpxchg16b - - run: tools/test.sh -Z build-std -vv --tests - env: - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics - RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics + # san: + # needs: tidy + # strategy: + # fail-fast: false + # matrix: + # sanitizer: + # - address + # - memory + # - thread + # runs-on: 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: sudo apt-get -o Acquire::Retries=10 -qq update && sudo apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends moreutils + # - run: | + # echo "ASAN_OPTIONS=detect_stack_use_after_return=1" >>"${GITHUB_ENV}" + # echo "RUSTFLAGS=${RUSTFLAGS} -Z sanitizer=address" >>"${GITHUB_ENV}" + # echo "RUSTDOCFLAGS=${RUSTDOCFLAGS} -Z sanitizer=address" >>"${GITHUB_ENV}" + # if: matrix.sanitizer == 'address' + # - run: | + # echo "MSAN_OPTIONS=verbosity=2" >>"${GITHUB_ENV}" + # echo "RUSTFLAGS=${RUSTFLAGS} -Z sanitizer=memory -Z sanitizer-memory-track-origins" >>"${GITHUB_ENV}" + # echo "RUSTDOCFLAGS=${RUSTDOCFLAGS} -Z sanitizer=memory -Z sanitizer-memory-track-origins" >>"${GITHUB_ENV}" + # if: matrix.sanitizer == 'memory' + # - run: | + # echo "RUSTFLAGS=${RUSTFLAGS} -Z sanitizer=thread" >>"${GITHUB_ENV}" + # echo "RUSTDOCFLAGS=${RUSTDOCFLAGS} -Z sanitizer=thread" >>"${GITHUB_ENV}" + # if: matrix.sanitizer == 'thread' + # - run: tools/test.sh -Z build-std -vv + # # We test doctest only once with the default build conditions because doctest is slow. Both api-test + # # and src/tests have extended copies of doctest, so this will not reduce test coverage. + # # +cmpxchg16b + # - run: tools/test.sh -Z build-std -vv --tests + # env: + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics + # RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics - valgrind: - needs: tidy - runs-on: 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: sudo apt-get -o Acquire::Retries=10 -qq update && sudo apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends moreutils - - uses: taiki-e/install-action@valgrind - - run: tools/test.sh valgrind -vv - # +cmpxchg16b - - run: tools/test.sh valgrind -vv - env: - # vmovdqa load/store path has been tested above, disable outline-atomics and test cmpxchg16b load/store path. - RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics - RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics + # valgrind: + # needs: tidy + # runs-on: 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: sudo apt-get -o Acquire::Retries=10 -qq update && sudo apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends moreutils + # - uses: taiki-e/install-action@valgrind + # - run: tools/test.sh valgrind -vv + # # +cmpxchg16b + # - run: tools/test.sh valgrind -vv + # env: + # # vmovdqa load/store path has been tested above, disable outline-atomics and test cmpxchg16b load/store path. + # RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics + # RUSTFLAGS: ${{ env.RUSTFLAGS }} -C target-feature=+cmpxchg16b --cfg portable_atomic_no_outline_atomics - codegen: - needs: tidy - runs-on: ubuntu-latest - timeout-minutes: 60 - permissions: - contents: write - pull-requests: write - steps: - - uses: actions/checkout@v4 - with: - persist-credentials: false - - name: Install Rust - run: rustup toolchain add nightly --no-self-update --component rustfmt && rustup default nightly - - run: tools/no_atomic.sh - - run: tools/gen.sh - - id: diff - run: tools/ci/gen.sh - if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main') - - uses: peter-evans/create-pull-request@v5 - with: - title: Update generated code - body: | - Auto-generated by [create-pull-request][1] - [Please close and immediately reopen this pull request to run CI.][2] + # codegen: + # needs: tidy + # runs-on: ubuntu-latest + # timeout-minutes: 60 + # permissions: + # contents: write + # pull-requests: write + # steps: + # - uses: actions/checkout@v4 + # with: + # persist-credentials: false + # - name: Install Rust + # run: rustup toolchain add nightly --no-self-update --component rustfmt && rustup default nightly + # - run: tools/no_atomic.sh + # - run: tools/gen.sh + # - id: diff + # run: tools/ci/gen.sh + # if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main') + # - uses: peter-evans/create-pull-request@v5 + # with: + # title: Update generated code + # body: | + # Auto-generated by [create-pull-request][1] + # [Please close and immediately reopen this pull request to run CI.][2] - [1]: https://github.com/peter-evans/create-pull-request - [2]: https://github.com/peter-evans/create-pull-request/blob/HEAD/docs/concepts-guidelines.md#workarounds-to-trigger-further-workflow-runs - branch: update-generated-code - if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main') && steps.diff.outputs.success == 'false' - - run: git add -N . && git diff --exit-code + # [1]: https://github.com/peter-evans/create-pull-request + # [2]: https://github.com/peter-evans/create-pull-request/blob/HEAD/docs/concepts-guidelines.md#workarounds-to-trigger-further-workflow-runs + # branch: update-generated-code + # if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main') && steps.diff.outputs.success == 'false' + # - run: git add -N . && git diff --exit-code