diff --git a/graph/workflows/paper-dynasty-discord-multi-channel-cicd-pipeline-with-docke-8a1ffc.md b/graph/workflows/paper-dynasty-discord-multi-channel-cicd-pipeline-with-docke-8a1ffc.md new file mode 100644 index 00000000000..18ddd208a0f --- /dev/null +++ b/graph/workflows/paper-dynasty-discord-multi-channel-cicd-pipeline-with-docke-8a1ffc.md @@ -0,0 +1,67 @@ +--- +id: 8a1ffc11-7ad8-44d1-9cf3-47e886891ff1 +type: workflow +title: "Paper Dynasty Discord: Multi-Channel CI/CD Pipeline with docker-tags Composite Action" +tags: [paper-dynasty-discord, ci-cd, docker, workflow, gitea-actions, composite-action] +importance: 0.8 +confidence: 0.8 +created: "2026-03-05T03:31:28.444195+00:00" +updated: "2026-03-05T03:31:28.444195+00:00" +--- + +# Paper Dynasty Discord: Multi-Channel CI/CD Pipeline with docker-tags Composite Action + +## Context + +Updated the `paper-dynasty-discord` CI/CD workflow on the `feature/scouting` branch to use the new `docker-tags` composite action from the shared `cal/gitea-actions` repo. + +## Before + +Two separate conditional build steps — one for dev builds and one for production — with duplicated docker/build-push-action calls and hardcoded tag logic per step. + +## After: Single-Pipeline Pattern + +```yaml +# 1. Resolve tags via composite action +- name: Resolve Docker tags + id: tags + uses: cal/gitea-actions/docker-tags@main + with: + image: manticorum67/paper-dynasty-discordapp + version: ${{ steps.calver.outputs.version }} + sha_short: ${{ steps.sha.outputs.sha_short }} + +# 2. Single build-push step using resolved tags +- name: Build and push + uses: docker/build-push-action@v6 + with: + tags: ${{ steps.tags.outputs.tags }} + ... + +# 3. Gate release creation on stable channel only +- name: Create release + if: steps.tags.outputs.channel == 'stable' + ... + +# 4. Discord success notify — skip on dev +- name: Notify Discord + if: steps.tags.outputs.channel != 'dev' + ... +``` + +## Trigger Branches + +- `main` — stable channel (latest tag, calver tag, calver-sha tag) +- `next-release` — rc channel +- any other — dev channel + +## Docker Image + +`manticorum67/paper-dynasty-discordapp` + +## Key Design Points + +- `channel` output from docker-tags drives conditional logic downstream +- Build summary dynamically lists all tags from `steps.tags.outputs.tags` +- Only one build step regardless of branch — eliminates duplication +- Discord notify skipped entirely on dev channel to reduce noise