Skip to content

Commit

Permalink
240419.222357.HKT add compile_mex.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
zaikunzhang committed Apr 19, 2024
1 parent baa2a1c commit af8327c
Showing 1 changed file with 139 additions and 0 deletions.
139 changes: 139 additions & 0 deletions .github/workflows/compile_mex.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
name: Compile MEX

on:
# Trigger the workflow on push or pull request
workflow_dispatch:
inputs:
git-ref:
description: Git Ref (Optional)
required: false

# Show the git ref in the workflow name if it is invoked manually.
run-name: ${{ github.event_name == 'workflow_dispatch' && format('Manual run {0}', inputs.git-ref) || '' }}


jobs:
test:
name: Compile MEX
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-2019, windows-2021, macos-11, macos-12, macos-13]
matlab: [R2020b, R2021a, R2021b, R2022a, R2022b, R2023a, R2023b, latest]

exclude:

# Below R2022a, MEX is extremely slow on macOS
- os: macos-11
matlab: R2020b
- os: macos-11
matlab: R2021a
- os: macos-11
matlab: R2021b

- os: macos-latest
matlab: R2020b
- os: macos-latest
matlab: R2021a
- os: macos-latest
matlab: R2021b

- os: macos-13
matlab: R2020b
- os: macos-13
matlab: R2021a
- os: macos-13
matlab: R2021b

# Only R2021a/b and R2022a are available on Windows 2019. Test on R2021a often fails due to overtime.
- os: windows-2019
matlab: R2020b
- os: windows-2019
matlab: R2021a
- os: windows-2019
matlab: R2022b
- os: windows-2019
matlab: R2023a
- os: windows-2019
matlab: R2023b
- os: windows-2019
matlab: latest

# Below R2022a, MEX does not work on windows-latest due to the version of MS Visual Studio;
# R2022a/b should work according to the documentation of MathWorks and GitHub Actions, but
# they do not as of March 2022
- os: windows-latest
matlab: R2020a
- os: windows-latest
matlab: R2020b
- os: windows-latest
matlab: R2021a
- os: windows-latest
matlab: R2021b
- os: windows-latest
matlab: R2022a
- os: windows-latest
matlab: R2022b


steps:

- name: Set http.postBuffer and core.compression
# This is a workaround for random "early EOF" of checkout.
# See https://github.com/actions/checkout/issues/748, https://github.com/actions/checkout/issues/1379
if: startsWith(matrix.os, 'windows')
run: git config --global http.postBuffer 1048576000 && git config --global core.compression 0

- name: Clone Repository (Latest)
uses: actions/checkout@v4
if: github.event.inputs.git-ref == ''
with:
submodules: recursive
# ssh-key: ${{ secrets.SSH_PRIVATE_KEY_ACT }} # This forces checkout to use SSH, not HTTPS
# As of 231227, checkout with ssh fails frequently on Windows runners.
- name: Clone Repository (Custom Ref)
uses: actions/checkout@v4
if: github.event.inputs.git-ref != ''
with:
ref: ${{ github.event.inputs.git-ref }}
submodules: recursive
# ssh-key: ${{ secrets.SSH_PRIVATE_KEY_ACT }} # This forces checkout to use SSH, not HTTPS
# As of 231227, checkout with ssh fails frequently on Windows runners.

- name: Miscellaneous setup
run: bash .github/scripts/misc_setup

- name: Install Intel oneAPI on macOS
if: startsWith(matrix.os, 'macos')
run: bash .github/scripts/install_oneapi_macos.sh

- name: Install Intel oneAPI on Windows
if: startsWith(matrix.os, 'windows')
#run: cmd.exe "/K" '".github\scripts\install_oneapi_windows.bat"' # As of MATLAB R2023a, oneAPI 2024 does not work. Try again later.
run: cmd.exe "/K" '".github\scripts\install_oneapi_windows.bat 2023"'

- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v2.1.2
with:
release: ${{ matrix.matlab }}
cache: true
products: Parallel_Computing_Toolbox

- name: Compile the MEX functions
uses: matlab-actions/run-command@v2.1.1
with:
command: |
options.debug = true;
options.single = true;
options.quadruple = true;
options.classical = false;
options.verbose = true;
setup(options)
- name: Store artifacts
uses: actions/upload-artifact@v4.3.1
with:
name: ${{ matrix.os }}-${{ matrix.matlab }}
path: ${{ env.TEST_DIR }}/prima

0 comments on commit af8327c

Please sign in to comment.