merge: resolve conflicts with stg
This commit is contained in:
@@ -73,4 +73,4 @@ VOLUME ["/app/uploads"]
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
CMD ["/app/docker-entrypoint.sh"]
|
||||
CMD ["/app/docker-entrypoint.sh"]
|
||||
|
||||
41
QWEN.md
41
QWEN.md
@@ -232,33 +232,38 @@ Common issues and solutions:
|
||||
6. Verify responsive design on different screen sizes
|
||||
|
||||
## Qwen Added Memories
|
||||
- **GitHub Workflows**: Project ini memiliki workflow GitHub Action untuk deployment. User akan menangani workflow secara manual di GitHub.
|
||||
- **GitHub Workflow Execution**: Project ini memiliki 3 workflow GitHub Action:
|
||||
1. `publish.yml` - Build & push Docker image ke GHCR (manual trigger, butuh input: stack_env + tag)
|
||||
2. `re-pull.yml` - Re-pull Docker image di Portainer (manual trigger, butuh input: stack_name + stack_env)
|
||||
3. `docker-publish.yml` - Auto build & push saat ada tag versi v*
|
||||
|
||||
Workflow bisa dijalankan via GitHub CLI: `gh workflow run <nama.yml> -f param=value --ref branch`
|
||||
|
||||
Setelah commit ke branch deployment (dev/stg/prod), otomatis trigger workflow publish + re-pull untuk deploy ke server.
|
||||
|
||||
- **Deployment Workflow Sistematis**:
|
||||
1. **Version Bump** - Update `version` di `package.json` sebelum deploy (ikuti semver: major.minor.patch)
|
||||
2. **Commit** - Commit perubahan + version bump dengan pesan yang jelas
|
||||
3. **Push ke Branch** - Push ke branch target (biasanya `stg` untuk staging atau `prod` untuk production)
|
||||
4. **Trigger publish.yml** - Gunakan GitHub API dengan: `ref: main`, `stack_env: stg`, `tag: <versi-dari-package.json>`
|
||||
4. **Trigger publish.yml** - Gunakan GitHub API atau CLI dengan: `ref: main`, `stack_env: stg`, `tag: <versi-dari-package.json>`
|
||||
5. **Tunggu publish selesai** - Workflow harus completed baru lanjut ke re-pull
|
||||
6. **Trigger re-pull.yml** - Gunakan GitHub API dengan: `ref: main`, `stack_name: desa-darmasaba`, `stack_env: stg`
|
||||
6. **Trigger re-pull.yml** - Gunakan GitHub API atau CLI dengan: `ref: main`, `stack_name: desa-darmasaba`, `stack_env: stg`
|
||||
|
||||
Branch deployment: `stg` (staging) atau `prod` (production)
|
||||
Version format di package.json: `"version": "major.minor.patch"`
|
||||
|
||||
- **Auto Deploy After Push to deploy/stg**: Setelah push ke `deploy/stg`, otomatis trigger deployment workflow:
|
||||
1. Bump version di `package.json` (increment patch)
|
||||
2. Commit version bump
|
||||
3. Trigger `publish.yml` via GitHub API: `ref=main`, `stack_env=stg`, `tag=<version>`
|
||||
4. Polling sampai publish workflow completed
|
||||
5. Trigger `re-pull.yml` via GitHub API: `ref=main`, `stack_name=desa-darmasaba`, `stack_env=stg`
|
||||
- **Deployment Workflow HARUS Sequential (Berurutan)**:
|
||||
|
||||
Cara trigger workflow via GitHub CLI:
|
||||
Saat deploy ke stg atau prod, workflow TIDAK BOLEH dijalankan bersamaan. Harus menunggu yang pertama SELESAI total baru trigger yang kedua.
|
||||
|
||||
**Urutan yang BENAR:**
|
||||
1. ✅ **publish.yml** - Tunggu sampai SELESAI (status: ✓ success)
|
||||
2. ✅ **Setelah publish selesai**, baru trigger **re-pull.yml**
|
||||
|
||||
**JANGAN trigger keduanya bersamaan!** Ini akan menyebabkan race condition karena re-pull akan menarik image yang belum selesai di-build.
|
||||
|
||||
**Cara cek workflow selesai via GitHub CLI:**
|
||||
```bash
|
||||
# Trigger publish
|
||||
gh workflow run publish.yml --ref main -f stack_env=stg -f tag=<version>
|
||||
|
||||
# Cek status (polling)
|
||||
gh run watch <run_id>
|
||||
|
||||
# Trigger re-pull
|
||||
gh workflow run re-pull.yml --ref main -f stack_name=desa-darmasaba -f stack_env=stg
|
||||
gh run watch <publish_run_id>
|
||||
# Tunggu sampai ada checkmark ✓
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user