Add an euler filter to the cv-orient twists so we don't get unintende… #43
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
push: | |
branches: [ master ] | |
tags: | |
- v* | |
pull_request: | |
branches: [ master ] | |
jobs: | |
compile_plugin: | |
strategy: | |
matrix: | |
maya: [2022, 2023, 2024, 2025] | |
os: [macos-13, macos-latest, ubuntu-latest, windows-latest] | |
include: | |
# Add the maya update versions here | |
- maya: 2022 | |
update: 5 | |
- maya: 2023 | |
update: 3 | |
- maya: 2024 | |
update: 2 | |
- maya: 2025 | |
update: 1 | |
# OS specific vars | |
- os: macos-latest | |
os_name_u: Mac | |
os_name: mac | |
ext: bundle | |
zip: dmg | |
- os: macos-13 | |
os_name_u: Mac | |
os_name: mac | |
ext: bundle | |
zip: dmg | |
- os: windows-latest | |
os_name_u: Windows | |
os_name: windows | |
ext: mll | |
zip: zip | |
- os: ubuntu-latest | |
os_name_u: Linux | |
os_name: linux | |
ext: so | |
zip: tgz | |
# cross-compiling is annoying so just fall back to macos-13 | |
exclude: | |
- os: macos-latest | |
maya: 2022 | |
- os: macos-latest | |
maya: 2023 | |
- os: macos-13 | |
maya: 2024 | |
- os: macos-13 | |
maya: 2025 | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
env: | |
DEVKIT_URL: https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+${{ matrix.maya }}/Autodesk_Maya_${{ matrix.maya }}_${{ matrix.update }}_Update_DEVKIT_${{ matrix.os_name_u }}.${{ matrix.zip }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name : Install ninja | |
uses: seanmiddleditch/gha-setup-ninja@v5 | |
- name : Install Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- name : install meson | |
run : pip install meson | |
- name: Restore Devkit Cache | |
id: cache-devkit | |
uses: actions/cache/restore@v4 | |
with: | |
path: ${{ runner.temp }}/devkit/devkit.${{ matrix.zip }} | |
key: ${{ matrix.os }}-Maya${{ matrix.maya }}-Update${{ matrix.update }} | |
- name: Download Devkit | |
if: ${{ steps.cache-devkit.outputs.cache-hit != 'true' }} | |
run: | | |
mkdir ${{ runner.temp }}/devkit | |
curl -o ${{ runner.temp }}/devkit/devkit.${{ matrix.zip }} ${{ env.DEVKIT_URL }} | |
- name: Save Devkit Cache | |
if: ${{ steps.cache-devkit.outputs.cache-hit != 'true' }} | |
id: cache-devkit-save | |
uses: actions/cache/save@v4 | |
with: | |
path: ${{ runner.temp }}/devkit/devkit.${{ matrix.zip }} | |
key: ${{ matrix.os }}-Maya${{ matrix.maya }}-Update${{ matrix.update }} | |
- name: Install OpenGL libraries Linux | |
if: ${{ matrix.os_name == 'linux' }} | |
run: | | |
sudo apt install libglu1-mesa-dev | |
- name : Unpack Devkit Windows | |
if: ${{ matrix.os_name == 'windows' }} | |
run: Expand-Archive -LiteralPath "${{ runner.temp }}/devkit/devkit.zip" -DestinationPath "${{ runner.temp }}/devkit" | |
- name : Unpack Devkit Mac | |
if: ${{ matrix.os_name == 'mac' }} | |
run: hdiutil attach ${{ runner.temp }}/devkit/devkit.dmg -mountroot ${{ runner.temp }}/devkit | |
- name : Unpack Devkit Linux | |
if: ${{ matrix.os_name == 'linux' }} | |
run: tar xvzf ${{ runner.temp }}/devkit/devkit.tgz -C ${{ runner.temp }}/devkit | |
- name: Setup | |
run: > | |
meson | |
setup | |
-Dmaya:maya_version="${{ matrix.maya }}" | |
-Dmaya:maya_devkit_base="${{ runner.temp }}/devkit/devkitBase" | |
--buildtype debugoptimized | |
--vsenv | |
--backend ninja | |
${{ github.workspace }}/build | |
- name: Compile | |
run: | | |
meson compile -C ${{ github.workspace }}/build | |
- name: Package | |
run: | | |
mkdir artifacts | |
mkdir artifacts/plug-ins | |
cp ${{ github.workspace }}/build/TwistSpline.${{ matrix.ext }} artifacts/plug-ins | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.os_name }}-${{ matrix.maya }} | |
path: | | |
artifacts/plug-ins/TwistSpline.${{ matrix.ext }} | |
# Shipping | |
# | |
# _________ | |
# |\ _ _ _ _\ | |
# | \________\ | |
# | | | | |
# | | | | |
# \|________| | |
# | |
# | |
upload_release: | |
name: Upload release | |
needs: compile_plugin | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
# Omitting name: means "download all artifacts" | |
# Destination directory structure: | |
# ~/modules | |
# /TwistSpline | |
# /<os_name>-<maya_major_version> | |
# /icons | |
# /plug-ins | |
# TwistSpline.mll | |
# /scripts | |
# *.py | |
# *.mel | |
# /TwistSpline.mod | |
with: | |
path: modules/TwistSpline | |
- name: Set env | |
run: | | |
LATEST_TAG=$(git describe --tags --abbrev=0 || echo "NOTAG") | |
echo "LatestTag: ${LATEST_TAG}" | |
echo "RELEASE_VERSION=${LATEST_TAG}" >> $GITHUB_ENV | |
- name: Create distribution | |
run: | | |
cp ./TwistSpline.mod modules/ | |
mkdir -p modules/TwistSpline/scripts | |
cp -r ./scripts modules/TwistSpline | |
mkdir -p modules/TwistSpline/icons | |
cp ./icons/*.png modules/TwistSpline/icons | |
cp ./icons/*.xpm modules/TwistSpline/icons | |
zip -r TwistSpline-${{env.RELEASE_VERSION}}.zip modules/ | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: TwistSpline-module | |
path: TwistSpline-${{env.RELEASE_VERSION}}.zip | |
- name: Upload distribution | |
if: ${{ startsWith(github.ref, 'refs/tags/v') }} | |
uses: softprops/action-gh-release@v1 | |
with: | |
token: "${{ secrets.GITHUB_TOKEN }}" | |
prerelease: false | |
files: | | |
*.zip |