name: Update Domains List
on:
schedule:
# Run weekly on Sundays at 00:00 UTC
- cron: '0 0 * * 0'
workflow_dispatch:
# Allow manual trigger
permissions:
contents: write
pull-requests: write
jobs:
update:
name: Update Disposable Domains
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
extensions: intl, json, curl
coverage: none
- name: Install dependencies
run: composer install --no-interaction --prefer-dist
- name: Run update script
run: ./bin/update-domains
- name: Check for changes
id: changes
run: |
if git diff --quiet src/Resources/disposable_domains.txt; then
echo "changed=false" >> $GITHUB_OUTPUT
else
echo "changed=true" >> $GITHUB_OUTPUT
DOMAIN_COUNT=$(grep -c '^[^#]' src/Resources/disposable_domains.txt || echo "0")
echo "domain_count=$DOMAIN_COUNT" >> $GITHUB_OUTPUT
fi
- name: Create Pull Request
if: steps.changes.outputs.changed == 'true'
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: 'chore: update disposable domains list'
title: 'Update disposable domains list'
body: |
Automated update of the disposable domains list.
**Total domains:** ${{ steps.changes.outputs.domain_count }}
This PR was auto-generated by the weekly update workflow.
branch: update-domains
delete-branch: true
labels: |
automated
dependencies
|