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