name: Continuous Integration v2.x #trigger when these occur on: push: branches: - v2 pull_request: types: - opened - edited - reopened branches: - v2 workflow_dispatch: #CI workflows using a matrix jobs: run-test-cases: continue-on-error: true strategy: matrix: platforms: - { os: ubuntu-latest, preinstall: sudo apt-get install gdb, gdb_skip: false } - { os: windows-latest, preinstall: , gdb_skip: false } - { os: macos-latest, preinstall: , gdb_skip: true } commands: - { exec: make tests, gdb: false } - { exec: make tests-gdb, gdb: true } runs-on: ${{ matrix.platforms.os }} steps: - uses: actions/checkout@v4 - name: Preinstall dependencies run: ${{ matrix.platforms.preinstall }} - name: run the test cases if: matrix.commands.gdb == false || matrix.platforms.gdb_skip == false run: ${{ matrix.commands.exec }} #TODO: hook this up to real script files, preferably in the test section run-test-repl-scripts: continue-on-error: true needs: run-test-cases strategy: matrix: platforms: - { os: ubuntu-latest } - { os: windows-latest } - { os: macos-latest } commands: - { build: make repl, run: out/repl.exe -f '../scripts/example.toy' } - { build: make repl, run: out/repl.exe -f '../scripts/example-print.toy' } - { build: make repl, run: out/repl.exe -f '../scripts/example-variables.toy' } runs-on: ${{ matrix.platforms.os }} steps: - uses: actions/checkout@v4 - name: compile the repl run: ${{ matrix.commands.build }} - name: run the repl scripts run: ${{ matrix.commands.run }}