name: CMake for Fun on Ubuntu-Latest on: push: branches: [ "main" ] env: BUILD_TYPE: Release jobs: build: runs-on: ubuntu-latest defaults: run: working-directory: ${{github.workspace}} steps: - uses: actions/checkout@v4 - name: Update apt run: sudo apt update - name: Upgrade apt run: sudo apt upgrade -y - name: Install dependencies run: sudo apt install cmake libjson-c-dev -y - name: Configure CMake run: cmake -S . -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DFUN_DEBUG=OFF -DFUN_WITH_REPL=OFF -DFUN_WITH_PCSC=OFF -DFUN_WITH_LIBSQL=OFF -DFUN_WITH_SQLITE=OFF -DFUN_WITH_CURL=OFF -DFUN_WITH_PCRE2=OFF -DFUN_WITH_XML2=OFF -DFUN_WITH_JSON=ON -DFUN_WITH_TCLTK=OFF -DFUN_WITH_INI=OFF -DFUN_WITH_NOTCURSES=OFF -DFUN_WITH_CPP=ON -DFUN_WITH_OPENSSL=OFF -DFUN_WITH_LIBRESSL=OFF -DFUN_WITH_YAML=OFF -DFUN_USE_MUSL=OFF -DFUN_WITH_RUST=OFF - name: Build run: cmake --build build --config ${{env.BUILD_TYPE}} --target all - name: Test working-directory: ${{github.workspace}}/build run: ctest -C ${{env.BUILD_TYPE}} - name: Run Examples run: ./scripts/run_examples.sh - name: Run Examples (algos) run: ./scripts/run_examples.sh algos - name: Run Examples (arrays) run: ./scripts/run_examples.sh arrays - name: Run Examples (basics) run: ./scripts/run_examples.sh basics - name: Run Examples (compose) run: ./scripts/run_examples.sh compose - name: Run Examples (crypto) run: ./scripts/run_examples.sh crypto #- name: Run Examples (extra) # run: ./scripts/run_examples.sh extra - name: Run Examples (io) run: ./scripts/run_examples.sh io - name: Run Examples (math) run: ./scripts/run_examples.sh math - name: Run Examples (patterns) run: ./scripts/run_examples.sh patterns - name: Run Examples (strings) run: ./scripts/run_examples.sh strings