Skip to content

Update MATLAB test action to version 2.2.0 #95

Update MATLAB test action to version 2.2.0

Update MATLAB test action to version 2.2.0 #95

Workflow file for this run

name: Run MATLAB Build on GitHub-Hosted Runner
on:
push:
branches: [main]
env:
MLM_LICENSE_TOKEN: ${{ secrets.LICTOKEN }}
# SonarQube connection details
#SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
jobs:
check_test:
name: Run MATLAB Build & Test
strategy:
matrix:
os: [ubuntu-latest]
release: [latest-including-prerelease]
runs-on: ${{ matrix.os }}
#runs-on: self-hosted
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install MATLAB
uses: matlab-actions/setup-matlab@v2
with:
products: MATLAB_Compiler MATLAB_Test
cache: true
release: ${{ matrix.release }}
- name: Run build to check code and run unit tests
uses: matlab-actions/run-build@v2
with:
tasks: check test coverage
- name: Run MATLAB Tests and Generate Coverage
uses: matlab-actions/run-tests@v2.2.0
with:
source-folder: source
# Output location for JUnit-style test results
test-results-junit: test-results/results.xml
# Output location for Cobertura coverage report
code-coverage-cobertura: code-coverage/coverage.xml
- name: Upload Test Results Artifact
uses: actions/upload-artifact@v4
if: always()
with:
name: matlab-test-results
path: test-results/results.xml
- name: Upload Coverage Artifact
uses: actions/upload-artifact@v4
if: always()
with:
name: matlab-coverage-report
path: code-coverage/coverage.xml
- name: Upload Cobertura Coverage Artifact
uses: actions/upload-artifact@v4
if: always()
with:
name: matlab-cobertura-coverage-report
path: coverageReport.xml
- name: Debug Coverage File
run: cat code-coverage/coverage.xml
- name: Annotate coverage
uses: 5monkeys/cobertura-action@v13
with:
path: coverageReport.xml
minimum_coverage: 60
- name: Code Coverage Summary Report
uses: irongut/CodeCoverageSummary@v1.3.0
with:
filename: coverageReport.xml
# - name: SonarCloud Scan
# uses: SonarSource/sonarqube-scan-action@v5
# with:
# # projectBaseDir: .
# args: >
# -Dsonar.organization=mw-jsgeorge
# -Dsonar.projectKey=mw-jsgeorge-TimesTableApp
# -Dsonar.language=text
# -Dsonar.sources=source
# -Dsonar.inclusions=**/*.m
# -Dsonar.coverage.jacoco.xmlReportPaths=""
# -Dsonar.coverage.cobertura.reportPaths=code-coverage/coverage.xml
# -Dsonar.c.file.suffixes=-
# -Dsonar.cpp.file.suffixes=-
# -Dsonar.objc.file.suffixes=-
# env:
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
#SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
# - name: Set up JDK 17
# uses: actions/setup-java@v3
# with:
# java-version: '17'
# distribution: 'temurin'
# - name: Check Java version
# run: java -version
# - name: Add JAVA_HOME to PATH
# run: echo "${JAVA_HOME}/bin" >> $GITHUB_PATH
# - name: Download SonarScanner CLI
# run: |
# # Download and unzip SonarScanner CLI (example for Linux runner)
# wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.8.0.2856-linux.zip -O sonar-scanner.zip
# unzip sonar-scanner.zip
# mv sonar-scanner-4.8.0.2856-linux sonar-scanner
# echo "$(pwd)/sonar-scanner/bin" >> $GITHUB_PATH
# - name: Run SonarScanner CLI to upload coverage
# run: |
# java -version # Confirm Java 17 is in use
# sonar-scanner \
# -Dsonar.projectKey=mw-jsgeorge-TimesTableApp \
# -Dsonar.sources=source \
# -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \
# -Dsonar.login=${{ secrets.SONAR_TOKEN }} \
# -Dsonar.coverage.cobertura.reportPaths=code-coverage/coverage.xml
# deploy:
# # This job executes only after a successful completion of 'mex-and-unittests' job
# needs: check_test
# name: Generate Deploy Artifacts
# strategy:
# matrix:
# os: [ubuntu-latest, windows-latest]
# runs-on: ${{ matrix.os }}
# steps:
# - name: Check out repository
# uses: actions/checkout@v4
# - name: Install MATLAB
# uses: matlab-actions/setup-matlab@v2
# with:
# products: MATLAB_Compiler
# release: R2024a
# - name: Run build
# uses: matlab-actions/run-build@v2
# with:
# tasks: pcode deploy
# - name: Upload artifact
# uses: actions/upload-artifact@v4
# with:
# name: app-${{ matrix.os }}
# path: ./*standalone*/*timestable*