Skip to content

framework-flame 24.10.0 #277

framework-flame 24.10.0

framework-flame 24.10.0 #277

Workflow file for this run

# 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 }}