Compare commits

..

18 Commits

Author SHA1 Message Date
quotentiroler
f1041cf773 auto create develop branch too 2026-02-07 09:05:23 -08:00
quotentiroler
ae5afafd75 CI: harden heredoc delimiters, add maintainer, fix formatting [skip ci] 2026-02-07 09:05:23 -08:00
quotentiroler
51ecca3828 CI: fix Greptile review findings (argjson, tag pattern, skip_tests guard) [skip ci] 2026-02-07 09:05:23 -08:00
quotentiroler
6f2f7894c9 docs: add core vs ClawHub policy and branch strategy to CONTRIBUTING.md [skip ci] 2026-02-07 09:05:23 -08:00
quotentiroler
b4b7712773 Update 2026-02-07 09:05:23 -08:00
quotentiroler
8c811194e3 CI: fix permissions, replace always() with !cancelled(), remove dead input [skip ci] 2026-02-07 09:05:23 -08:00
quotentiroler
d3518eaf9f CI: auto-create target branch if missing [skip ci] 2026-02-07 09:05:23 -08:00
quotentiroler
716f6ae376 CI: remove push trigger to prevent double-runs [skip ci] 2026-02-07 09:05:23 -08:00
quotentiroler
e200182043 CI: skip promotion for docs-only changes (paths-ignore) 2026-02-07 09:05:23 -08:00
quotentiroler
3e8c8916cc CI: fix main double-run, remove orphaned outputs, simplify release-orch ternary 2026-02-07 09:05:23 -08:00
quotentiroler
b43af44dc6 ci: progressive test gates lighter PRs, heavier staging 2026-02-07 09:05:23 -08:00
quotentiroler
b351ae1d8c ci: add concurrency controls and rollback workflow 2026-02-07 09:03:43 -08:00
quotentiroler
e8e55c24ef ci: fix workflow review findings (double-run, heredoc, permissions, notify) 2026-02-07 09:03:25 -08:00
quotentiroler
845eafaacb fix(ci): fix yaml formatting in workflow heredocs 2026-02-07 09:02:48 -08:00
quotentiroler
4f07791455 fix(ci): address Greptile review findings
- Remove undefined should_bump_version input from release.yml
- Fix Discord action variable expansion (single to double quotes)
- Add has_changes gate to changelog and test jobs
- Use unique heredoc delimiter to prevent collision with commit messages
2026-02-07 09:02:48 -08:00
quotentiroler
45789653c0 feat(ci): add hotfix workflow and pipeline documentation 2026-02-07 09:02:48 -08:00
quotentiroler
0003cd969e feat(ci): add auto-PR workflow for dev/* branches to develop 2026-02-07 09:02:48 -08:00
quotentiroler
6035bbcd2c feat(ci): implement staged branch promotion workflow
- Add testing-strategy.yml that calls existing ci.yml + adds macOS/smoke for stable
- Add promote-branch.yml for develop  alpha  beta  main promotion PRs
- Add deployment-strategy.yml for npm (alpha/beta/latest) + Docker (GHCR)
- Add release-orchestrator.yml to coordinate version  changelog  test  deploy
- Add version-operations.yml for YYYY.M.D versioning with prerelease suffixes
- Add generate-changelog.yml for conventional commit parsing
- Add release.yml manual trigger workflow
- Add discord-notify composite action for notifications
- Modify ci.yml to support workflow_call for reuse by testing-strategy
2026-02-07 09:02:48 -08:00
6 changed files with 45 additions and 49 deletions

View File

@@ -1,12 +1,18 @@
name: CI
on:
push:
branches: [main]
pull_request:
workflow_call:
# Called by testing-strategy.yml for staged releases
inputs:
test_stage:
description: "Testing stage: develop, alpha, beta, or stable. Controls which platform tests run."
required: false
type: string
default: ""
concurrency:
group: ci-${{ github.event.pull_request.number || github.sha }}
group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
@@ -187,6 +193,10 @@ jobs:
fi
checks-windows:
# Windows tests: beta+ staging only (not on regular PRs to save compute)
if: |
inputs.test_stage == 'beta' ||
inputs.test_stage == 'stable'
runs-on: blacksmith-4vcpu-windows-2025
env:
NODE_OPTIONS: --max-old-space-size=4096
@@ -295,12 +305,9 @@ jobs:
- name: Run ${{ matrix.task }} (${{ matrix.runtime }})
run: ${{ matrix.command }}
# Consolidated macOS job: runs TS tests + Swift lint/build/test sequentially
# on a single runner. GitHub limits macOS concurrent jobs to 5 per org;
# running 4 separate jobs per PR (as before) starved the queue. One job
# per PR allows 5 PRs to run macOS checks simultaneously.
macos:
if: github.event_name == 'pull_request'
checks-macos:
# macOS tests: stable staging only (not on regular PRs to save compute)
if: inputs.test_stage == 'stable'
runs-on: macos-latest
steps:
- name: Checkout

View File

@@ -3,15 +3,12 @@ name: Feature PR
# Auto-create PR from dev/* branches to develop
# This is the entry point for new features into the staging pipeline
# NOTE: push triggers disabled until staging pipeline is activated.
# To enable: uncomment the push block and remove workflow_dispatch.
# push:
# branches:
# - "dev/**"
# - "feature/**"
# - "fix/**"
on:
workflow_dispatch:
push:
branches:
- "dev/**"
- "feature/**"
- "fix/**"
concurrency:
group: feature-pr-${{ github.ref_name }}

View File

@@ -5,13 +5,10 @@ name: Hotfix PR
#
# Flow: hotfix/* → main (directly, with expedited review)
# NOTE: push triggers disabled until staging pipeline is activated.
# To enable: uncomment the push block and remove workflow_dispatch.
# push:
# branches:
# - "hotfix/**"
on:
workflow_dispatch:
push:
branches:
- "hotfix/**"
concurrency:
group: hotfix-${{ github.ref_name }}

View File

@@ -11,17 +11,15 @@ name: Promote Branch
#
# Merging to main triggers a release (handled separately by release workflow)
# NOTE: push triggers disabled until staging pipeline is activated.
# To enable: uncomment the push block below.
# push:
# branches:
# - develop
# - alpha
# - beta
# paths-ignore:
# - "docs/**"
# - "*.md"
on:
push:
branches:
- develop
- alpha
- beta
paths-ignore:
- "docs/**"
- "*.md"
workflow_dispatch:
inputs:
source_branch:

View File

@@ -7,16 +7,15 @@ name: Release Orchestrator
#
# Flow: version → changelog → test → deploy → release
# NOTE: push-to-main trigger disabled until staging pipeline is activated.
# To enable: uncomment the push block below.
# push:
# branches:
# - main
# paths-ignore:
# - "docs/**"
# - "*.md"
# - ".github/workflows/docs-*.yml"
on:
push:
branches:
- main
paths-ignore:
- "docs/**"
- "*.md"
- ".github/workflows/docs-*.yml"
workflow_call:
inputs:
release_type:

View File

@@ -97,17 +97,13 @@ Skills submitted as PRs to this repo will be redirected to ClawHub. If the core
## Branch Strategy
> **Note:** The staged promotion pipeline is not yet active. Workflows are in
> place but dormant. For now, open PRs targeting `main` as usual. Once the
> pipeline is activated, the flow below will apply.
We will use staged branch promotion to keep `main` stable:
We use staged branch promotion to keep `main` stable:
```
dev/* / feature/* / fix/* → develop → alpha → beta → main
```
### For External Contributors (once pipeline is active)
### For External Contributors
1. Fork the repo
2. Create your branch (`dev/my-feature`, `fix/some-bug`, etc.)
@@ -115,7 +111,9 @@ dev/* / feature/* / fix/* → develop → alpha → beta → main
4. CI runs lightweight checks only — no heavy platform tests on your PR
5. Once merged to `develop`, your changes promote through alpha → beta → main automatically
### For Maintainers (once pipeline is active)
**Do not target `main`** — PRs to `main` will be redirected to `develop`.
### For Maintainers
- **Regular changes**: merge to `develop`, let the pipeline promote
- **Hotfixes**: use `hotfix/*` branches for emergency fixes that bypass staging directly to `main`