diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index cc0ba03c..c6a18ea3 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -77,7 +77,7 @@ jobs: else echo "flarectl found in cache." fi - flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq > cloudflare_subdomains.txt + flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt - name: Grab subdomains from Compose id: compose-domains @@ -85,26 +85,23 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort -u > compose_subdomains.txt + yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt - name: Compare Subdomains id: compare-subdomains + uses: LouisBrunner/diff-action@v2.2.0 + with: + old: cloudflare_subdomains.txt + new: compose_subdomains.txt + output: missing_subdomains.txt + + - name: Add missing subdomains to Cloudflare + if: steps.compare-subdomains.outputs.output != '' env: DOCKER_HOST: tcp://dockerproxy:2375 CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - cat compose_subdomains.txt - cat cloudflare_subdomains.txt - diff compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $2}' | sed -e 's|.||g' > missing_subdomains.txt - if [ -s missing_subdomains.txt ]; then - echo "Missing subdomains found. Please add them to Cloudflare." - echo "Missing subdomains:" - cat missing_subdomains.txt - exit 1 - else - echo "No missing subdomains found." - fi for subdomain in $(cat missing_subdomains.txt); do echo "Adding ${subdomain} to Cloudflare..." flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true