diff options
author | Philip Herron <philip.herron@embecosm.com> | 2022-08-10 10:48:15 +0100 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2022-08-10 10:51:26 +0100 |
commit | 50bb06ce3b990c2e282b7245b5fdcea119f6385f (patch) | |
tree | 328046e104f3a59e011845eac11969c8d3999205 | |
parent | 6496291f34b929764d90ce5a6d0b05ca4753d53f (diff) | |
download | gcc-50bb06ce3b990c2e282b7245b5fdcea119f6385f.zip gcc-50bb06ce3b990c2e282b7245b5fdcea119f6385f.tar.gz gcc-50bb06ce3b990c2e282b7245b5fdcea119f6385f.tar.bz2 |
Seperate 64 and 32 bit testing combos into seperate jobs
Change the CI requirements to have seperate jobs for 64 and 32 bit testing.
It also runs both combinations on the gcc4.8 build job. Bors only requires
the normal build check 64bit job to pass to minimize impact.
-rw-r--r-- | .github/bors.toml | 2 | ||||
-rw-r--r-- | .github/workflows/ccpp.yml | 85 |
2 files changed, 82 insertions, 5 deletions
diff --git a/.github/bors.toml b/.github/bors.toml index 89486ef..36914c2 100644 --- a/.github/bors.toml +++ b/.github/bors.toml @@ -1,5 +1,5 @@ status = [ - "build-and-check" + "build-and-check-ubuntu-64bit" ] # Uncomment this to use a two hour timeout. # The default is one hour. diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index b49d525..c886740 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -1,4 +1,4 @@ -name: C/C++ CI +name: GCC Rust build and test on: push: @@ -9,7 +9,7 @@ on: branches: [ master ] jobs: - build-and-check: + build-and-check-ubuntu-64bit: env: # Force locale, in particular for reproducible results re '.github/bors_log_expected_warnings' (see below). @@ -67,7 +67,84 @@ jobs: - name: Run Tests run: | cd gccrs-build; \ - make check-rust RUNTESTFLAGS="--target_board=unix\{-m32,-m64}" + make check-rust RUNTESTFLAGS="--target_board=unix\{-m64}" + - name: Archive check-rust results + uses: actions/upload-artifact@v2 + with: + name: check-rust-logs + path: | + gccrs-build/gcc/testsuite/rust/ + - name: Check regressions + run: | + cd gccrs-build; \ + if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ + then \ + echo "::error title=Regression test failed::some tests are not correct"; \ + perl -n ../.github/emit_test_errors.pl < gcc/testsuite/rust/rust.sum; \ + exit 1; \ + else \ + exit 0; \ + fi + + build-and-check-ubuntu-32bit: + + env: + # Force locale, in particular for reproducible results re '.github/bors_log_expected_warnings' (see below). + LC_ALL: C.UTF-8 + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Install Deps + run: | + sudo apt-get update; + sudo apt-get install -y \ + automake \ + autoconf \ + libtool \ + autogen \ + bison \ + flex \ + libgmp3-dev \ + libmpfr-dev \ + libmpc-dev \ + build-essential \ + gcc-multilib \ + g++-multilib \ + dejagnu + + - name: Configure + run: | + mkdir -p gccrs-build; + cd gccrs-build; + ../configure \ + --enable-languages=rust \ + --disable-bootstrap \ + --enable-multilib + + - name: Build + shell: bash + run: | + cd gccrs-build; \ + make -Otarget -j $(nproc) 2>&1 | tee log + + - name: Check for new warnings + run: | + cd gccrs-build + < log grep 'warning: ' | sort > log_warnings + if diff -U0 ../.github/bors_log_expected_warnings log_warnings; then + : + else + echo 'See <https://github.com/Rust-GCC/gccrs/pull/1026>.' + exit 1 + fi >&2 + + - name: Run Tests + run: | + cd gccrs-build; \ + make check-rust RUNTESTFLAGS="--target_board=unix\{-m32}" - name: Archive check-rust results uses: actions/upload-artifact@v2 with: @@ -131,7 +208,7 @@ jobs: - name: Run Tests run: | cd gccrs-build; \ - make check-rust + make check-rust RUNTESTFLAGS="--target_board=unix\{-m32,-m64}" - name: Archive check-rust results uses: actions/upload-artifact@v2 |