From 4765aa220a599dc4b9d437e745d8db6e0cae3246 Mon Sep 17 00:00:00 2001 From: Duncan Lilley Date: Tue, 11 Mar 2025 09:53:44 -0400 Subject: [PATCH] Enable automation of MATLAB tests (#59) * Add usage of `matlab-actions/run-tests` to test automation * Set up MATLAB prior to running tests in test action * Move MATLAB testing to separate job * Specify MATLAB version * Checkout before MATLAB tests * Resolve test failures * Update assertion * Temporarily update test action to run against all supported MATLAB versions * Leverage `testCase.assumeTrue` to skip tests in certain environments * Update tFormatCode `assumeTrue` condition * Update tFormatCode isApplicable check to check Java Swing again * Return isApplicable check to checking for the testing environment * Fix message text --- .github/workflows/test.yml | 25 ++++++++++++++++-- matlab/+matlabls/+internal/computeCodeData.p | Bin 3355 -> 3392 bytes .../handlers/folding/tGetFoldingRanges.m | 7 +++++ .../handlers/formatting/tFormatCode.m | 10 +++++++ .../indexing/tParseInfoFromDocument.m | 2 +- .../handlers/linting/tGetSuppressionEdits.m | 7 +++++ 6 files changed, 48 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c2455bc..64bef4e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,11 +16,12 @@ on: workflow_dispatch: jobs: - build-and-test: + typescript-build-and-test: name: ${{ matrix.os }}-${{ matrix.node-version }} runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: node-version: [18.x, 20.x, 22.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ @@ -37,5 +38,25 @@ jobs: run: npm ci - name: Build run: npm run compile - - name: Run Unit Tests + - name: Run TypeScript Unit Tests run: npm test + + matlab-test: + env: + MATLAB_TEST_ENVIRONMENT: 1 + name: ${{ matrix.matlab-version }}-${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + matlab-version: [R2021b, R2022a, R2022b, R2023a, R2023b, R2024a, latest] + os: [windows-latest, ubuntu-latest, macos-13] + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up MATLAB + uses: matlab-actions/setup-matlab@v2.2.0 + with: + release: ${{ matrix.matlab-version }} + - name: Run MATLAB Unit Tests + uses: matlab-actions/run-tests@v2.1.1 diff --git a/matlab/+matlabls/+internal/computeCodeData.p b/matlab/+matlabls/+internal/computeCodeData.p index 5eb7b413ab411bc59f06a6b5d9fd25f514071f05..1b1e94ba1b8d12510309ef8bb4c07cd0fcf6b2a7 100644 GIT binary patch literal 3392 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 WR_hA4{-7f@>{T`T1lSZl^YW3eos)3@ literal 3355 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