38 lines
1.4 KiB
YAML
38 lines
1.4 KiB
YAML
name: Deploy
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: DNS kaydini garanti et (Cloudflare)
|
|
env:
|
|
CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
|
|
CF_ZONE_ID: ${{ secrets.CF_ZONE_ID }}
|
|
HOSTNAME: panel.akalan.dev
|
|
IP: 148.135.181.126
|
|
run: |
|
|
EXISTING=$(curl -s -H "Authorization: Bearer $CF_API_TOKEN" \
|
|
"https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records?type=A&name=$HOSTNAME")
|
|
RECORD_ID=$(echo "$EXISTING" | python3 -c "import json,sys; d=json.load(sys.stdin); r=d.get('result',[]); print(r[0]['id'] if r else '')")
|
|
if [ -z "$RECORD_ID" ]; then
|
|
curl -s -X POST "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records" \
|
|
-H "Authorization: Bearer $CF_API_TOKEN" -H "Content-Type: application/json" \
|
|
-d "{\"type\":\"A\",\"name\":\"$HOSTNAME\",\"content\":\"$IP\",\"ttl\":1,\"proxied\":true}" > /dev/null
|
|
echo "DNS kaydi olusturuldu."
|
|
else
|
|
echo "DNS kaydi zaten var, atlaniyor."
|
|
fi
|
|
|
|
- name: docker compose up -d --build
|
|
env:
|
|
CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
|
|
CF_ZONE_ID: ${{ secrets.CF_ZONE_ID }}
|
|
SELF_CONTAINER_NAME: deploy-panel
|
|
PANEL_API_TOKEN: ${{ secrets.PANEL_TOKEN }}
|
|
run: docker compose up -d --build
|