framework-flame 24.10.0 #277
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
# On release creation: | |
# - Build and publishes libraries to PyPi or | |
# - Building Connect plugin artifacts and upload them to the release | |
name: CI-PLUGIN-RELEASE | |
on: | |
release: | |
types: [created] | |
jobs: | |
# This job checks the tag pattern and decides whether to proceed or halt the workflow | |
check-tag: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check tag pattern | |
run: | | |
TAG_NAME=$(echo ${{ github.ref }} | sed 's|refs/tags/||') | |
echo "TAG_NAME=${TAG_NAME}" | |
# Define an array of supported tag prefixes | |
SUPPORTED_TAG_PREFIXES=("connect-publisher-widget/" "connect-timetracker-widget/" "nuke-studio/" "rv/" "framework-photoshop/" "framework-maya/" "framework-nuke/" "framework-premiere/" "framework-houdini/" "framework-harmony/" "framework-flame/") | |
# Initialize match flag as false | |
MATCH_FOUND=false | |
# Iterate over SUPPORTED_TAG_PREFIXES to check if TAG_NAME matches any prefix | |
for PREFIX in "${SUPPORTED_TAG_PREFIXES[@]}"; do | |
if [[ "${TAG_NAME}" == ${PREFIX}* ]]; then | |
MATCH_FOUND=true | |
break | |
fi | |
done | |
# If no match is found, exit with an error | |
if [[ "${MATCH_FOUND}" == false ]]; then | |
echo "The tag '${TAG_NAME}' does not match any supported TAG name." | |
exit 1 | |
fi | |
# Set the environment variables for the rest of release workflow | |
set-variables: | |
runs-on: ubuntu-latest | |
needs: check-tag | |
outputs: | |
folder: ${{ env.FOLDER }} | |
package: ${{ env.PACKAGE }} | |
version: ${{ env.VERSION }} | |
tag: ${{ env.TAG }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: set environments on full release | |
shell: bash | |
run: | | |
echo "PACKAGE=$(echo ${{ github.ref }} | cut -d/ -f 3-3)" >> $GITHUB_ENV | |
echo "VERSION=$(echo ${{ github.ref }} | cut -d/ -f 4-4)" >> $GITHUB_ENV | |
echo "TAG=$(echo ${{ github.ref }} | cut -d/ -f 3-4)" >> $GITHUB_ENV | |
- name: set projects folder | |
shell: bash | |
run: | | |
echo "FOLDER=projects/${{ env.PACKAGE }}" >> $GITHUB_ENV | |
- name: debug | |
shell: bash | |
run: | | |
echo 'FOLDER: ${{ env.FOLDER }}' | |
echo 'PACKAGE: ${{ env.PACKAGE }}' | |
echo 'VERSION: ${{ env.VERSION }}' | |
echo 'TAG: ${{ env.TAG }}' | |
build-package: | |
name: Build platform independent artifacts, and Linux specific artifacts | |
needs: set-variables | |
concurrency: | |
group: ci-${{ github.ref }} | |
if: ${{ needs.set-variables.outputs.package != 'framework-photoshop' && needs.set-variables.outputs.package != 'framework-premiere' && needs.set-variables.outputs.package != 'framework-harmony' }} | |
runs-on: ubuntu-latest | |
outputs: | |
package: ${{ needs.set-variables.outputs.package }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
if: ${{ needs.set-variables.outputs.package != 'framework-harmony' && needs.set-variables.outputs.package != 'framework-houdini'}} | |
with: | |
python-version: '3.7' | |
- uses: actions/setup-python@v4 | |
if: ${{ needs.set-variables.outputs.package == 'framework-harmony' || needs.set-variables.outputs.package == 'framework-houdini' || needs.set-variables.outputs.package == 'framework-flame'}} | |
with: | |
python-version: '3.9' | |
- name: install poetry | |
shell: bash | |
run: | | |
pip install poetry==1.5.1 | |
- name: poetry build | |
shell: bash | |
run: | | |
cd ${{ needs.set-variables.outputs.folder }} | |
poetry build | |
- name: build standard connect plugin | |
if: ${{ needs.set-variables.outputs.package == 'connect-publisher-widget' || needs.set-variables.outputs.package == 'connect-timetracker-widget' }} | |
shell: bash | |
run: | | |
pip install -r tools/requirements.txt | |
# Use --testpypi or --from_source to change where the deps are picked from | |
python tools/build.py --remove_intermediate_folder build_connect_plugin ${{ needs.set-variables.outputs.folder }} | |
- name: build standard framework DCC integration plugin | |
if: ${{ needs.set-variables.outputs.package == 'framework-maya' || needs.set-variables.outputs.package == 'framework-nuke' || needs.set-variables.outputs.package == 'framework-harmony' || needs.set-variables.outputs.package == 'framework-houdini' || needs.set-variables.outputs.package == 'framework-flame'}} | |
shell: bash | |
run: | | |
pip install -r tools/requirements.txt | |
# Use --testpypi or --from_source to change where the deps are picked from | |
python tools/build.py --remove_intermediate_folder --include_resources resource/bootstrap build_connect_plugin ${{ needs.set-variables.outputs.folder }} | |
- name: build nuke studio connect plugin | |
if: ${{ needs.set-variables.outputs.package == 'nuke-studio' }} | |
shell: bash | |
run: | | |
pip install -r tools/requirements.txt | |
python tools/build.py --remove_intermediate_folder --include_resources resource/plugin,resource/application_hook build_connect_plugin ${{ needs.set-variables.outputs.folder }} | |
- name: build rv connect plugin | |
if: ${{ needs.set-variables.outputs.package == 'rv' }} | |
shell: bash | |
run: | | |
pip install -r tools/requirements.txt | |
python tools/build.py --output_path /tmp build_rvpkg projects/rv | |
python tools/build.py --remove_intermediate_folder --include_assets $(find /tmp/ -type f -name "*.rvpkg") build_connect_plugin ${{ needs.set-variables.outputs.folder }} | |
- name: upload artifacts to release | |
shell: bash | |
run: | | |
cd ${{ needs.set-variables.outputs.folder }} | |
gh release upload ${{ needs.set-variables.outputs.tag }} dist/* --clobber | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Upload temp artifacts | |
uses: actions/upload-artifact@v4 | |
if: ${{ needs.set-variables.outputs.to_pypi == 'true' }} | |
with: | |
name: dist | |
path: ${{ needs.set-variables.outputs.folder }}/dist | |
# build-windows: | |
# name: Build Windows platform dependent artifacts | |
# needs: set-variables | |
# concurrency: | |
# group: ci-${{ github.ref }} | |
# if: ${{ needs.set-variables.outputs.package == 'framework-photoshop' }} | |
# runs-on: windows-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: actions/setup-python@v4 | |
# with: | |
# python-version: '3.7' | |
# - name: install poetry | |
# shell: bash | |
# run: | | |
# pip install poetry==1.5.1 | |
# - name: poetry build | |
# shell: bash | |
# run: | | |
# cd ${{ needs.set-variables.outputs.folder }} | |
# poetry build | |
# - name: build standard connect plugin | |
# shell: bash | |
# run: | | |
# pip install -r tools/requirements.txt | |
# python tools/build.py --remove_intermediate_folder build_connect_plugin ${{ needs.set-variables.outputs.folder }} | |
# - name: upload artifacts to release | |
# shell: bash | |
# run: | | |
# cd ${{ needs.set-variables.outputs.folder }} | |
# gh release upload ${{ needs.set-variables.outputs.tag }} dist/* --clobber | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
build-mac: | |
name: Build Mac platform dependent artifacts | |
needs: set-variables | |
concurrency: | |
group: ci-${{ github.ref }} | |
if: ${{ needs.set-variables.outputs.package == 'framework-photoshop' || needs.set-variables.outputs.package == 'framework-premiere' }} | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: install poetry | |
shell: bash | |
run: | | |
pip install poetry==1.5.1 | |
- name: poetry build | |
shell: bash | |
run: | | |
cd ${{ needs.set-variables.outputs.folder }} | |
poetry build | |
- name: build photoshop framework DCC integration plugin | |
if: ${{ needs.set-variables.outputs.package == 'framework-photoshop' }} | |
shell: bash | |
run: | | |
pip install -r tools/requirements.txt | |
# Use --testpypi or --from_source to change where the deps are picked from | |
python tools/build.py --remove_intermediate_folder build_connect_plugin ${{ needs.set-variables.outputs.folder }} | |
- name: build premiere framework DCC integration plugin | |
if: ${{ needs.set-variables.outputs.package == 'framework-premiere' }} | |
shell: bash | |
run: | | |
pip install -r tools/requirements.txt | |
# Use --testpypi or --from_source to change where the deps are picked from | |
python tools/build.py --remove_intermediate_folder --include_resources resource/presets build_connect_plugin ${{ needs.set-variables.outputs.folder }} | |
- name: Build CSS resources for CEP extension | |
if: ${{ needs.set-variables.outputs.package == 'framework-photoshop' || needs.set-variables.outputs.package == 'framework-premiere' }} | |
shell: bash | |
run: | | |
pip install -r tools/requirements.txt | |
python tools/build.py build_qt_resources --css_only libs/qt-style | |
- name: build CEP extension | |
if: ${{ needs.set-variables.outputs.package == 'framework-photoshop' || needs.set-variables.outputs.package == 'framework-premiere' }} | |
shell: bash | |
run: | | |
# Install ZXPsign | |
wget -c https://raw.github.com/Adobe-CEP/CEP-Resources/master/ZXPSignCMD/4.1.2/macOS/ZXPSignCmd-64bit.dmg -O /tmp/ZXPSignCmd-64bit.dmg | |
hdiutil attach /tmp/ZXPSignCmd-64bit.dmg | |
ln -s /Volumes/ZXPSignCmd-64bit/ZXPSignCmd-64bit /usr/local/bin/ZXPSignCMD | |
export ADOBE_CERTIFICATE_PASSWORD=${{ secrets.ADOBE_CERTIFICATE_PASSWORD }} | |
pip install -r tools/requirements.txt | |
python tools/build.py build_cep --remove_intermediate_folder ${{ needs.set-variables.outputs.folder }} | |
- name: upload artifacts to release | |
shell: bash | |
run: | | |
cd ${{ needs.set-variables.outputs.folder }} | |
gh release upload ${{ needs.set-variables.outputs.tag }} dist/* --clobber | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |