Skip to content

Run MATLAB Build on GitHub-Hosted Runner #79

Run MATLAB Build on GitHub-Hosted Runner

Run MATLAB Build on GitHub-Hosted Runner #79

Workflow file for this run

name: Run MATLAB Build on GitHub-Hosted Runner
on:
workflow_dispatch
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
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
- name: Run MATLAB Tests and Generate Coverage
uses: matlab-actions/run-tests@v2
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: Debug Coverage File
run: cat source/code-coverage/coverage.xml
- name: SonarCloud Scan
uses: SonarSource/sonarqube-scan-action@v5
with:
projectBaseDir: source
args: >
-Dsonar.organization=mw-jsgeorge
-Dsonar.projectKey=mw-jsgeorge-TimesTableApp
-Dsonar.language=text
-Dsonar.inclusions=**/*.m
-Dsonar.coverageReportPaths=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*