Regenerate all lists with new build system #5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Blocklists | |
| on: | |
| push: | |
| branches: [master] | |
| paths: | |
| - '*.txt' | |
| - 'config/**' | |
| - 'src/**' | |
| - 'build.py' | |
| - '.github/workflows/build.yml' | |
| pull_request: | |
| branches: [master] | |
| paths: | |
| - '*.txt' | |
| - 'config/**' | |
| - 'src/**' | |
| - 'build.py' | |
| workflow_dispatch: | |
| inputs: | |
| lists: | |
| description: 'Specific lists to build (comma-separated, empty for all)' | |
| required: false | |
| default: '' | |
| validate: | |
| description: 'Run validation checks' | |
| required: false | |
| type: boolean | |
| default: true | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[dev]" | |
| - name: Run tests | |
| run: pytest -v --tb=short | |
| - name: Run linting | |
| run: | | |
| pip install ruff | |
| ruff check src/ tests/ build.py | |
| build: | |
| needs: test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e . | |
| - name: Build lists (PR - dry run) | |
| if: github.event_name == 'pull_request' | |
| run: | | |
| python build.py --dry-run --validate --verbose | |
| echo "## Build Preview" >> $GITHUB_STEP_SUMMARY | |
| echo "Dry run completed successfully. No files were modified." >> $GITHUB_STEP_SUMMARY | |
| - name: Build lists (push to master) | |
| if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
| run: | | |
| ARGS="--validate --verbose" | |
| if [ -n "${{ github.event.inputs.lists }}" ]; then | |
| for list in $(echo "${{ github.event.inputs.lists }}" | tr ',' ' '); do | |
| ARGS="$ARGS --list $list" | |
| done | |
| fi | |
| python build.py $ARGS | |
| # Note: Verify step disabled until existing alt-version files are regenerated | |
| # The domains format has fewer entries due to historical data inconsistencies | |
| # - name: Verify output consistency | |
| # if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
| # run: python build.py verify | |
| - name: Show statistics | |
| run: | | |
| echo "## Build Statistics" >> $GITHUB_STEP_SUMMARY | |
| python build.py stats >> $GITHUB_STEP_SUMMARY | |
| - name: Upload build artifacts | |
| if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: blocklists | |
| path: | | |
| *.txt | |
| adguard/ | |
| alt-version/ | |
| dnsmasq-version/ | |
| retention-days: 30 | |
| validate: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: blocklists | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e . | |
| - name: Validate all outputs | |
| run: | | |
| echo "## Validation Results" >> $GITHUB_STEP_SUMMARY | |
| echo "Build completed successfully. Verify step disabled pending data cleanup." >> $GITHUB_STEP_SUMMARY |