docs: make Portainer optional deployment path (#1492)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
This commit was merged in pull request #1492.
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
---
|
||||
name: mosaic-deploy
|
||||
description: 'Full end-to-end deploy flow for Mosaic Stack projects: push branch → open PR → wait for CI → merge → redeploy Portainer stack. Use when deploying a feature branch to production or staging, or when asked to ship a completed feature. Orchestrates mosaic-gitea, mosaic-woodpecker, and mosaic-portainer skills.'
|
||||
description: 'Full end-to-end deployment flow: push branch → open PR → wait for CI → merge → deploy using the path documented by the stack. Use when deploying a feature branch to production or staging, or when asked to ship a completed feature.'
|
||||
---
|
||||
|
||||
# mosaic-deploy
|
||||
|
||||
End-to-end deployment flow for Mosaic Stack projects.
|
||||
End-to-end deployment flow.
|
||||
|
||||
## Full Deploy Sequence
|
||||
|
||||
```
|
||||
push branch → open PR → CI passes → merge → portainer redeploy
|
||||
push branch → open PR → CI passes → merge → documented deploy path
|
||||
```
|
||||
|
||||
### Step 1: Push branch and open PR
|
||||
@@ -49,25 +49,32 @@ review. Fix the cause; never route around it with a raw API call, a shared
|
||||
credential, or `force_merge`. Exceptional cases go to the operator or the
|
||||
coordinating seat, still merged through the wrapper.
|
||||
|
||||
### Step 4: Redeploy Portainer stack
|
||||
### Step 4: Deploy Through the Documented Path
|
||||
|
||||
Read the stack README before deploying:
|
||||
|
||||
- If it documents `docker stack deploy` on the manager, use that deploy path and its verification procedure.
|
||||
- Use Portainer only when the estate holds a Portainer credential. Do not propose Portainer otherwise.
|
||||
|
||||
For an authorized Portainer deployment:
|
||||
|
||||
```bash
|
||||
source ~/.config/mosaic/tools/_lib/credentials.sh && load_credentials portainer
|
||||
~/.config/mosaic/tools/portainer/stack-redeploy.sh -n <stack-name> -p
|
||||
```
|
||||
|
||||
Check deployment:
|
||||
Check a Portainer deployment:
|
||||
|
||||
```bash
|
||||
~/.config/mosaic/tools/portainer/stack-status.sh -n <stack-name>
|
||||
~/.config/mosaic/tools/portainer/stack-logs.sh -n <stack-name> -l 50
|
||||
```
|
||||
|
||||
## Stack Name Map
|
||||
## Optional Portainer Stack Map
|
||||
|
||||
Maintain your estate's project → stack-name mapping in a skills-local override of
|
||||
this skill (local copies take precedence over the shipped canonical one). Example
|
||||
shape:
|
||||
For deployments that use Portainer, maintain a project → stack-name mapping in a
|
||||
skills-local override of this skill (local copies take precedence over the shipped
|
||||
canonical one). Example shape:
|
||||
|
||||
| Project | Stack Name |
|
||||
| ------------ | ----------------- |
|
||||
@@ -77,6 +84,6 @@ shape:
|
||||
## Notes
|
||||
|
||||
- Workers open PRs but **never merge** — orchestrator or Merge Guard handles step 3+
|
||||
- Docker Swarm image pinning: if `-p` doesn't pull a new image, SSH to the Docker node (e.g. `node-01`) and run `docker pull <image>` manually, then redeploy
|
||||
- Docker Swarm image pinning: `-p` does not change a digest-pinned image. Follow the stack README's documented deployment procedure.
|
||||
- Worktrees: all coding work in `~/src/<repo>-worktrees/<task-slug>`, never in main checkout
|
||||
- Always clean up worktree after push: `git worktree remove ~/src/<repo>-worktrees/<task-slug>`
|
||||
|
||||
Reference in New Issue
Block a user