diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d62ac47dedb6..4e2647dd4273 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,6 +4,10 @@ on: - push - pull_request +env: + # Enable backtraces for easier debugging + RUST_BACKTRACE: 1 + jobs: build: runs-on: ubuntu-latest @@ -11,7 +15,10 @@ jobs: strategy: fail-fast: false matrix: - libgccjit_version: ["libgccjit.so", "libgccjit_without_int128.so", "libgccjit12.so"] + libgccjit_version: + - { gcc: "libgccjit.so", extra: "" } + - { gcc: "libgccjit_without_int128.so", extra: "" } + - { gcc: "libgccjit12.so", extra: "--no-default-features" } steps: - uses: actions/checkout@v2 @@ -28,7 +35,7 @@ jobs: uses: dawidd6/action-download-artifact@v2 with: workflow: main.yml - name: ${{ matrix.libgccjit_version }} + name: ${{ matrix.libgccjit_version.gcc }} path: gcc-build repo: antoyo/gcc search_artifacts: true # Because, instead, the action only check the last job ran and that won't work since we want multiple artifacts. @@ -78,19 +85,10 @@ jobs: key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('rust-toolchain') }} - name: Build - if: matrix.libgccjit_version != 'libgccjit12.so' run: | ./prepare_build.sh - ./build.sh - cargo test - ./clean_all.sh - - - name: Build - if: matrix.libgccjit_version == 'libgccjit12.so' - run: | - ./prepare_build.sh - ./build.sh --no-default-features - cargo test --no-default-features + ./build.sh ${{ matrix.libgccjit_version.extra }} + cargo test ${{ matrix.libgccjit_version.extra }} ./clean_all.sh - name: Prepare dependencies @@ -106,29 +104,25 @@ jobs: command: build args: --release - - name: Test - if: matrix.libgccjit_version != 'libgccjit12.so' + - name: Test mini_tests run: | - # Enable backtraces for easier debugging - export RUST_BACKTRACE=1 + ./test.sh --release --clean --build-sysroot --mini-tests ${{ matrix.libgccjit_version.extra }} - # Reduce amount of benchmark runs as they are slow - export COMPILE_RUNS=2 - export RUN_RUNS=2 - - ./test.sh --release - - - name: Test - if: matrix.libgccjit_version == 'libgccjit12.so' + - name: Test std_tests run: | - # Enable backtraces for easier debugging - export RUST_BACKTRACE=1 + ./test.sh --release --std-tests ${{ matrix.libgccjit_version.extra }} - # Reduce amount of benchmark runs as they are slow - export COMPILE_RUNS=2 - export RUN_RUNS=2 + - name: Test test_libcore + run: | + ./test.sh --release --test-libcore ${{ matrix.libgccjit_version.extra }} - ./test.sh --release --no-default-features + - name: Test extended_sysroot_tests + run: | + ./test.sh --release --extended-tests ${{ matrix.libgccjit_version.extra }} + + - name: Test test_rustc + run: | + ./test.sh --release --test-rustc ${{ matrix.libgccjit_version.extra }} duplicates: runs-on: ubuntu-latest diff --git a/test.sh b/test.sh index 635641980d74..4815704f10b7 100755 --- a/test.sh +++ b/test.sh @@ -17,13 +17,14 @@ export LIBRARY_PATH="$GCC_PATH" flags= gcc_master_branch=1 channel="debug" -func=all +funcs=() build_only=0 while [[ $# -gt 0 ]]; do case $1 in --release) codegen_channel=release + channel="release" shift ;; --release-sysroot) @@ -40,37 +41,41 @@ while [[ $# -gt 0 ]]; do flags="$flags --features $1" shift ;; - --release) - channel="release" - shift - ;; "--test-rustc") - func=test_rustc + funcs+=(test_rustc) shift ;; "--test-libcore") - func=test_libcore + funcs+=(test_libcore) shift ;; "--clean-ui-tests") - func=clean_ui_tests + funcs+=(clean_ui_tests) + shift + ;; + "--clean") + funcs+=(clean) shift ;; "--std-tests") - func=std_tests + funcs+=(std_tests) shift ;; "--extended-tests") - func=extended_sysroot_tests + funcs+=(extended_sysroot_tests) + shift + ;; + "--mini-tests") + funcs+=(mini_tests) shift ;; "--build-sysroot") - func=build_sysroot + funcs+=(build_sysroot) shift ;; "--build") @@ -87,7 +92,6 @@ done if [[ $channel == "release" ]]; then export CHANNEL='release' CARGO_INCREMENTAL=1 cargo rustc --release $flags - shift else echo $LD_LIBRARY_PATH export CHANNEL='debug' @@ -95,6 +99,7 @@ else fi if (( $build_only == 1 )); then + echo "Since it's `build-only`, exiting..." exit fi @@ -289,4 +294,11 @@ function all() { test_rustc } -$func +if [ ${#funcs[@]} -eq 0 ]; then + echo "No command passed, running `--all`..." + all +else + for t in ${funcs[@]}; do + $t + done +fi