name: Fun with CMake on Ubuntu-Slim on: push: branches: [ "main" ] env: BUILD_TYPE: Release FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: build: runs-on: ubuntu-slim 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 doxygen graphviz libjson-c-dev libssl-dev -y - name: Configure CMake run: cmake -S . -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DFUN_DEBUG=OFF -DFUN_WITH_REPL=ON -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=ON -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 Opcode include checks. run: ./scripts/check_op_includes.py - 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 (extensions/curl) # run: ./scripts/run_examples.sh extensions/curl #- name: Run Examples (extensions/ini) # run: ./scripts/run_examples.sh extensions/ini - name: Run Examples (extensions/json) run: ./scripts/run_examples.sh extensions/json #- name: Run Examples (extensions/libressl) # run: ./scripts/run_examples.sh extensions/libressl #- name: Run Examples (extensions/libsql) # run: ./scripts/run_examples.sh extensions/libsql #- name: Run Examples (extensions/notcurses) # run: ./scripts/run_examples.sh extensions/notcurses - name: Run Examples (extensions/openssl) run: ./scripts/run_examples.sh extensions/openssl #- name: Run Examples (extensions/pcre2) # run: ./scripts/run_examples.sh extensions/pcre2 #- name: Run Examples (extensions/pcsc) # run: ./scripts/run_examples.sh extensions/pcsc #- name: Run Examples (extensions/sqlite) # run: ./scripts/run_examples.sh extensions/sqlite #- name: Run Examples (extensions/tcltk) # run: ./scripts/run_examples.sh extensions/tcltk #- name: Run Examples (extensions/xml2) # run: ./scripts/run_examples.sh extensions/xml2 - name: Run Examples (functions) run: ./scripts/run_examples.sh functions - 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