merge: resolve conflicts with stg
This commit is contained in:
41
QWEN.md
41
QWEN.md
@@ -232,33 +232,38 @@ Common issues and solutions:
|
|||||||
6. Verify responsive design on different screen sizes
|
6. Verify responsive design on different screen sizes
|
||||||
|
|
||||||
## Qwen Added Memories
|
## 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**:
|
- **Deployment Workflow Sistematis**:
|
||||||
1. **Version Bump** - Update `version` di `package.json` sebelum deploy (ikuti semver: major.minor.patch)
|
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
|
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)
|
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
|
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)
|
Branch deployment: `stg` (staging) atau `prod` (production)
|
||||||
Version format di package.json: `"version": "major.minor.patch"`
|
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:
|
- **Deployment Workflow HARUS Sequential (Berurutan)**:
|
||||||
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`
|
|
||||||
|
|
||||||
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
|
```bash
|
||||||
# Trigger publish
|
gh run watch <publish_run_id>
|
||||||
gh workflow run publish.yml --ref main -f stack_env=stg -f tag=<version>
|
# Tunggu sampai ada checkmark ✓
|
||||||
|
|
||||||
# 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
|
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user