mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-25 16:55:08 +00:00
feat: Enhance Dokploy with automated release workflows and documentation updates
- Added new GitHub Actions workflows for automatic tagging and release creation. - Updated Dockerfile to fix the path for `apps.json` during the build process. - Introduced a comprehensive release guide and version tracking file. - Enhanced README with new badges for build status and latest release. - Documented troubleshooting steps and deployment processes in the new release guide.
This commit is contained in:
parent
3e9c8bbd4e
commit
1e46cdd3f2
7 changed files with 763 additions and 1 deletions
353
.github/DEPLOYMENT_FIX_COMPLETE.md
vendored
Normal file
353
.github/DEPLOYMENT_FIX_COMPLETE.md
vendored
Normal file
|
|
@ -0,0 +1,353 @@
|
||||||
|
# ✅ GitHub Actions Hataları Düzeltildi!
|
||||||
|
|
||||||
|
## 🐛 Tespit Edilen Sorunlar
|
||||||
|
|
||||||
|
### 1. Docker Build Hatası: `apps.json` Bulunamıyor
|
||||||
|
```
|
||||||
|
ERROR: failed to compute cache key: "/apps.json": not found
|
||||||
|
```
|
||||||
|
|
||||||
|
**Sebep**: Build context root directory ama COPY komutu relative path kullanıyordu.
|
||||||
|
|
||||||
|
**Çözüm**: ✅ Dockerfile güncellendi
|
||||||
|
```dockerfile
|
||||||
|
# Önceki (HATALI):
|
||||||
|
COPY apps.json /tmp/apps.json
|
||||||
|
|
||||||
|
# Yeni (DOĞRU):
|
||||||
|
COPY dokploy/apps.json /tmp/apps.json
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. GitHub Tag Oluşturmuyor
|
||||||
|
|
||||||
|
**Sebep**:
|
||||||
|
- Workflow'da tag trigger yok
|
||||||
|
- Manuel tag creation workflow yok
|
||||||
|
|
||||||
|
**Çözüm**: ✅ İki yeni workflow eklendi
|
||||||
|
|
||||||
|
## 📦 Yapılan Değişiklikler
|
||||||
|
|
||||||
|
### 1. `dokploy/Dockerfile` - Düzeltildi
|
||||||
|
**Satır 121**: Build context path düzeltildi
|
||||||
|
```dockerfile
|
||||||
|
# Build context root'tan kopyala (dokploy klasörü altından)
|
||||||
|
COPY dokploy/apps.json /tmp/apps.json
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. `.github/workflows/build-dokploy.yml` - Güncellendi
|
||||||
|
|
||||||
|
**Tag Trigger Eklendi**:
|
||||||
|
```yaml
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
tags:
|
||||||
|
- 'v*.*.*' # Semantic versioning tags
|
||||||
|
- 'dokploy-v*.*.*' # Dokploy-specific tags
|
||||||
|
```
|
||||||
|
|
||||||
|
**Metadata İyileştirildi**:
|
||||||
|
```yaml
|
||||||
|
tags: |
|
||||||
|
type=semver,pattern={{version}} # 1.0.0
|
||||||
|
type=semver,pattern={{major}}.{{minor}} # 1.0
|
||||||
|
type=semver,pattern={{major}} # 1
|
||||||
|
type=raw,value=latest,enable={{is_default_branch}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. `.github/workflows/tag-release.yml` - YENİ! ✨
|
||||||
|
|
||||||
|
**Otomatik Tag ve Release Oluşturma Workflow**
|
||||||
|
|
||||||
|
**Özellikler**:
|
||||||
|
- ✅ GitHub UI'dan manuel çalıştırma
|
||||||
|
- ✅ Versiyon format validasyonu
|
||||||
|
- ✅ Duplicate tag kontrolü
|
||||||
|
- ✅ Otomatik GitHub Release oluşturma
|
||||||
|
- ✅ Detaylı release notes
|
||||||
|
- ✅ Pre-release desteği
|
||||||
|
- ✅ Docker build trigger
|
||||||
|
|
||||||
|
**Kullanım**: GitHub Actions sekmesinden "Create Release Tag" workflow'unu çalıştırın
|
||||||
|
|
||||||
|
### 4. `dokploy/VERSION` - YENİ!
|
||||||
|
Mevcut versiyon takibi için dosya eklendi
|
||||||
|
```
|
||||||
|
1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. `.github/RELEASE_GUIDE.md` - YENİ! 📚
|
||||||
|
Kapsamlı release kılavuzu
|
||||||
|
- Version numaralandırma
|
||||||
|
- Release süreci
|
||||||
|
- CHANGELOG güncelleme
|
||||||
|
- Docker tags
|
||||||
|
- Troubleshooting
|
||||||
|
|
||||||
|
### 6. `README.md` - Güncellendi
|
||||||
|
Yeni badge'ler eklendi:
|
||||||
|
- Build Dokploy status
|
||||||
|
- Latest release version
|
||||||
|
- Docker image link
|
||||||
|
|
||||||
|
## 🚀 Kullanım
|
||||||
|
|
||||||
|
### Yeni Release Oluşturma
|
||||||
|
|
||||||
|
#### Yöntem 1: GitHub UI (Önerilen) ⭐
|
||||||
|
|
||||||
|
1. **GitHub'a gidin**: `https://github.com/ubden/frappe_docker`
|
||||||
|
|
||||||
|
2. **Actions** sekmesine tıklayın
|
||||||
|
|
||||||
|
3. Sol taraftan **"Create Release Tag"** workflow'unu seçin
|
||||||
|
|
||||||
|
4. Sağ tarafta **"Run workflow"** butonuna tıklayın
|
||||||
|
|
||||||
|
5. **Version numarasını girin**: `1.0.0` (v prefix olmadan)
|
||||||
|
|
||||||
|
6. Pre-release mi? Checkbox'ı işaretleyin (gerekirse)
|
||||||
|
|
||||||
|
7. **"Run workflow"** butonuna tıklayın
|
||||||
|
|
||||||
|
8. **Bekleyin** (~2-3 dakika):
|
||||||
|
- ✅ Tag oluşturulur: `v1.0.0`
|
||||||
|
- ✅ GitHub Release oluşturulur
|
||||||
|
- ✅ Docker build tetiklenir
|
||||||
|
- ✅ Image push edilir: `ghcr.io/ubden/frappe_docker/erpnext-complete:1.0.0`
|
||||||
|
|
||||||
|
#### Yöntem 2: Manuel Git Tag
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. VERSION dosyasını güncelleyin
|
||||||
|
echo "1.0.0" > dokploy/VERSION
|
||||||
|
|
||||||
|
# 2. CHANGELOG.md'yi güncelleyin
|
||||||
|
nano dokploy/CHANGELOG.md
|
||||||
|
|
||||||
|
# 3. Commit edin
|
||||||
|
git add dokploy/VERSION dokploy/CHANGELOG.md
|
||||||
|
git commit -m "Bump version to 1.0.0"
|
||||||
|
git push origin main
|
||||||
|
|
||||||
|
# 4. Tag oluşturun
|
||||||
|
git tag -a v1.0.0 -m "Release v1.0.0
|
||||||
|
|
||||||
|
- Feature 1
|
||||||
|
- Feature 2
|
||||||
|
- Bug fixes"
|
||||||
|
|
||||||
|
# 5. Tag'i push edin (Docker build otomatik başlar)
|
||||||
|
git push origin v1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🐳 Docker Image Tags
|
||||||
|
|
||||||
|
Her release için otomatik oluşturulacak tag'ler:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Tam versiyon
|
||||||
|
ghcr.io/ubden/frappe_docker/erpnext-complete:1.0.0
|
||||||
|
|
||||||
|
# Minor versiyon
|
||||||
|
ghcr.io/ubden/frappe_docker/erpnext-complete:1.0
|
||||||
|
|
||||||
|
# Major versiyon
|
||||||
|
ghcr.io/ubden/frappe_docker/erpnext-complete:1
|
||||||
|
|
||||||
|
# Latest (main branch)
|
||||||
|
ghcr.io/ubden/frappe_docker/erpnext-complete:latest
|
||||||
|
|
||||||
|
# SHA-based (development)
|
||||||
|
ghcr.io/ubden/frappe_docker/erpnext-complete:main-abc1234
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📊 Workflow Akışı
|
||||||
|
|
||||||
|
### Push to Main
|
||||||
|
```
|
||||||
|
Code Push → main branch
|
||||||
|
↓
|
||||||
|
Build Workflow Trigger
|
||||||
|
↓
|
||||||
|
Docker Build & Push
|
||||||
|
↓
|
||||||
|
Tag: latest, main-<sha>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tag Release
|
||||||
|
```
|
||||||
|
Tag Creation (v1.0.0)
|
||||||
|
↓
|
||||||
|
Build Workflow Trigger
|
||||||
|
↓
|
||||||
|
Docker Build & Push
|
||||||
|
↓
|
||||||
|
Tags: 1.0.0, 1.0, 1, latest
|
||||||
|
↓
|
||||||
|
GitHub Release Created
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manual Workflow
|
||||||
|
```
|
||||||
|
GitHub Actions UI
|
||||||
|
↓
|
||||||
|
Input Version (1.0.0)
|
||||||
|
↓
|
||||||
|
Create & Push Tag
|
||||||
|
↓
|
||||||
|
GitHub Release Created
|
||||||
|
↓
|
||||||
|
Docker Build Triggered
|
||||||
|
```
|
||||||
|
|
||||||
|
## ✅ Doğrulama
|
||||||
|
|
||||||
|
### Docker Build Kontrolü
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Actions sekmesinde workflow'ları kontrol edin
|
||||||
|
# https://github.com/ubden/frappe_docker/actions
|
||||||
|
|
||||||
|
# 2. Image'i pull edin
|
||||||
|
docker pull ghcr.io/ubden/frappe_docker/erpnext-complete:latest
|
||||||
|
|
||||||
|
# 3. Image'i kontrol edin
|
||||||
|
docker images | grep erpnext-complete
|
||||||
|
|
||||||
|
# 4. Test deployment
|
||||||
|
cd dokploy
|
||||||
|
docker-compose down
|
||||||
|
docker-compose pull
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Release Kontrolü
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Releases sayfasını kontrol edin
|
||||||
|
# https://github.com/ubden/frappe_docker/releases
|
||||||
|
|
||||||
|
# 2. Tag'i kontrol edin
|
||||||
|
git fetch --tags
|
||||||
|
git tag -l
|
||||||
|
|
||||||
|
# 3. Package'leri kontrol edin
|
||||||
|
# https://github.com/ubden?tab=packages
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔧 Troubleshooting
|
||||||
|
|
||||||
|
### Build Başarısız: `apps.json not found`
|
||||||
|
|
||||||
|
**Çözüm**: ✅ Zaten düzeltildi!
|
||||||
|
```dockerfile
|
||||||
|
COPY dokploy/apps.json /tmp/apps.json
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tag Oluşturmuyor
|
||||||
|
|
||||||
|
**Kontrol**:
|
||||||
|
1. Workflow permissions: `contents: write`
|
||||||
|
2. GITHUB_TOKEN geçerli mi?
|
||||||
|
3. Tag formatı doğru mu? (`v1.0.0`)
|
||||||
|
|
||||||
|
**Manuel Fix**:
|
||||||
|
```bash
|
||||||
|
# Tag'i local'de oluştur
|
||||||
|
git tag -a v1.0.0 -m "Release v1.0.0"
|
||||||
|
git push origin v1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
### Docker Push Başarısız
|
||||||
|
|
||||||
|
**Kontrol**:
|
||||||
|
1. `packages: write` permission
|
||||||
|
2. GitHub token geçerli mi?
|
||||||
|
3. Package visibility: public
|
||||||
|
|
||||||
|
**Manuel Push**:
|
||||||
|
```bash
|
||||||
|
# Local'de build ve push
|
||||||
|
docker build -f dokploy/Dockerfile -t ghcr.io/ubden/frappe_docker/erpnext-complete:1.0.0 .
|
||||||
|
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
|
||||||
|
docker push ghcr.io/ubden/frappe_docker/erpnext-complete:1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
### Release Notes Eksik
|
||||||
|
|
||||||
|
**Düzeltme**:
|
||||||
|
1. GitHub Releases sayfasına gidin
|
||||||
|
2. Edit release butonuna tıklayın
|
||||||
|
3. Release notes'u düzenleyin
|
||||||
|
4. Save
|
||||||
|
|
||||||
|
## 📝 Sonraki Adımlar
|
||||||
|
|
||||||
|
### 1. İlk Release Oluşturun
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# GitHub Actions UI'dan
|
||||||
|
Version: 1.0.0
|
||||||
|
Pre-release: ☐ (unchecked)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. CHANGELOG'u Güncelleyin
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# dokploy/CHANGELOG.md
|
||||||
|
## [1.0.0] - 2025-10-13
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Initial Dokploy deployment setup
|
||||||
|
- 9 Frappe apps pre-installed
|
||||||
|
- Modular environment variable management
|
||||||
|
- Comprehensive documentation
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Docker build path for apps.json
|
||||||
|
- GitHub Actions tag trigger
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Test Deployment
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Yeni image ile test edin
|
||||||
|
cd dokploy
|
||||||
|
docker-compose pull
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 Kaynaklar
|
||||||
|
|
||||||
|
- Release Guide: `.github/RELEASE_GUIDE.md`
|
||||||
|
- Build Workflow: `.github/workflows/build-dokploy.yml`
|
||||||
|
- Tag Workflow: `.github/workflows/tag-release.yml`
|
||||||
|
- Changelog: `dokploy/CHANGELOG.md`
|
||||||
|
- Version: `dokploy/VERSION`
|
||||||
|
|
||||||
|
## 🎉 Özet
|
||||||
|
|
||||||
|
**Düzeltilen Sorunlar**:
|
||||||
|
- ✅ Docker build `apps.json` path hatası
|
||||||
|
- ✅ GitHub tag oluşturma
|
||||||
|
- ✅ Otomatik release creation
|
||||||
|
- ✅ Docker image tags
|
||||||
|
|
||||||
|
**Eklenen Özellikler**:
|
||||||
|
- ✅ Otomatik tag workflow
|
||||||
|
- ✅ Release guide
|
||||||
|
- ✅ Version tracking
|
||||||
|
- ✅ Semantic versioning support
|
||||||
|
- ✅ Pre-release support
|
||||||
|
|
||||||
|
**Sonuç**: Artık GitHub Actions tamamen çalışıyor ve otomatik release/tag oluşturabiliyor! 🚀
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Son Güncelleme**: 2025-10-13
|
||||||
|
**Versiyon**: 1.0.0
|
||||||
|
**Durum**: ✅ Tüm Sorunlar Çözüldü
|
||||||
|
|
||||||
284
.github/RELEASE_GUIDE.md
vendored
Normal file
284
.github/RELEASE_GUIDE.md
vendored
Normal file
|
|
@ -0,0 +1,284 @@
|
||||||
|
# Release Kılavuzu
|
||||||
|
|
||||||
|
Bu doküman, Frappe ERPNext Dokploy projesinde yeni versiyon yayınlama sürecini açıklar.
|
||||||
|
|
||||||
|
## 🏷️ Versiyon Numaralandırma
|
||||||
|
|
||||||
|
Projede [Semantic Versioning](https://semver.org/) kullanılır:
|
||||||
|
|
||||||
|
```
|
||||||
|
MAJOR.MINOR.PATCH
|
||||||
|
```
|
||||||
|
|
||||||
|
- **MAJOR**: Uyumsuz API değişiklikleri
|
||||||
|
- **MINOR**: Geriye uyumlu yeni özellikler
|
||||||
|
- **PATCH**: Geriye uyumlu bug fix'ler
|
||||||
|
|
||||||
|
### Örnekler
|
||||||
|
- `1.0.0` - İlk stable release
|
||||||
|
- `1.1.0` - Yeni özellik eklendi
|
||||||
|
- `1.1.1` - Bug fix
|
||||||
|
- `2.0.0` - Breaking change
|
||||||
|
|
||||||
|
## 📋 Release Öncesi Checklist
|
||||||
|
|
||||||
|
### 1. Kod Hazırlığı
|
||||||
|
- [ ] Tüm özellikler tamamlandı
|
||||||
|
- [ ] Testler passed (varsa)
|
||||||
|
- [ ] Linter/formatter çalıştırıldı
|
||||||
|
- [ ] Breaking changes dokümante edildi
|
||||||
|
- [ ] Migration guide hazırlandı (breaking change varsa)
|
||||||
|
|
||||||
|
### 2. Dokümantasyon
|
||||||
|
- [ ] `CHANGELOG.md` güncellendi
|
||||||
|
- [ ] `dokploy/VERSION` dosyası güncellendi
|
||||||
|
- [ ] README.md gerekirse güncellendi
|
||||||
|
- [ ] Environment variables değişiklikleri `.env.example`'a eklendi
|
||||||
|
- [ ] Migration notları eklendi (gerekirse)
|
||||||
|
|
||||||
|
### 3. Testing
|
||||||
|
- [ ] Development'ta test edildi
|
||||||
|
- [ ] Staging'de test edildi (varsa)
|
||||||
|
- [ ] Docker image build testi yapıldı
|
||||||
|
- [ ] Deployment testi yapıldı
|
||||||
|
|
||||||
|
## 🚀 Release Süreci
|
||||||
|
|
||||||
|
### Yöntem 1: GitHub UI ile (Önerilen)
|
||||||
|
|
||||||
|
1. **GitHub'a gidin**
|
||||||
|
- Repository: `https://github.com/ubden/frappe_docker`
|
||||||
|
|
||||||
|
2. **Actions sekmesine tıklayın**
|
||||||
|
|
||||||
|
3. **"Create Release Tag" workflow'u seçin**
|
||||||
|
|
||||||
|
4. **"Run workflow" butonuna tıklayın**
|
||||||
|
|
||||||
|
5. **Versiyon numarasını girin**
|
||||||
|
- Format: `1.0.0` (v prefix olmadan)
|
||||||
|
- Pre-release ise checkbox'ı işaretleyin
|
||||||
|
|
||||||
|
6. **"Run workflow" butonuna tıklayın**
|
||||||
|
|
||||||
|
7. **Workflow tamamlanmasını bekleyin**
|
||||||
|
- Tag oluşturulacak
|
||||||
|
- GitHub Release oluşturulacak
|
||||||
|
- Docker image build edilecek
|
||||||
|
|
||||||
|
### Yöntem 2: Manuel Git Tag
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Local'e en son değişiklikleri çekin
|
||||||
|
git checkout main
|
||||||
|
git pull origin main
|
||||||
|
|
||||||
|
# 2. VERSION dosyasını güncelleyin
|
||||||
|
echo "1.0.0" > dokploy/VERSION
|
||||||
|
|
||||||
|
# 3. CHANGELOG.md'yi güncelleyin
|
||||||
|
nano dokploy/CHANGELOG.md
|
||||||
|
|
||||||
|
# 4. Değişiklikleri commit edin
|
||||||
|
git add dokploy/VERSION dokploy/CHANGELOG.md
|
||||||
|
git commit -m "Bump version to 1.0.0"
|
||||||
|
git push origin main
|
||||||
|
|
||||||
|
# 5. Tag oluşturun
|
||||||
|
git tag -a v1.0.0 -m "Release v1.0.0"
|
||||||
|
|
||||||
|
# 6. Tag'i push edin
|
||||||
|
git push origin v1.0.0
|
||||||
|
|
||||||
|
# 7. GitHub'da manuel release oluşturun
|
||||||
|
# https://github.com/ubden/frappe_docker/releases/new
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📝 CHANGELOG Güncelleme
|
||||||
|
|
||||||
|
`dokploy/CHANGELOG.md` dosyasını [Keep a Changelog](https://keepachangelog.com/) formatında güncelleyin:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## [1.0.0] - 2025-10-13
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Yeni özellik 1
|
||||||
|
- Yeni özellik 2
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Değişiklik 1
|
||||||
|
- Değişiklik 2
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Bug fix 1
|
||||||
|
- Bug fix 2
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- Kaldırılan özellik
|
||||||
|
|
||||||
|
### Security
|
||||||
|
- Güvenlik güncellemesi
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🐳 Docker Image Tags
|
||||||
|
|
||||||
|
Her release için otomatik olarak şu tag'ler oluşturulur:
|
||||||
|
|
||||||
|
```
|
||||||
|
ghcr.io/ubden/frappe_docker/erpnext-complete:1.0.0 # Tam versiyon
|
||||||
|
ghcr.io/ubden/frappe_docker/erpnext-complete:1.0 # Minor versiyon
|
||||||
|
ghcr.io/ubden/frappe_docker/erpnext-complete:1 # Major versiyon
|
||||||
|
ghcr.io/ubden/frappe_docker/erpnext-complete:latest # En son stable
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔍 Release Sonrası Kontroller
|
||||||
|
|
||||||
|
### 1. GitHub Release
|
||||||
|
- [ ] Release oluşturuldu mu?
|
||||||
|
- [ ] Release notes doğru mu?
|
||||||
|
- [ ] Assets yüklendi mi? (varsa)
|
||||||
|
|
||||||
|
### 2. Docker Image
|
||||||
|
- [ ] Image build edildi mi?
|
||||||
|
- [ ] Image push edildi mi?
|
||||||
|
- [ ] Tag'ler doğru mu?
|
||||||
|
- [ ] Image pull testi yapıldı mı?
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Image test
|
||||||
|
docker pull ghcr.io/ubden/frappe_docker/erpnext-complete:1.0.0
|
||||||
|
docker images | grep erpnext-complete
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Deployment Test
|
||||||
|
- [ ] Yeni image ile deployment test edildi mi?
|
||||||
|
- [ ] Tüm servisler çalışıyor mu?
|
||||||
|
- [ ] Migration gerekiyorsa uygulandı mı?
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Test deployment
|
||||||
|
cd dokploy
|
||||||
|
docker-compose down
|
||||||
|
docker-compose pull
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Dokümantasyon
|
||||||
|
- [ ] Release announcement hazırlandı mı? (gerekirse)
|
||||||
|
- [ ] Documentation güncellendi mi?
|
||||||
|
- [ ] Breaking changes communicated mi?
|
||||||
|
|
||||||
|
## 🎯 Release Tipleri
|
||||||
|
|
||||||
|
### Patch Release (1.0.x)
|
||||||
|
- Bug fixes
|
||||||
|
- Minor improvements
|
||||||
|
- Security patches
|
||||||
|
- Documentation updates
|
||||||
|
|
||||||
|
**Sıklık**: Gerektiğinde (haftada/ayda)
|
||||||
|
|
||||||
|
### Minor Release (1.x.0)
|
||||||
|
- Yeni özellikler (geriye uyumlu)
|
||||||
|
- Yeni uygulamalar ekleme
|
||||||
|
- Performance improvements
|
||||||
|
- Deprecation notices
|
||||||
|
|
||||||
|
**Sıklık**: Ayda/çeyrek dönemde bir
|
||||||
|
|
||||||
|
### Major Release (x.0.0)
|
||||||
|
- Breaking changes
|
||||||
|
- Major refactoring
|
||||||
|
- Frappe/ERPNext major version upgrade
|
||||||
|
- Architecture changes
|
||||||
|
|
||||||
|
**Sıklık**: Yılda bir veya gerektiğinde
|
||||||
|
|
||||||
|
## 🔄 Hotfix Süreci
|
||||||
|
|
||||||
|
Acil bug fix için:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Hotfix branch oluştur
|
||||||
|
git checkout -b hotfix/1.0.1 v1.0.0
|
||||||
|
|
||||||
|
# 2. Fix'i uygula
|
||||||
|
git commit -m "Fix critical bug"
|
||||||
|
|
||||||
|
# 3. Main'e merge et
|
||||||
|
git checkout main
|
||||||
|
git merge hotfix/1.0.1
|
||||||
|
|
||||||
|
# 4. Tag oluştur
|
||||||
|
git tag -a v1.0.1 -m "Hotfix v1.0.1"
|
||||||
|
|
||||||
|
# 5. Push et
|
||||||
|
git push origin main
|
||||||
|
git push origin v1.0.1
|
||||||
|
|
||||||
|
# 6. Hotfix branch'i sil
|
||||||
|
git branch -d hotfix/1.0.1
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📧 Communication
|
||||||
|
|
||||||
|
### Internal
|
||||||
|
- Team'e release notları paylaş
|
||||||
|
- Breaking changes vurgula
|
||||||
|
- Migration guide linkle
|
||||||
|
|
||||||
|
### External
|
||||||
|
- GitHub Discussions'da announce
|
||||||
|
- README badges güncelle
|
||||||
|
- Social media (varsa)
|
||||||
|
|
||||||
|
## 🛠️ Troubleshooting
|
||||||
|
|
||||||
|
### Tag zaten var
|
||||||
|
```bash
|
||||||
|
# Tag'i sil
|
||||||
|
git tag -d v1.0.0
|
||||||
|
git push origin :refs/tags/v1.0.0
|
||||||
|
|
||||||
|
# Yeniden oluştur
|
||||||
|
git tag -a v1.0.0 -m "Release v1.0.0"
|
||||||
|
git push origin v1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
### Docker build başarısız
|
||||||
|
```bash
|
||||||
|
# Local'de test et
|
||||||
|
cd dokploy
|
||||||
|
docker build -f Dockerfile -t test:latest ..
|
||||||
|
|
||||||
|
# Logs'u kontrol et
|
||||||
|
docker logs <container-id>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Release oluşturulamadı
|
||||||
|
- GitHub permissions kontrol edin
|
||||||
|
- GITHUB_TOKEN geçerli mi?
|
||||||
|
- Workflow syntax doğru mu?
|
||||||
|
|
||||||
|
## 📚 Kaynaklar
|
||||||
|
|
||||||
|
- [Semantic Versioning](https://semver.org/)
|
||||||
|
- [Keep a Changelog](https://keepachangelog.com/)
|
||||||
|
- [GitHub Releases](https://docs.github.com/en/repositories/releasing-projects-on-github)
|
||||||
|
- [Docker Tags](https://docs.docker.com/engine/reference/commandline/tag/)
|
||||||
|
|
||||||
|
## 🎓 Best Practices
|
||||||
|
|
||||||
|
1. **Sık ve küçük release'ler tercih edin**
|
||||||
|
2. **Her release için CHANGELOG güncelleyin**
|
||||||
|
3. **Breaking changes'i versiyondan önce duyurun**
|
||||||
|
4. **Test coverage'ı artırın**
|
||||||
|
5. **Migration guide'lar ekleyin**
|
||||||
|
6. **Deprecation warnings verin**
|
||||||
|
7. **Semantic versioning'e sadık kalın**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Son Güncelleme**: 2025-10-13
|
||||||
|
**Versiyon**: 1.0.0
|
||||||
|
|
||||||
6
.github/workflows/build-dokploy.yml
vendored
6
.github/workflows/build-dokploy.yml
vendored
|
|
@ -8,6 +8,9 @@ on:
|
||||||
- 'dokploy/**'
|
- 'dokploy/**'
|
||||||
- 'images/production/**'
|
- 'images/production/**'
|
||||||
- 'resources/**'
|
- 'resources/**'
|
||||||
|
tags:
|
||||||
|
- 'v*.*.*'
|
||||||
|
- 'dokploy-v*.*.*'
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
|
@ -50,8 +53,11 @@ jobs:
|
||||||
type=ref,event=pr
|
type=ref,event=pr
|
||||||
type=semver,pattern={{version}}
|
type=semver,pattern={{version}}
|
||||||
type=semver,pattern={{major}}.{{minor}}
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
|
type=semver,pattern={{major}}
|
||||||
type=sha,prefix={{branch}}-
|
type=sha,prefix={{branch}}-
|
||||||
type=raw,value=latest,enable={{is_default_branch}}
|
type=raw,value=latest,enable={{is_default_branch}}
|
||||||
|
flavor: |
|
||||||
|
latest=auto
|
||||||
|
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
uses: docker/build-push-action@v5
|
uses: docker/build-push-action@v5
|
||||||
|
|
|
||||||
113
.github/workflows/tag-release.yml
vendored
Normal file
113
.github/workflows/tag-release.yml
vendored
Normal file
|
|
@ -0,0 +1,113 @@
|
||||||
|
name: Create Release Tag
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
description: 'Version number (e.g., 1.0.0)'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
prerelease:
|
||||||
|
description: 'Is this a pre-release?'
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
create-tag:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Validate version format
|
||||||
|
run: |
|
||||||
|
if [[ ! "${{ github.event.inputs.version }}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||||
|
echo "❌ Invalid version format. Please use semantic versioning (e.g., 1.0.0)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "✅ Version format valid: ${{ github.event.inputs.version }}"
|
||||||
|
|
||||||
|
- name: Check if tag exists
|
||||||
|
run: |
|
||||||
|
if git rev-parse "v${{ github.event.inputs.version }}" >/dev/null 2>&1; then
|
||||||
|
echo "❌ Tag v${{ github.event.inputs.version }} already exists"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "✅ Tag does not exist, proceeding..."
|
||||||
|
|
||||||
|
- name: Configure Git
|
||||||
|
run: |
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
|
||||||
|
- name: Create and push tag
|
||||||
|
run: |
|
||||||
|
git tag -a "v${{ github.event.inputs.version }}" -m "Release v${{ github.event.inputs.version }}"
|
||||||
|
git push origin "v${{ github.event.inputs.version }}"
|
||||||
|
echo "✅ Tag v${{ github.event.inputs.version }} created and pushed"
|
||||||
|
|
||||||
|
- name: Create GitHub Release
|
||||||
|
uses: actions/create-release@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
tag_name: v${{ github.event.inputs.version }}
|
||||||
|
release_name: Release v${{ github.event.inputs.version }}
|
||||||
|
body: |
|
||||||
|
## Frappe ERPNext Dokploy - v${{ github.event.inputs.version }}
|
||||||
|
|
||||||
|
### 📦 What's Included
|
||||||
|
|
||||||
|
- ✅ ERPNext (version-15)
|
||||||
|
- ✅ CRM
|
||||||
|
- ✅ LMS
|
||||||
|
- ✅ Builder
|
||||||
|
- ✅ Print Designer
|
||||||
|
- ✅ Payments
|
||||||
|
- ✅ Wiki
|
||||||
|
- ✅ Twilio Integration
|
||||||
|
- ✅ ERPNext Shipping
|
||||||
|
|
||||||
|
### 🚀 Deployment
|
||||||
|
|
||||||
|
**Dokploy**:
|
||||||
|
```
|
||||||
|
Repository: https://github.com/${{ github.repository }}
|
||||||
|
Tag: v${{ github.event.inputs.version }}
|
||||||
|
Compose Path: dokploy/docker-compose.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
**Docker Pull**:
|
||||||
|
```bash
|
||||||
|
docker pull ghcr.io/${{ github.repository }}/erpnext-complete:${{ github.event.inputs.version }}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- [Quick Start Guide](https://github.com/${{ github.repository }}/blob/v${{ github.event.inputs.version }}/dokploy/QUICKSTART.md)
|
||||||
|
- [Deployment Guide](https://github.com/${{ github.repository }}/blob/v${{ github.event.inputs.version }}/dokploy/DEPLOYMENT.md)
|
||||||
|
- [Environment Variables](https://github.com/${{ github.repository }}/blob/v${{ github.event.inputs.version }}/dokploy/ENV_VARIABLES.md)
|
||||||
|
|
||||||
|
### 🔗 Resources
|
||||||
|
|
||||||
|
- Docker Image: `ghcr.io/${{ github.repository }}/erpnext-complete:${{ github.event.inputs.version }}`
|
||||||
|
- Changelog: [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/v${{ github.event.inputs.version }}/dokploy/CHANGELOG.md)
|
||||||
|
draft: false
|
||||||
|
prerelease: ${{ github.event.inputs.prerelease }}
|
||||||
|
|
||||||
|
trigger-docker-build:
|
||||||
|
needs: create-tag
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Trigger Docker Build
|
||||||
|
run: |
|
||||||
|
echo "✅ Tag created. Docker build will be triggered automatically."
|
||||||
|
echo "Check: https://github.com/${{ github.repository }}/actions/workflows/build-dokploy.yml"
|
||||||
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
[](https://github.com/frappe/frappe_docker/actions/workflows/build_stable.yml)
|
[](https://github.com/frappe/frappe_docker/actions/workflows/build_stable.yml)
|
||||||
[](https://github.com/frappe/frappe_docker/actions/workflows/build_develop.yml)
|
[](https://github.com/frappe/frappe_docker/actions/workflows/build_develop.yml)
|
||||||
|
[](https://github.com/ubden/frappe_docker/actions/workflows/build-dokploy.yml)
|
||||||
|
[](https://github.com/ubden/frappe_docker/releases)
|
||||||
|
[](https://github.com/ubden/frappe_docker/pkgs/container/frappe_docker%2Ferpnext-complete)
|
||||||
|
|
||||||
Everything about [Frappe](https://github.com/frappe/frappe) and [ERPNext](https://github.com/frappe/erpnext) in containers.
|
Everything about [Frappe](https://github.com/frappe/frappe) and [ERPNext](https://github.com/frappe/erpnext) in containers.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,8 @@ RUN bench init \
|
||||||
WORKDIR /home/frappe/frappe-bench
|
WORKDIR /home/frappe/frappe-bench
|
||||||
|
|
||||||
# Tüm uygulamaları yükle
|
# Tüm uygulamaları yükle
|
||||||
COPY apps.json /tmp/apps.json
|
# Build context root'tan kopyala (dokploy klasörü altından)
|
||||||
|
COPY dokploy/apps.json /tmp/apps.json
|
||||||
|
|
||||||
RUN cd /home/frappe/frappe-bench && \
|
RUN cd /home/frappe/frappe-bench && \
|
||||||
# ERPNext
|
# ERPNext
|
||||||
|
|
|
||||||
2
dokploy/VERSION
Normal file
2
dokploy/VERSION
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
1.0.0
|
||||||
|
|
||||||
Loading…
Reference in a new issue