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(), so we use our own test scripts.

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