feat(site-publish): scope publication with an artifacts selection
Test / contract (pull_request) Successful in 7s
Test / contract (pull_request) Successful in 7s
A repository whose artifacts ship on different cadences has no way to publish one of them. Baseline needs it: every merge to main must put the catalogue live in under five minutes, while `dist/` is content-addressed and may only be written by a tag release. Today the action iterates cfg["artifacts"] unconditionally, so the only lever is deleting the distributions artifact from site.yaml — which changes the stored publication contract and drives the route-retirement path. The new `artifacts:` input names the subset this run builds and publishes. Selection scopes the build, the immutable preflight, the CORS reconcile, the S3 sync, and credential resolution. It deliberately does not scope manifest rendering or the immutable-path history: those stay whole, so a scoped run can never retire another artifact's route or delete its bucket contents. An undeclared name fails before the first bucket is touched; `enabled: false` refuses a selection because decommissioning is whole-site. Default is unchanged: no input publishes every declared artifact. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UjQqc4qFmdpAWaYfy2Aypb
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
9287e4861a
commit
3dfee64335
@@ -28,6 +28,13 @@ inputs:
|
||||
description: Gitea username for git operations
|
||||
required: false
|
||||
default: ci-bot
|
||||
artifacts:
|
||||
# Scopes building and publishing only. Routes, Ingresses and the immutable
|
||||
# -path history are always rendered from the whole site.yaml, so a scoped
|
||||
# run never retires another artifact's route.
|
||||
description: Space- or comma-separated subset of site.yaml artifacts to build and publish (default is every declared artifact)
|
||||
required: false
|
||||
default: ''
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
@@ -44,6 +51,7 @@ runs:
|
||||
ACTION_DIR: ${{ github.action_path }}
|
||||
GITHUB_RUN_NUMBER: ${{ github.run_number }}
|
||||
CI_BOT_USER: ${{ inputs.username }}
|
||||
SITE_ARTIFACTS: ${{ inputs.artifacts }}
|
||||
|
||||
- name: Deploy
|
||||
shell: bash
|
||||
@@ -61,3 +69,4 @@ runs:
|
||||
GARAGE_ADMIN_ENDPOINT: ${{ inputs.garage-admin-endpoint }}
|
||||
GARAGE_ADMIN_TOKEN: ${{ inputs.garage-admin-token }}
|
||||
GITHUB_RUN_NUMBER: ${{ github.run_number }}
|
||||
SITE_ARTIFACTS: ${{ inputs.artifacts }}
|
||||
|
||||
Reference in New Issue
Block a user