GNU Octave for continuous integration

Matlab CI is often a better choice than Octave below.


Cross-platform developers run into numerous compatibility issues. Rather than wait for frustrated users to report such a bug, use continuous integration.

Here are CI templates using GNU Octave tests of .m code. Octave oruntests() is incompatible with the advanced functionality of Matlab runtests(),

GitHub Actions: “.github/workflows/ci.yml”:

name: ci

on:
  push:
    paths:
    - "**.m"
    - ".github/workflows/ci.yml"

jobs:

  linux:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout

    - run: |
        sudo apt update
        sudo apt install --no-install-recommends octave        

    - run: octave --eval "test_myfuncs"
      working-directory: tests

  windows:
    runs-on: windows-latest
    steps:
    - uses: actions/checkout
    - run: choco install octave.portable

    - run: octave --eval "test_myfuncs"
      working-directory: tests