Files
omriandClaude Opus 4.8 68910c584b ci: release-please flow + trunk-based dev, hygiene
Onboard ComfyUI-BRIA-API onto the Bria client-artifact conventions (matching
figma-plugin / photoshop-plugin / obs-backgroundremoval), adapted for a ComfyUI
custom node published to the Comfy Registry:

- release-please (release-please.yml, config, manifest baseline 2.1.19,
  release-type python): watches dev, opens a version-bump PR from Conventional
  Commits, cuts a vX.Y.Z tag + GitHub release on merge. Plain GITHUB_TOKEN is
  enough — publishing keys off the pyproject.toml version, not the tag.
- publish.yml: retargeted from main -> dev. Merging the release PR lands the
  pyproject.toml bump on dev, triggering the Comfy Registry publish.
- ci.yml: build check (compileall + pyproject.toml validity) + advisory ruff
  format, on PRs and pushes to dev.
- pr-title.yml: conventional-commit PR title gate.
- Hygiene: .agents convention (AGENTS.md + CLAUDE.md + canonical code-style rule
  + .claude/.cursor stubs), .pre-commit-config.yaml (ruff + generic hooks).

Version is no longer hand-bumped; dev is the single trunk.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-09 15:25:39 +03:00

72 lines
2.1 KiB
YAML

# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
# SPDX-FileCopyrightText: 2026 Bria AI <support@bria.ai>
#
# SPDX-License-Identifier: Apache-2.0
name: CI
on:
pull_request:
push:
branches: [dev]
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
# ComfyUI + torch are heavy host deps we don't install in CI; compileall
# catches syntax errors across all node modules without importing them.
- name: Compile all sources
run: python -m compileall -q nodes __init__.py
# pyproject.toml is the version source of record (release-please bumps it,
# and the Comfy Registry reads it) — fail fast if it stops parsing.
- name: Validate pyproject.toml
run: |
python - <<'PY'
import tomllib
with open("pyproject.toml", "rb") as f:
data = tomllib.load(f)
assert data["project"]["version"], "pyproject.toml [project].version missing"
assert data["tool"]["comfy"]["PublisherId"], "[tool.comfy].PublisherId missing"
print("pyproject.toml OK — version", data["project"]["version"])
PY
format:
name: Ruff format check (advisory)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install ruff
run: pip install ruff
# Advisory only: the existing tree predates any formatter and a whole-repo
# run would flag pre-existing files, so this never fails the check yet.
# Format files you touch with `ruff format <files>`; once the tree is
# clean, drop continue-on-error to make it a hard gate.
- name: Check formatting
continue-on-error: true
run: ruff format --check .