Generate routing rules for smartdns #213
This file contains 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: Generate routing rules for smartdns | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "40 22 * * *" | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- "README.md" | |
- "LICENSE" | |
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 | |
echo "BlueSkyXN_skyrules=https://raw.githubusercontent.com/BlueSkyXN/AdGuardHomeRules/master/skyrules.txt" >> $GITHUB_ENV | |
echo "BlueSkyXN_ok=https://raw.githubusercontent.com/BlueSkyXN/AdGuardHomeRules/master/ok.txt" >> $GITHUB_ENV | |
echo "AdRules=https://raw.githubusercontent.com/Cats-Team/AdRules/main/adrules.list" >> $GITHUB_ENV | |
echo "neodevpro_host=https://raw.githubusercontent.com/neodevpro/neodevhost/master/domain" >> $GITHUB_ENV | |
echo "Hosts_mini=https://raw.githubusercontent.com/badmojr/1Hosts/master/mini/domains.txt" >> $GITHUB_ENV | |
echo "Hosts_Lite=https://raw.githubusercontent.com/badmojr/1Hosts/master/Lite/domains.txt" >> $GITHUB_ENV | |
echo "Hosts_Pro=https://raw.githubusercontent.com/badmojr/1Hosts/master/Pro/domains.txt" >> $GITHUB_ENV | |
echo "AWAvenue_Ads_Rule=https://raw.githubusercontent.com/TG-Twilight/AWAvenue-Ads-Rule/main/Filters/AWAvenue-Ads-Rule-AdClose.txt" >> $GITHUB_ENV | |
echo "hBlock_hosts=https://hblock.molinero.dev/hosts_domains.txt" >> $GITHUB_ENV | |
echo "OISD_small=https://small.oisd.nl/domainswild2" >> $GITHUB_ENV | |
echo "OISD_big=https://big.oisd.nl/domainswild2" >> $GITHUB_ENV | |
echo "OISD_nsfw=https://nsfw.oisd.nl/domainswild2" >> $GITHUB_ENV | |
echo "PiHoleBlocklist=https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV.txt" >> $GITHUB_ENV | |
echo "hosts_1024=https://raw.githubusercontent.com/Goooler/1024_hosts/master/hosts" >> $GITHUB_ENV | |
echo "ad_wars=https://raw.githubusercontent.com/jdlingyu/ad-wars/master/hosts" >> $GITHUB_ENV | |
echo "StevenBlack_hosts=https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts" >> $GITHUB_ENV | |
echo "anti_AD=https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-domains.txt" >> $GITHUB_ENV | |
echo "AdAway=https://adaway.org/hosts.txt" >> $GITHUB_ENV | |
echo "MVPS_hosts=https://winhelp2002.mvps.org/hosts.txt" >> $GITHUB_ENV | |
echo "YousList=https://raw.githubusercontent.com/yous/YousList/master/hosts.txt" >> $GITHUB_ENV | |
echo "pgl=https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext" >> $GITHUB_ENV | |
echo "someonewhocares=https://someonewhocares.org/hosts/hosts" >> $GITHUB_ENV | |
shell: bash | |
- name: Checkout the default branch | |
uses: actions/checkout@v4 | |
- name: Make directory | |
run: | | |
mkdir -p 217heidai AdGuard BlueSkyXN AdRules neodevhost 1Hosts AWAvenue-Ads-Rule hBlock OISD PiHoleBlocklist 1024_hosts ad-wars StevenBlack anti-AD AdAway MVPS YousList pgl someonewhocares | |
- name: Generate 217heidai file | |
run: | | |
curl -sSL ${heidai_dns} | grep "^||" | grep -Ev ".*\*.*" | sed -e 's/^||//; s/\^.*//' > 217heidai/adblockdns.txt | |
curl -sSL ${heidai_dns} | grep "^@@||" | grep -Ev ".*\*.*" | sed -e 's/^@@||//; s/\^.*//' > 217heidai/adblockdns-whitelist.txt | |
- name: Generate AdGuard file | |
run: | | |
curl -sSL ${AdGuardSDNSFilter} | grep "^||" | grep -Ev ".*\*.*" | sed -e 's/^||//; s/\^.*//' > AdGuard/dnsfilter.txt | |
curl -sSL ${AdGuardSDNSFilter} | grep "^@@||" | grep -Ev ".*\*.*" | sed -e 's/^@@||//; s/\^.*//' > AdGuard/dnsfilter-whitelist.txt | |
- name: Generate BlueSkyXN file | |
run: | | |
curl -sSL ${BlueSkyXN_skyrules} | grep "^||" | grep -Ev ".*\*.*" | sed -e 's/^||//; s/\^.*//' > BlueSkyXN/skyrules.txt | |
curl -sSL ${BlueSkyXN_ok} | grep "^@@||" | grep -Ev ".*\*.*" | sed -e 's/^@@||//; s/\^.*//' > BlueSkyXN/ok.txt | |
- name: Generate AdRules file | |
run: | | |
curl -sSL ${AdRules} | grep "^DOMAIN-SUFFIX," | sed -e 's/^DOMAIN-SUFFIX,//' > AdRules/adrules.txt | |
- name: Generate neodevhost file | |
run: | | |
curl -sSL ${neodevpro_host} | grep -Ev '^(#|$)' > neodevhost/domain.txt | |
- name: Generate 1Hosts file | |
run: | | |
curl -sSL ${Hosts_mini} | grep -Ev '^(#|$)' > 1Hosts/1Hosts_mini_domains.txt | |
curl -sSL ${Hosts_Lite} | grep -Ev '^(#|$)' > 1Hosts/1Hosts_Lite_domains.txt | |
curl -sSL ${Hosts_Pro} | grep -Ev '^(#|$)' > 1Hosts/1Hosts_Pro_domains.txt | |
- name: Generate AWAvenue-Ads-Rule file | |
run: | | |
curl -sSL ${AWAvenue_Ads_Rule} | grep -Ev '^(!|$)' | grep -Ev ".*\*.*" > AWAvenue-Ads-Rule/AWAvenue-Ads-Rule-AdClose.txt | |
- name: Generate hBlock file | |
run: | | |
curl -sSL ${hBlock_hosts} | grep -Ev '^(#|$)' > hBlock/hosts_domains.txt | |
- name: Generate OISD file | |
run: | | |
curl -sSL ${OISD_small} | grep -Ev '^(#|$)' > OISD/oisd_small_domainswild2.txt | |
curl -sSL ${OISD_big} | grep -Ev '^(#|$)' > OISD/oisd_big_domainswild2.txt | |
curl -sSL ${OISD_nsfw} | grep -Ev '^(#|$)' > OISD/oisd_nsfw_domainswild2.txt | |
- name: Generate PiHoleBlocklist file | |
run: | | |
curl -sSL ${PiHoleBlocklist} | grep -Ev '^(#|$)' | sed 's/#.*//'> PiHoleBlocklist/SmartTV.txt | |
- name: Generate 1024_hosts file | |
run: | | |
curl -sSL "${hosts_1024}" | grep -Ev '^(#|$)' | grep '^127\.0\.0\.1' | sed 's/^127.0.0.1[[:space:]]*//' > 1024_hosts/hosts.txt | |
- name: Generate ad-wars file | |
run: | | |
curl -sSL "${ad_wars}" | grep -Ev '^(#|$)' | grep -v 'localhost' | grep '^127\.0\.0\.1' | sed 's/^127.0.0.1[[:space:]]*//' | sed 's/[[:space:]]#-*.*//' > ad-wars/hosts.txt | |
- name: Generate StevenBlack file | |
run: | | |
curl -sSL "${StevenBlack_hosts}" | grep -Ev '^(#|$)' | grep '^0\.0\.0\.0' | sed 's/^0.0.0.0[[:space:]]*//' | sed 's/0.0.0.0//g'> StevenBlack/hosts.txt | |
- name: Generate anti-AD file | |
run: | | |
curl -sSL ${anti_AD} | grep -Ev '^(#|$)' > anti-AD/anti-ad-domains.txt | |
- name: Generate AdAway file | |
run: | | |
curl -sSL ${AdAway} | grep -Ev '^(#|$)' | grep '^127\.0\.0\.1' | sed 's/^127.0.0.1[[:space:]]*//' | grep -v 'localhost' > AdAway/hosts.txt | |
- name: Generate MVPS file | |
run: | | |
curl -sSL ${MVPS_hosts} | grep -Ev '^(#|$)' | grep '^0\.0\.0\.0' | sed 's/^0.0.0.0[[:space:]]*//' | sed 's/#.*//' > MVPS/hosts.txt | |
- name: Generate YousList file | |
run: | | |
curl -sSL ${YousList} | grep -Ev '^(#|$)' | grep '^0\.0\.0\.0' | sed 's/^0.0.0.0[[:space:]]*//' > YousList/hosts.txt | |
- name: Generate pgl file | |
run: | | |
curl -sSL ${pgl} | grep -Ev '^(#|$)' | grep '^127\.0\.0\.1' | sed 's/^127.0.0.1[[:space:]]*//' > pgl/hosts.txt | |
- name: Generate someonewhocares file | |
run: | | |
curl -sSL ${someonewhocares} | grep -Ev '^(#|$)' | grep -v 'localhost' | grep '^127\.0\.0\.1' | sed 's/^127.0.0.1[[:space:]]*//' | sed 's/#.*//' | sed '/\./!d'> someonewhocares/hosts.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: Zip BlueSkyXN | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r BlueSkyXN.zip BlueSkyXN | |
- name: Zip AdRules | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r AdRules.zip AdRules | |
- name: Zip neodevhost | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r neodevhost.zip neodevhost | |
- name: Zip 1Hosts | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r 1Hosts.zip 1Hosts | |
- name: Zip AWAvenue-Ads-Rule | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r AWAvenue-Ads-Rule.zip AWAvenue-Ads-Rule | |
- name: Zip hBlock | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r hBlock.zip hBlock | |
- name: Zip OISD | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r OISD.zip OISD | |
- name: Zip PiHoleBlocklist | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r PiHoleBlocklist.zip PiHoleBlocklist | |
- name: Zip 1024_hosts | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r 1024_hosts.zip 1024_hosts | |
- name: Zip ad-wars | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r ad-wars.zip ad-wars | |
- name: Zip StevenBlack | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r StevenBlack.zip StevenBlack | |
- name: Zip anti-AD | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r anti-AD.zip anti-AD | |
- name: Zip AdAway | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r AdAway.zip AdAway | |
- name: Zip MVPS | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r MVPS.zip MVPS | |
- name: Zip YousList | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r YousList.zip YousList | |
- name: Zip pgl | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r pgl.zip pgl | |
- name: Zip someonewhocares | |
uses: montudor/action-zip@v1 | |
with: | |
args: zip -qq -r someonewhocares.zip someonewhocares | |
- 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 | |
shell: bash | |
run: | | |
DIRS=(217heidai AdGuard BlueSkyXN AdRules neodevhost 1Hosts AWAvenue-Ads-Rule hBlock OISD PiHoleBlocklist 1024_hosts ad-wars StevenBlack anti-AD AdAway MVPS YousList pgl someonewhocares) | |
for DIR in "${DIRS[@]}"; do | |
mkdir -p "publish/$DIR" | |
find "$DIR" -maxdepth 1 -type f -exec mv {} "./publish/$DIR/" \; | |
done | |
- 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 | |
DIRS=(217heidai AdGuard BlueSkyXN AdRules neodevhost 1Hosts AWAvenue-Ads-Rule hBlock OISD PiHoleBlocklist 1024_hosts ad-wars StevenBlack anti-AD AdAway MVPS YousList pgl someonewhocares) | |
for DIR in "${DIRS[@]}"; do | |
if [ -d "$DIR" ]; then | |
for file in "$DIR"/*; do | |
if [ -f "$file" ]; then | |
RELATIVE_PATH="${file#$PWD/publish/}" | |
curl -si "https://purge.jsdelivr.net/gh/${{ github.repository }}@release/${RELATIVE_PATH}" | |
fi | |
done | |
fi | |
done |