Skip to content

Fedora CI

Fedora CI #313

Workflow file for this run

---
name: Fedora CI
on:
push:
branches:
- main
pull_request:
branches:
- main
schedule:
- cron: '0 10 * * 1'
jobs:
build:
name: Fedora
strategy:
fail-fast: false
matrix:
# Fedora release targets
release: [36, 37, 38, rawhide]
runs-on: ubuntu-latest
container:
image: registry.fedoraproject.org/fedora:${{matrix.release}}
options: --security-opt seccomp=unconfined
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Copr support and make
run: dnf install dnf-plugins-core make -y
- name: Enable AUFOVER copr repositories
run: |
dnf copr enable -y @aufover/divine
dnf copr enable -y @aufover/predator
if [[ "${{matrix.release}}" =~ 36 ]]; then
dnf copr enable -y @aufover/symbiotic
fi
- name: Update the system and install dependencies
run: |
dnf config-manager --set-enabled updates-testing
dnf config-manager --set-enabled updates-testing-modular
dnf update -y
DNF_OPTS=-y make install-deps
- name: Check that all expected tools are present and working
run: |
make configure
for tool in cbmc cppcheck divine predator; do
grep TOOL_ENABLE_${tool} workdir/CMakeCache.txt
done
# benchmark requires CLANG 14+ and GCC 12+
case "${{matrix.release}}" in
36)
grep TOOL_ENABLE_symbiotic workdir/CMakeCache.txt
;;
37)
grep TOOL_ENABLE_clang workdir/CMakeCache.txt
;;
*)
grep TOOL_ENABLE_clang workdir/CMakeCache.txt
grep TOOL_ENABLE_gcc workdir/CMakeCache.txt
;;
esac
# first run only cheap tests, so that we can report failures sooner
- name: Cheap tests
run: CTEST_OPTS='-LE EXPENSIVE' make check
- name: Test single-c/sync.sh script
run: |
SYNC_EXISTING_ONLY=1 tests/single-c/sync.sh -LE EXPENSIVE
CTEST_OPTS='-LE EXPENSIVE' make check
- name: Expensive tests
run: CTEST_OPTS='-L EXPENSIVE' make check
# try to use source directory as a working directory
- name: In-source tests
run: |
cd tests
cmake .
ctest -j$(nproc) --output-on-failure -LE EXPENSIVE
# logs are useful only when something fails
- name: Upload Artifact
if: failure()
uses: actions/upload-artifact@v3
with:
name: fedora-${{matrix.release}}
path: workdir/
retention-days: 14