Skip to content

Commit

Permalink
Intial push
Browse files Browse the repository at this point in the history
  • Loading branch information
acampbel committed Feb 29, 2024
1 parent 0913213 commit c444dcd
Show file tree
Hide file tree
Showing 196 changed files with 1,469 additions and 1 deletion.
28 changes: 28 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
* text=auto

*.fig binary
*.mat binary
*.mdl binary diff merge=mlAutoMerge
*.mdlp binary
*.mex* binary
*.mlapp binary
*.mldatx binary
*.mlproj binary
*.mlx binary
*.p binary
*.sfx binary
*.sldd binary
*.slreqx binary merge=mlAutoMerge
*.slmx binary merge=mlAutoMerge
*.sltx binary
*.slxc binary
*.slx binary merge=mlAutoMerge
*.slxp binary

## Other common binary file types
*.docx binary
*.exe binary
*.jpg binary
*.pdf binary
*.png binary
*.xlsx binary
134 changes: 134 additions & 0 deletions .github/workflows/matlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# This is a basic workflow to help you get started with MATLAB Actions

name: MATLAB Build

# Controls when the action will run.
on:
push: # Runs on push events
pull_request: # Runs on pull requests
workflow_dispatch: # Allows you to run this workflow manually from the Actions tab

env:
MLM_LICENSE_TOKEN: ${{ secrets.MLM_LICENSE_TOKEN }}
PRODUCT_LIST: MATLAB MATLAB_Test MATLAB_Compiler MATLAB_Compiler_SDK
MW_MATLAB_BATCH_URL_OVERRIDE: https://mw-ci-static-dev.s3.amazonaws.com/matlab-batch/v2/ # Not needed for production R2024a

jobs:

mex-and-unittests:
# This job will run for all the OS present in the matrix
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-13]

# The type of runner that the job will run on
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4

- name: Setup MATLAB
uses: matlab-actions/setup-matlab@v2-prerelease
with:
release: latest-including-prerelease
cache: true
products: ${{ env.PRODUCT_LIST }}

- name: Run ${{ matrix.os }} build to create MEX files and run unit tests
uses: matlab-actions/run-build@v2
with:
tasks: test

- name: Uploads mex files, test results, and build traces
uses: actions/upload-artifact@v4
with:
name: build-artifacts-${{ matrix.os }}
path: |
toolbox/**/*
results/
.buildtool/
release-toolbox:
# This job executes only after a successful completion of 'mex-and-unittests' job
needs: mex-and-unittests

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup MATLAB
uses: matlab-actions/setup-matlab@v2-prerelease
with:
release: latest-including-prerelease
cache: true
products: ${{ env.PRODUCT_LIST }}

- name: Start display server (required for building doc in MATLAB)
run: |
Xvfb :99 &
echo "DISPLAY=:99" >> $GITHUB_ENV
- name: Download Mac artifacts
uses: actions/download-artifact@v4
with:
pattern: build-artifacts-macos-13
merge-multiple: true

- name: Download Windows artifacts
uses: actions/download-artifact@v4
with:
pattern: build-artifacts-windows-latest
merge-multiple: true

- name: Download Linux artifacts
uses: actions/download-artifact@v4
with:
pattern: build-artifacts-ubuntu-latest
merge-multiple: true

- name: Build the toolbox, including all OS specific files
uses: matlab-actions/run-build@v2
with:
tasks: release

- name: Upload Toolbox
uses: actions/upload-artifact@v4
with:
name: Mass-Spring-Damper Toolbox (All platforms)
path: release/Mass-Spring-Damper.mltbx


deploy-service:
# This job executes only after a successful completion of 'mex-and-unittests' job
needs: mex-and-unittests


runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup MATLAB
uses: matlab-actions/setup-matlab@v2-prerelease
with:
release: latest-including-prerelease
cache: true
products: ${{ env.PRODUCT_LIST }}

- name: Download Linux artifacts(to benefit from incremental build)
uses: actions/download-artifact@v4
with:
pattern: build-artifacts-ubuntu-latest
merge-multiple: true

- name: Build the ctf archive and run equivalence integration tests
uses: matlab-actions/run-build@v2
with:
tasks: deploy

- name: Upload Production Server Archive
uses: actions/upload-artifact@v4
with:
name: Mass-Spring-Damper Production Server Archive
path: results/ctf-archive
71 changes: 71 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Publish to pages

# Controls when the action will run.
on:
# This workflow requires enabling pages in the repository settings.
# Therefore not running automatically on push and pr
#push: # Uncomment to runs on push events
#pull_request: # Runs on pull requests
workflow_dispatch: # Allows you to run this workflow manually from the Actions tab

env:
MLM_LICENSE_TOKEN: ${{ secrets.MLM_LICENSE_TOKEN }}
PRODUCT_LIST: MATLAB MATLAB_Test MATLAB_Compiler MATLAB_Compiler_SDK
MW_MATLAB_BATCH_URL_OVERRIDE: https://mw-ci-static-dev.s3.amazonaws.com/matlab-batch/v2/ # IGNORE - HOPEFULLY NOT BE IN FLORIDA

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build-workshop-pages:

environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v4

- name: Setup MATLAB
uses: matlab-actions/setup-matlab@v2-prerelease
with:
release: latest-including-prerelease
cache: true
products: ${{env.PRODUCT_LIST }}

- name: Start display server on linux (required for building doc)
run: |
Xvfb :99 &
echo "DISPLAY=:99" >> $GITHUB_ENV
# Build the toolbox
- name: Run the build to produce workshop html pages
uses: matlab-actions/run-build@v2
with:
tasks: workshop

- name: Upload pages
uses: actions/upload-pages-artifact@v3
with:
# Upload results
path: results

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
42 changes: 42 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Autosave files
*.asv
*.m~
*.autosave
*.slx.r*
*.mdl.r*

# Derived content-obscured files
*.p

# Compiled MEX files
*.mex*

# Packaged app and toolbox files
*.mlappinstall
*.mltbx

# Deployable archives
*.ctf

# Generated helpsearch folders
helpsearch*/

# Code generation folders
slprj/
sccprj/
codegen/

# Cache files
*.slxc

# Cloud based storage dotfile
.MATLABDriveTag

# Build traces
.buildtool/

# Test and build results
results/

# Digital thread
derived/
2 changes: 2 additions & 0 deletions MassSpringDamper.prj
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<MATLABProject xmlns="http://www.mathworks.com/MATLABProjectFile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"/>
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
# Mass-Spring-Damper-PFT-2024
Simple git project using a mass spring damper system to demonstrate
continuous integration for PFT Summit 2024.

[![Static Badge](https://img.shields.io/badge/PFT-Workshop-blue)](https://acampbel.github.io/Mass-Spring-Damper-PFT)
[![Static Badge](https://img.shields.io/badge/MATLAB-Test_Results-orange)](https://acampbel.github.io/Mass-Spring-Damper-PFT/test-results)
[![Static Badge](https://img.shields.io/badge/MATLAB-Code_Coverage-green)](https://acampbel.github.io/Mass-Spring-Damper-PFT/coverage)
Loading

0 comments on commit c444dcd

Please sign in to comment.