mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-24 00:35:10 +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/**'
|
||||
- 'images/production/**'
|
||||
- 'resources/**'
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
- 'dokploy-v*.*.*'
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
|
|
@ -50,8 +53,11 @@ jobs:
|
|||
type=ref,event=pr
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{major}}
|
||||
type=sha,prefix={{branch}}-
|
||||
type=raw,value=latest,enable={{is_default_branch}}
|
||||
flavor: |
|
||||
latest=auto
|
||||
|
||||
- name: Build and push Docker image
|
||||
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_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.
|
||||
|
||||
|
|
|
|||
|
|
@ -117,7 +117,8 @@ RUN bench init \
|
|||
WORKDIR /home/frappe/frappe-bench
|
||||
|
||||
# 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 && \
|
||||
# ERPNext
|
||||
|
|
|
|||
2
dokploy/VERSION
Normal file
2
dokploy/VERSION
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
1.0.0
|
||||
|
||||
Loading…
Reference in a new issue