3 Commits
Author SHA1 Message Date
Dario LipicarandClaude Opus 4.8 cfd75a6832 Add "Force build" option to all release workflows (#2)
* Add "Force build" option to the release workflows (#5)

"Release all modules" and each per-module "Release <module>" workflow now
take a `force_build` toggle on the Run-workflow form (off by default).
When on, it replaces the current published release even if the version is
unchanged — e.g. the submodule pointer moved while metadata.json#version
stayed the same.

The toggle threads down the existing wrapper chain to the action's
`skip_if_published` input (inverted), so signing config still lives in one
place:

  release-all.yml / release-<module>.yml  --force_build-->
    _release-module.yml  --skip_if_published: !force_build-->
      logos-modules-release-action/release.yml@v1

- _release-module.yml: new `force_build` input -> skip_if_published
- release-all.yml: dispatch input, passed through the matrix fan-out
- release-module.yml.template: dispatch input (so generated per-module
  workflows get it too)
- catalog.sh: matching `--force` flag for `release` / `release-all`
- README: document the toggle

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* Regenerate per-module release workflows with Force build option

The shared workflow machinery now carries the `force_build` toggle (synced
from logos-modules-release-base via the merge of #5), but the 14 existing
per-module `release-<module>.yml` files were generated from the old
template and still used `workflow_dispatch: {}`. Regenerate them from the
updated template so each per-module "Release <module>" run also exposes the
Force build option (replace the current published release when the version
is unchanged).

Mechanically identical to re-running scripts/add-module.sh's template
substitution; the only change per file is the force_build input + its
passthrough to _release-module.yml.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 11:46:49 -03:00
Dario LipicarandClaude Opus 4.7 cbd7c82648 scripts: add catalog.sh — run the catalog workflows via gh (#2)
* scripts: add catalog.sh — run the catalog workflows via gh

Publishing, unpublishing, and re-indexing a catalog meant opening the
repo's Actions tab and clicking "Run workflow" — for this repo and for
every fork. add-module.sh already covers the add-a-submodule step;
this is the missing CLI counterpart for *running* the workflows.

scripts/catalog.sh wraps `gh` with subcommands:

  release [<module>]   trigger release-<module>.yml; no arg lists the
                       catalog's modules (discovered from
                       release-*.yml at runtime)
  release-all          trigger release-all.yml
  rebuild-index        trigger rebuild-index.yml
  unpublish <module> [<version>] [--dry-run] [--keep-tags]
                       trigger unpublish.yml; mirrors the workflow
                       input defaults (real delete, delete_tags=true).
                       An interactive y/N guard fires only at a TTY, so
                       piped/CI use still matches the workflow's own
                       no-confirmation behaviour
  status               recent workflow runs (gh run list)
  watch [<run-id>]     follow a run to completion (gh run watch)

  --watch on the trigger subcommands follows the just-created run —
  resolved by diffing the workflow's newest run id before vs after the
  trigger, since `gh workflow run` returns no id.

Every call targets the current repo via `gh` (which reads the git
remote) — nothing is hardcoded, so the same script works unchanged in
this base repo and in any fork. Preflight checks `gh` is installed +
authenticated and that the cwd is a catalog repo.

README: quick-start step 4 gains the `./scripts/catalog.sh release-all`
alternative; the Layout tree lists the new script.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* scripts/catalog.sh: address PR review

Two fixes from the PR #2 Copilot review:

* print_usage read $0 after the script had already cd'd to the repo
  root — a relative invocation path (e.g. ../repo/scripts/catalog.sh)
  wouldn't resolve afterwards, breaking --help/usage. Capture an
  absolute SCRIPT_PATH from ${BASH_SOURCE[0]} before the cd and sed
  that instead.

* follow_new_run printed an error when it couldn't resolve the
  --watch'd run but still returned 0, so automation couldn't tell a
  watch failure from success. It now returns 1 (the trigger itself
  still succeeded); the status propagates out through run_workflow.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 17:15:10 -03:00
dlipicarandClaude Opus 4.7 da3c760e40 Initial fork-me skeleton for a Logos module catalog
Consumes logos-co/logos-modules-release-action@v1. Mirrors the
logos-modules-v2 production architecture (two-tier reusable
workflows, single-source signing config, rolling index) stripped to
a template:

- logos-repo.json with CHANGE-ME placeholders
- empty .gitmodules + submodules/.gitkeep
- _release-module.yml: signing config in one place (defaults to
  unsigned so a fresh fork works immediately; inline/external
  documented inline)
- release-all.yml: discovers modules from .gitmodules at run time
  (no hand-maintained matrix; clean no-op on an empty fork)
- release-module.yml.template + scripts/add-module.sh: one command
  to add a submodule and generate its per-module workflow
- rebuild-index.yml: passthrough to the action's index rebuilder
- README: fork-oriented quick start

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 14:30:49 -03:00