Skip to content

Update run.yml

Update run.yml #24

Workflow file for this run

name: Generate routing rules for smartdns
on:
workflow_dispatch:
schedule:
- cron: "30 22 * * *"
push:
branches:
- master
paths-ignore:
- "**/README.md"
permissions:
contents: write
packages: write
actions: write
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Set variables
run: |
echo "RELEASE_NAME=Released on $(date +%Y%m%d%H%M)" >> $GITHUB_ENV
echo "TAG_NAME=$(date +%Y%m%d%H%M)" >> $GITHUB_ENV
echo "heidai_dns=https://raw.githubusercontent.com/217heidai/adblockfilters/main/rules/adblockdns.txt" >> $GITHUB_ENV
echo "AdGuardSDNSFilter=https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt" >> $GITHUB_ENV
shell: bash
- name: Checkout the default branch
uses: actions/checkout@v4
- name: Make directory
run: |
mkdir -p 217heidai
mkdir -p AdGuard
- name: Generate 217heidai file
run: |
curl -sSL ${heidai_dns} | grep "^||" | sed -e 's/^||//; s/\^$//' > 217heidai/adblockdns.txt
curl -sSL ${heidai_dns} | grep "^@@||" | sed -e 's/^@@||//; s/[\|]$//; s/[\^]$//' > 217heidai/adblockdns-whitelist.txt
- name: Generate AdGuard file
run: |
curl -sSL ${AdGuardSDNSFilter} | grep "^||" | sed -e 's/^||//; s/\^$//' > AdGuard/dnsfilter.txt
curl -sSL ${AdGuardSDNSFilter} | grep "^@@||" | sed -e 's/^@@||//; s/[\|]$//; s/[\^]$//' > AdGuard/dnsfilter-whitelist.txt
- name: Zip 217heidai
uses: montudor/action-zip@v1
with:
args: zip -qq -r 217heidai.zip 217heidai
- name: Zip AdGuard
uses: montudor/action-zip@v1
with:
args: zip -qq -r AdGuard.zip AdGuard
- name: Upload files to GitHub release
uses: softprops/[email protected]
with:
tag_name: ${{ env.TAG_NAME }}
files: |
./*.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Move files to publish directory
run: |
mkdir -p publish/217heidai
mkdir -p publish/AdGuard
mv 217heidai/* ./publish/217heidai/
mv AdGuard/* ./publish/AdGuard/
- name: Git push assets to "release" branch
run: |
cd publish || exit 1
git init
git config --local user.name "github-actions[bot]"
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git checkout -b release
git add .
git commit -m "${{ env.RELEASE_NAME }}"
git remote add origin "https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}"
git push -f -u origin release
- name: Purge jsdelivr CDN
run: |
cd publish || exit 1
for file in $(ls 217heidai); do
curl -i "https://purge.jsdelivr.net/gh/${{ github.repository }}@release/217heidai/${file}"
done
for file in $(ls AdGuard); do
curl -i "https://purge.jsdelivr.net/gh/${{ github.repository }}@release/AdGuard/${file}"
done