Create a single-node tangent setup #32
Workflow file for this run
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 ] | |
env: | |
BUILD_TYPE: Release | |
jobs: | |
# | |
# Windows | |
# | |
# __ | |
# |\__/ \ | |
# | | | |
# | __ | | |
# \__/ \| | |
# | |
# | |
maya-win: | |
runs-on: windows-latest | |
strategy: | |
# Without this, all containers stop if any fail | |
# That's bad, we want to know whether it's only one | |
# or if it happens to multiples or all. | |
fail-fast: false | |
matrix: | |
include: | |
- maya: "2022" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2022/Autodesk_Maya_2022_5_Update_DEVKIT_Windows.zip" | |
- maya: "2023" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2023/Autodesk_Maya_2023_3_Update_DEVKIT_Windows.zip" | |
- maya: "2024" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2024/Autodesk_Maya_2024_2_Update_DEVKIT_Windows.zip" | |
- maya: "2025" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2025/Autodesk_Maya_2025_1_Update_DEVKIT_Windows.zip" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install devkit | |
run: | | |
Write-Host "Downloading Devkit: ${{matrix.devkit}}..." | |
Invoke-WebRequest -Uri ${{matrix.devkit}} -OutFile "$pwd/devkit.zip" | |
Write-Host "Extracting devkit.zip.." | |
Expand-Archive -LiteralPath devkit.zip -DestinationPath $pwd | |
- name: Configure CMake | |
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DMAYA_VERSION="${{matrix.maya}}" -DMAYA_DEVKIT_BASE="$pwd/devkitBase" | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
- name: Repath Artifacts | |
run: | | |
mkdir artifacts/plug-ins | |
Copy-Item "./build/${{env.BUILD_TYPE}}/TwistSpline.mll" -Destination "artifacts/plug-ins" | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-${{matrix.maya}} | |
path: | | |
artifacts/plug-ins/TwistSpline.mll | |
# Splitting mac-os into two different steps, as 2024 was made compatible with new arm architecture. | |
maya-macos-x86_64: | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- maya: "2022" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2022/Autodesk_Maya_2022_5_Update_DEVKIT_Mac.dmg" | |
- maya: "2023" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2023/Autodesk_Maya_2023_3_Update_DEVKIT_Mac.dmg" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install devkit | |
run: | | |
curl -o devkit.dmg ${{matrix.devkit}} | |
hdiutil attach devkit.dmg | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '14.3.1' | |
- name: Configure CMake | |
run: | | |
cmake -G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64 -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DMAYA_VERSION=${{matrix.maya}} -DMAYA_DEVKIT_BASE="/Volumes/devkitBase" | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
- name: Repath Artifacts | |
run: | | |
mkdir -p artifacts/plug-ins | |
cp ./build/${{env.BUILD_TYPE}}/TwistSpline.bundle artifacts/plug-ins | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: mac-${{matrix.maya}} | |
path: | | |
artifacts/plug-ins/TwistSpline.bundle | |
# This will be compiled for both x86_64 and arm64 architectures, as arm support has been added starting from Maya 2024. | |
maya-macos-arm64: | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- maya: "2024" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2024/Autodesk_Maya_2024_2_Update_DEVKIT_Mac.dmg" | |
- maya: "2025" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2025/Autodesk_Maya_2025_1_Update_DEVKIT_Mac.dmg" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install devkit | |
run: | | |
curl -o devkit.dmg ${{matrix.devkit}} | |
hdiutil attach devkit.dmg | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '14.3.1' | |
- name: Configure CMake | |
run: | | |
cmake -G Xcode -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DMAYA_VERSION=${{matrix.maya}} -DMAYA_DEVKIT_BASE="/Volumes/devkitBase" | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
- name: Repath Artifacts | |
run: | | |
mkdir -p artifacts/plug-ins | |
cp ./build/${{env.BUILD_TYPE}}/TwistSpline.bundle artifacts/plug-ins | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: mac-${{matrix.maya}} | |
path: | | |
artifacts/plug-ins/TwistSpline.bundle | |
maya-linux: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- maya: "2022" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2022/Autodesk_Maya_2022_5_Update_DEVKIT_Linux.tgz" | |
- maya: "2023" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2023/Autodesk_Maya_2023_3_Update_DEVKIT_Linux.tgz" | |
- maya: "2024" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2024/Autodesk_Maya_2024_2_Update_DEVKIT_Linux.tgz" | |
- maya: "2025" | |
devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2025/Autodesk_Maya_2025_1_Update_DEVKIT_Linux.tgz" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install OpenGL libraries | |
run: | | |
sudo apt install libglu1-mesa-dev | |
- name: Install devkit | |
run: | | |
curl -o devkit.tgz ${{matrix.devkit}} | |
tar xvzf devkit.tgz | |
- name: Configure CMake | |
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DMAYA_VERSION="${{matrix.maya}}" -DMAYA_DEVKIT_BASE="$PWD/devkitBase" | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
- name: Repath Artifacts | |
run: | | |
mkdir -p artifacts/plug-ins | |
cp "./build/TwistSpline.so" "artifacts/plug-ins" | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux-${{matrix.maya}} | |
path: | | |
artifacts/plug-ins/TwistSpline.so | |
# | |
# Shipping | |
# | |
# _________ | |
# |\ _ _ _ _\ | |
# | \________\ | |
# | | | | |
# | | | | |
# \|________| | |
# | |
# | |
upload_release: | |
name: Upload release | |
needs: [maya-win, maya-linux, maya-macos-x86_64, maya-macos-arm64] | |
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 |