108 lines
3.1 KiB
YAML
108 lines
3.1 KiB
YAML
name: Release and Publish to Comfy registry
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- 'pyproject.toml'
|
|
|
|
jobs:
|
|
publish-node:
|
|
name: Release and Publish Custom Node to registry
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.repository_owner == 'hayden-fr' }}
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Get current version
|
|
id: current_version
|
|
run: |
|
|
echo "version=$(cat pyproject.toml | grep 'version =' | cut -d'=' -f2 | xargs)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Check if tag exists
|
|
id: check-tag
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
const tag = `v${{ steps.current_version.outputs.version }}`;
|
|
try {
|
|
await github.rest.repos.getReleaseByTag({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
tag
|
|
});
|
|
return true
|
|
} catch (error) {
|
|
console.error(error)
|
|
return false
|
|
}
|
|
|
|
- name: Assert tag v${{ steps.current_version.outputs.version }} is not exist
|
|
run: |
|
|
if [ ${{ steps.check-tag.outputs.result }} == true ]; then
|
|
echo "Tag exists, skipping release"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 9
|
|
|
|
- name: Use Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: lts/*
|
|
cache: 'pnpm'
|
|
|
|
- name: Build and Package
|
|
run: |
|
|
pnpm install
|
|
pnpm run build
|
|
tar -czf dist.tar.gz assets/ py/ web/ __init__.py LICENSE pyproject.toml requirements.txt
|
|
|
|
- name: Create release draft
|
|
uses: softprops/action-gh-release@v2
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
files: |
|
|
dist.tar.gz
|
|
name: ${{ steps.current_version.outputs.version }}
|
|
tag_name: v${{ steps.current_version.outputs.version }}
|
|
draft: true
|
|
make_latest: true
|
|
|
|
- name: Prepare publish custom node to registry
|
|
run: |
|
|
find . -maxdepth 1 ! -name '.' ! -name 'dist.tar.gz' ! -name '.git' -exec rm -rf {} +
|
|
tar -xzf dist.tar.gz
|
|
rm -rf dist.tar.gz
|
|
|
|
# - name: Publish Custom Node
|
|
# uses: Comfy-Org/publish-node-action@main
|
|
# with:
|
|
# ## Add your own personal access token to your Github Repository secrets and reference it here.
|
|
# personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }}
|
|
#
|
|
# Publish Custom Node
|
|
# Copy from Comfy-Org/publish-node-action@main
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Install comfy-cli
|
|
shell: bash
|
|
run: |
|
|
pip install comfy-cli
|
|
|
|
- name: Publish Node
|
|
shell: bash
|
|
run: |
|
|
comfy --skip-prompt --no-enable-telemetry env
|
|
comfy node publish --token ${{ secrets.REGISTRY_ACCESS_TOKEN }}
|