Files
kolaytercih/.gitea/workflows/ci.yaml
bilalgursen 951caa3c93
All checks were successful
Deploy / deploy (push) Successful in 8m39s
refactor(odeme): update environment variable usage and documentation
Replaced `NEXT_PUBLIC_APP_URL` with `APP_URL` in the payment processing logic to ensure proper runtime access. Updated related documentation to clarify the distinction between build-time and runtime environment variables, emphasizing the importance of using `APP_URL` for callback and webhook URLs. Adjusted references in the codebase to reflect this change, enhancing clarity and functionality in the payment flow.
2026-08-11 11:42:47 +03:00

83 lines
3.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
container:
image: catthehacker/ubuntu:act-latest
steps:
- name: Kaynak kodu çek
uses: actions/checkout@v4
- name: .env.production oluştur
run: |
cat > .env.production <<'EOF'
BETTER_AUTH_SECRET=${{ secrets.BETTER_AUTH_SECRET }}
BETTER_AUTH_URL=${{ secrets.BETTER_AUTH_URL }}
# Ödeme callback/yönlendirme kökü. Public önekli DEĞİL: build'e değil
# runtime'a geçmesi gerekiyor (bkz. src/lib/app-url.ts). Secret adı
# geçmişten NEXT_PUBLIC_APP_URL, değeri aynı https kök adres.
APP_URL=${{ secrets.NEXT_PUBLIC_APP_URL }}
GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }}
GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }}
RESEND_API_KEY=${{ secrets.RESEND_API_KEY }}
EMAIL_FROM=${{ secrets.EMAIL_FROM }}
IYZICO_API_KEY=${{ secrets.IYZICO_API_KEY }}
IYZICO_SECRET_KEY=${{ secrets.IYZICO_SECRET_KEY }}
IYZICO_BASE_URL=${{ secrets.IYZICO_BASE_URL }}
OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}
OPENROUTER_MODEL=${{ secrets.OPENROUTER_MODEL }}
EOF
# BuildKit'te "docker build --memory" YOK SAYILIR (moby/buildkit#1362);
# gerçek sınır ancak buildkitd'yi kendi cgroup'u olan bir container'da
# (buildx docker-container driver) koşturarak konur. Böylece build OOM
# olursa yalnızca builder container'ı ölür — uygulama + Gitea ayakta kalır
# ve adım 35-90 dk sessiz kilitlenme yerine hızlı, görünür hata verir.
#
# Sınırlar container İLK oluşturulduğunda donar; değerleri değiştirmek için
# önce: docker buildx rm sinirli && docker rm -f buildx_buildkit_sinirli0
- name: Sınırlı builder hazırla
run: |
cat > buildkitd.toml <<'EOF'
[worker.oci]
enabled = true
max-parallelism = 1
EOF
# Act container'ı her koşuda sıfırdan geldiği için client kaydı hep
# yeniden oluşturulur; host'taki buildx_buildkit_sinirli0 container'ı
# (ve build cache'i) varsa bootstrap'ta aynen yeniden kullanılır.
docker buildx create --name sinirli \
--driver docker-container \
--driver-opt memory=2200m \
--driver-opt memory-swap=4200m \
--driver-opt cpu-quota=150000 \
--buildkitd-config ./buildkitd.toml \
2>/dev/null || true
docker buildx inspect sinirli --bootstrap >/dev/null
- name: Build (sınırlı builder)
run: |
docker compose -p kolaytercih build --builder sinirli
# docker-container driver'da imajın daemon'a --load ile düştüğünü doğrula;
# düşmediyse aynı cache'ten yeniden build edip elle yükle.
docker image inspect kolaytercih-app >/dev/null 2>&1 || \
docker buildx build --builder sinirli --load -t kolaytercih-app .
- name: Deploy
run: docker compose -p kolaytercih up -d --no-build --remove-orphans
- name: Temizlik (başarısız build'de de çalışır)
if: always()
run: |
docker image prune -f || true
# sinirli builder'ın cache'ini 4 GB'ta tut (flag adı buildx sürümüne göre değişti)
docker buildx prune --builder sinirli -f --max-used-space 4gb 2>/dev/null || \
docker buildx prune --builder sinirli -f --keep-storage 4gb || true
# eski varsayılan-builder cache artıkları
docker builder prune -f --filter "until=72h" || true