Tyler/eigup #9
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: | |
# | |
# MAYA | |
# | |
maya-win: | |
runs-on: windows-2019 | |
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: | |
# devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2020/Autodesk_Maya_2020_4_Update_DEVKIT_Windows.zip" | |
#- maya: "2022" | |
# devkit: "https://autodesk-adn-transfer.s3-us-west-2.amazonaws.com/ADN+Extranet/M%26E/Maya/devkit+2022/Autodesk_Maya_2022_3_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_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_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 | |
mkdir artifacts/pyModules | |
Copy-Item "./build/src/maya/${{env.BUILD_TYPE}}/simplex_maya.mll" -Destination "artifacts/plug-ins" | |
Copy-Item "./build/src/python/${{env.BUILD_TYPE}}/py*simplex.pyd" -Destination "artifacts/pyModules" | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: win64-${{matrix.maya}} | |
path: | | |
artifacts/plug-ins/simplex_maya.mll | |
artifacts/pyModules/py*simplex.pyd | |
maya-macos-11: | |
runs-on: macos-11 | |
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_3_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_DEVKIT_Mac.dmg" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install devkit | |
run: | | |
curl -o devkit.dmg ${{matrix.devkit}} | |
7z x devkit.dmg | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '11.7' | |
- name: Configure CMake | |
run: | | |
cmake -G Xcode -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 | |
mkdir -p artifacts/pyModules | |
cp ./build/src/maya/${{env.BUILD_TYPE}}/simplex_maya.bundle artifacts/plug-ins | |
cp ./build/src/python/${{env.BUILD_TYPE}}/py*simplex.so artifacts/pyModules | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: mac-${{matrix.maya}} | |
path: | | |
artifacts/plug-ins/simplex_maya.bundle | |
artifacts/pyModules/py*simplex.so | |
maya-macos-12: | |
runs-on: macos-12 | |
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_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}} | |
MOUNTDIR=$(hdiutil mount devkit.dmg | awk 'END {$1=$2=""; print $0}') | |
cp -r $MOUNTDIR . | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '13.4' | |
- name: Configure CMake | |
run: | | |
cmake -G Xcode -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 | |
mkdir -p artifacts/pyModules | |
cp ./build/src/maya/${{env.BUILD_TYPE}}/simplex_maya.bundle artifacts/plug-ins | |
cp ./build/src/python/${{env.BUILD_TYPE}}/py*simplex.so artifacts/pyModules | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: mac-${{matrix.maya}} | |
path: | | |
artifacts/plug-ins/simplex_maya.bundle | |
artifacts/pyModules/py*simplex.so | |
maya-linux: | |
runs-on: ubuntu-latest | |
container: scottenglert/maya-build:${{matrix.maya}} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
#- maya: "2022.3" | |
# year: "2022" | |
#- maya: "2023" | |
# year: "2023" | |
- maya: "2024" | |
year: "2024" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install latest cmake | |
run: | | |
python3 -m pip install cmake | |
- name: Configure CMake | |
run: | | |
mkdir build | |
cd build | |
cmake -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DMAYA_VERSION=${{matrix.maya}} -DMAYA_DEVKIT_BASE="/usr/autodesk/devkitBase" .. | |
- name: Build | |
run: cmake --build ./build --config ${{env.BUILD_TYPE}} | |
- name: Repath Artifacts | |
run: | | |
mkdir -p artifacts/plug-ins | |
mkdir -p artifacts/pyModules | |
cp ./build/src/maya/simplex_maya.so artifacts/plug-ins | |
cp ./build/src/python/py*simplex.so artifacts/pyModules | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-${{matrix.year}} | |
path: | | |
artifacts/plug-ins/simplex_maya.so | |
artifacts/pyModules/py*simplex.so | |
# | |
# PYTHON | |
# | |
python-win: | |
runs-on: windows-2019 | |
strategy: | |
fail-fast: false | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-tags: true | |
- name: Configure CMake | |
run: | | |
cmake -B ${{github.workspace}}/pybuild -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_MAYA=NO -DMAYA_PYTHON=NO -DSYSTEM_PY_VERSION=3 | |
- name: Build | |
run: | | |
cmake --build ${{github.workspace}}/pybuild --config ${{env.BUILD_TYPE}} | |
cp ./pybuild/src/python/${{env.BUILD_TYPE}}/pysimplex.pyd . | |
- name: Build Wheel | |
run: | | |
py -3 -m pip install -U build wheel hatch | |
py -3 -m hatch version $(git describe --tags --abbrev=0) | |
py -3 -m build --wheel | |
$PY_WHEEL = Get-ChildItem -Name dist/*.whl | |
py -3 -m wheel tags --remove --python-tag cp3 --abi-tag abi3 --platform-tag win_amd64 dist/$PY_WHEEL | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist/*.whl | |
python-macos: | |
runs-on: macos-12 | |
strategy: | |
fail-fast: false | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-tags: true | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '13.4' | |
- name: Configure CMake | |
run: | | |
cmake -G Xcode -B ${{github.workspace}}/pybuild -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_MAYA=NO -DMAYA_PYTHON=NO -DSYSTEM_PY_VERSION=3 | |
- name: Build | |
run: | | |
cmake --build ${{github.workspace}}/pybuild --config ${{env.BUILD_TYPE}} | |
cp ./pybuild/src/python/${{env.BUILD_TYPE}}/pysimplex.so . | |
- name: Build Wheel | |
run: | | |
python3 -m pip install -U build wheel hatch | |
python3 -m hatch version $(git describe --tags --abbrev=0) | |
python3 -m build --wheel | |
for PY_WHEEL in dist/*.whl | |
do | |
python3 -m wheel tags --remove --python-tag cp3 --abi-tag abi3 --platform-tag macosx_10_9_x86_64 ${PY_WHEEL} | |
done | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist/*.whl | |
python-linux: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-tags: true | |
- name: Configure CMake | |
run: | | |
cmake -B ${{github.workspace}}/pybuild -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_MAYA=NO -DMAYA_PYTHON=NO -DSYSTEM_PY_VERSION=3 | |
- name: Build | |
run: | | |
cmake --build ${{github.workspace}}/pybuild --config ${{env.BUILD_TYPE}} | |
cp ./pybuild/src/python/pysimplex.so . | |
- name: Build Wheel | |
run: | | |
python3 -m pip install -U build wheel hatch | |
python3 -m hatch version $(git describe --tags --abbrev=0) | |
python3 -m build --wheel | |
for PY_WHEEL in dist/*.whl | |
do | |
python3 -m wheel tags --remove --python-tag cp3 --abi-tag abi3 --platform-tag linux_x86_64 ${PY_WHEEL} | |
done | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist/*.whl | |
# | |
# SHIPPING | |
# | |
upload_release: | |
name: Upload release | |
needs: [maya-win, maya-linux, maya-macos-11, maya-macos-12, python-win, python-macos, python-linux] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-tags: true | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
# Omitting name: means "download all artifacts" | |
# Destination directory structure: | |
# ~/modules | |
# /simplex | |
# /<os_name>-<maya_major_version> | |
# /plug-ins | |
# simplex_maya.mll | |
# /py2Modules | |
# py2simplex.pyd | |
# /py3Modules | |
# py3simplex.pyd | |
# /simplex.mod | |
with: | |
path: modules/simplex | |
- name: Move Wheels | |
run: | | |
mv modules/simplex/wheels/*.whl . | |
rm -rf modules/simplex/wheels | |
- name: Display structure of working directory | |
run: ls -R | |
- name: Build Modfile | |
run: | | |
python buildmodfile.py modules/simplex.mod --name simplex --path modules/simplex | |
- name: Set env | |
run: | | |
LATEST_TAG=$(git describe --tags --abbrev=0) | |
echo "LatestTag: ${LATEST_TAG}" | |
echo "RELEASE_VERSION=${LATEST_TAG}" >> $GITHUB_ENV | |
- name: Create distribution | |
run: | | |
mkdir -p modules/simplex/scripts | |
cp -r ./simplexui modules/simplex/scripts | |
cd modules | |
zip -r ../simplex-${{ env.RELEASE_VERSION }}.zip . | |
cd .. | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: simplex-module | |
path: simplex-${{ env.RELEASE_VERSION }}.zip | |
- name: Upload distribution | |
if: ${{ startsWith(github.ref, 'refs/tags/v') }} | |
uses: "marvinpinto/action-automatic-releases@latest" | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
prerelease: false | |
files: | | |
*.zip | |
*.whl | |