name: C/C++ CI on: push: branches: - trying - staging pull_request: branches: [ master ] jobs: build-and-check: 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 .' exit 1 fi >&2 - name: Run Tests run: | cd gccrs-build; \ make check-rust RUNTESTFLAGS="--target_board=unix\{-m32,-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-gcc-48: runs-on: ubuntu-18.04 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-4.8 \ g++-4.8 \ gcc-4.8-multilib \ g++-4.8-multilib \ dejagnu - name: Configure run: | mkdir -p gccrs-build; cd gccrs-build; ../configure \ CC='gcc-4.8' \ CXX='g++-4.8' \ --enable-languages=rust \ --disable-bootstrap \ --enable-multilib - name: Build shell: bash run: | make -C gccrs-build -j $(nproc) - name: Run Tests run: | cd gccrs-build; \ make check-rust - name: Archive check-rust results uses: actions/upload-artifact@v2 with: name: check-rust-logs-4.8 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"; \ exit 1; \ else \ exit 0; \ fi build-and-check-clang-macos: env: # Force CC/CXX to be explicitly clang to make it clear which compiler is used CC: clang CXX: clang++ runs-on: macos-latest steps: - uses: actions/checkout@v2 - name: Install Deps run: | brew install dejagnu mpfr libmpc gmp - name: Configure run: | mkdir -p gccrs-build; cd gccrs-build; ../configure \ --enable-languages=rust \ --disable-bootstrap \ --enable-multilib \ --with-native-system-header-dir=/usr/include \ --with-sysroot=$(xcrun --show-sdk-path) - name: Build shell: bash run: | cd gccrs-build; \ make -j $(sysctl -n hw.ncpu) 2>&1 | tee log - name: Run Tests run: | cd gccrs-build; \ make check-rust - name: Archive check-rust results uses: actions/upload-artifact@v2 with: name: check-rust-logs-macos 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"; \ exit 1; \ else \ exit 0; \ fi