nsecx/.github/workflows/dnssec-stats.yml

49 lines
2.0 KiB
YAML

name: DNSSEC Statistics Update
on:
schedule:
- cron: '0 0 * * *' # Run at midnight UTC daily
workflow_dispatch: # Allow manual trigger
jobs:
update-stats:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y bind9-utils
- name: Run tldsec script
run: |
chmod +x extras/tldsec
./extras/tldsec
- name: Update README statistics
run: |
# Calculate statistics
nsec3_count=$(wc -l < dnssec_stats/nsec3.txt)
nsec_count=$(wc -l < dnssec_stats/nsec.txt)
nodnssec_count=$(wc -l < dnssec_stats/nodnssec.txt)
total=$((nsec3_count + nsec_count + nodnssec_count))
# Calculate percentages
nsec3_percent=$(awk "BEGIN {printf \"%.0f\", ($nsec3_count/$total)*100}")
nsec_percent=$(awk "BEGIN {printf \"%.0f\", ($nsec_count/$total)*100}")
nodnssec_percent=$(awk "BEGIN {printf \"%.0f\", ($nodnssec_count/$total)*100}")
# Update README.md statistics section
sed -i "/## DNSSEC Statistics/,/^$/ c\## DNSSEC Statistics\n| Status | Percentage | TLDs |\n| ---------------------------------------- | ---------- | ----- |\n| [NSEC3](./dnssec_stats/nsec3.txt) | ${nsec3_percent}% | ${nsec3_count} |\n| [NSEC](./dnssec_stats/nsec.txt) | ${nsec_percent}% | ${nsec_count} |\n| [NO DNSSEC](./dnssec_stats/nodnssec.txt) | ${nodnssec_percent}% | ${nodnssec_count} |\n" README.md
- name: Commit and push changes
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add dnssec_stats/* README.md
git commit -m "Update DNSSEC statistics [skip ci]" || exit 0
git push