Skip to content
Open
135 changes: 117 additions & 18 deletions .github/workflows/test-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,36 +11,135 @@ on:
workflow_dispatch:

jobs:
test-smoke:
name: smoke-${{ matrix.version }}-${{ matrix.os }}
runs-on: ${{ matrix.os }}
build-linux:
name: build-linux
runs-on: ubuntu-latest
steps:
- &checkout
name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- &setup-node
name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18.x
- &install-dependencies
name: Install dependencies
run: npm run project-install-clean
- &setup-test
name: Setup tests
run: npm run test-setup
- name: Upload build artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: build-linux
path: out

build-windows:
name: build-windows
runs-on: windows-latest
steps:
- *checkout
- *setup-node
- *install-dependencies
- *setup-test
- name: Upload build artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: build-windows
path: out

build-macos:
name: build-macos
runs-on: macos-14
steps:
- *checkout
- *setup-node
- *install-dependencies
- *setup-test
- name: Upload build artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: build-macos
path: out

# SMOKE TESTS
test-smoke-linux:
name: Smoke Test ${{ matrix.version }}-linux
needs: build-linux
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: [R2021b, R2022a, R2022b, latest]
os: [windows-latest, ubuntu-latest, macos-14]
steps:
- name: Checkout
uses: actions/checkout@v4
- *checkout
- &download-linux-build-artifacts
name: Download build artifacts
uses: actions/download-artifact@v4
with:
submodules: recursive
- name: Set up MATLAB
name: build-linux
- &setup-MATLAB
name: Set up MATLAB
uses: matlab-actions/setup-matlab@v2
with:
release: ${{ matrix.version }}
- name: Setup node
uses: actions/setup-node@v4
- name: npm clean install
run: npm run project-install-clean
- name: Start Xvfb
- *setup-node
- *install-dependencies
- name: Start Xvfb
run: /usr/bin/Xvfb :17 -screen 0 1024x768x24 > /dev/null 2>&1 & echo "Started xvfb"
shell: bash
if: ${{ success() && matrix.os == 'ubuntu-latest' }}
- name: Run tests
- &run-smoke-tests
name: Run Smoke tests
run: npm run test-smoke
env:
MLM_WEB_LICENSE: true
MLM_WEB_ID: ${{secrets.MLM_WEB_ID}}
MLM_WEB_USER_CRED: ${{secrets.MLM_WEB_USER_CRED}}
MLM_WEB_ID: ${{ secrets.MLM_WEB_ID }}
MLM_WEB_USER_CRED: ${{ secrets.MLM_WEB_USER_CRED }}
DISPLAY: ":17.0"
VSCODE_VERSION: "insider"
VSCODE_VERSION: "insider"

test-smoke-windows:
name: Smoke Test ${{ matrix.version }}-windows
needs: build-windows
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
version: [R2021b, R2022a, R2022b, latest]
steps:
- *checkout
- &download-windows-build-artifacts
name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-windows
- *setup-MATLAB
- *setup-node
- *install-dependencies
- *run-smoke-tests

test-smoke-macos:
name: Smoke Test ${{ matrix.version }}-macos
needs: build-macos
runs-on: macos-14
strategy:
fail-fast: false
matrix:
version: [R2021b, R2022a, R2022b, latest]
steps:
- *checkout
- &download-macos-build-artifacts
name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-macos
- *setup-MATLAB
- *setup-node
- *install-dependencies
- *run-smoke-tests
Loading
Loading