store: Paper Dynasty Discord: Multi-Channel CI/CD Pipeline with docker-tags Composite Action

This commit is contained in:
Cal Corum 2026-03-04 21:31:28 -06:00
parent 0378eea97a
commit 9a73e0a8fc

View File

@ -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