Update China IP #140
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: Update China IP | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 2 */3 * *' | |
jobs: | |
update: | |
name: Generate rules | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code into directory | |
uses: actions/checkout@v4 | |
- name: Git config | |
run: | | |
git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config user.name "github-actions[bot]" | |
git fetch --unshallow | |
shell: bash | |
- name: Get CIDR field | |
run: | | |
echo "#BypassCNandLan,绕过大陆和局域网,1,1,1,0,0,0," >> BypassCNandLan.rules | |
curl https://raw.githubusercontent.com/Hackl0us/GeoIP2-CN/release/CN-ip-cidr.txt >> BypassCNandLan.rules | |
sed -i '2{/^$/d;}' BypassCNandLan.rules | |
echo 10.0.0.0/8 >> BypassCNandLan.rules | |
echo 172.16.0.0/12 >> BypassCNandLan.rules | |
echo 192.168.0.0/16 >> BypassCNandLan.rules | |
echo "#BypassCNandLan,绕过大陆和局域网someip,1,1,1,0,0,0," >> BypassCNandLan_someip.rules | |
curl https://raw.githubusercontent.com/0x2E/someip/build/cidr.txt >> BypassCNandLan_someip.rules | |
sed -i '2{/^$/d;}' BypassCNandLan_someip.rules | |
echo 10.0.0.0/8 >> BypassCNandLan_someip.rules | |
echo 172.16.0.0/12 >> BypassCNandLan_someip.rules | |
echo 192.168.0.0/16 >> BypassCNandLan_someip.rules | |
shell: bash | |
- name: Compare New file and Old file | |
run: | | |
( | |
hash1=$(sha256sum "./BypassCNandLan.rules" | awk '{print $1}') | |
hash2=$(sha256sum "./rules/BypassCNandLan.rules" | awk '{print $1}') | |
echo -e "hash1=$hash1\nhash2=$hash2" | |
if [ "$hash1" == "$hash2" ]; then | |
echo "Hashes match. The files are identical." | |
echo "Upstream not updated" | |
echo "STATUS_0=1" >> $GITHUB_ENV | |
rm ./BypassCNandLan.rules | |
else | |
echo "Hashes do not match. The files are different." | |
echo "Upstream updated." | |
echo "STATUS_0=0" >> $GITHUB_ENV | |
cp ./BypassCNandLan.rules ./rules/BypassCNandLan.rules | |
fi | |
) | |
( | |
hash1=$(sha256sum "./BypassCNandLan_someip.rules" | awk '{print $1}') | |
hash2=$(sha256sum "./rules/BypassCNandLan_someip.rules" | awk '{print $1}') | |
echo -e "hash1=$hash1\nhash2=$hash2" | |
if [ "$hash1" == "$hash2" ]; then | |
echo "Hashes match. The files are identical." | |
echo "Upstream not updated" | |
echo "STATUS_1=1" >> $GITHUB_ENV | |
rm ./BypassCNandLan_someip.rules | |
else | |
echo "Hashes do not match. The files are different." | |
echo "Upstream updated." | |
echo "STATUS_1=0" >> $GITHUB_ENV | |
cp ./BypassCNandLan_someip.rules ./rules/BypassCNandLan_someip.rules | |
fi | |
) | |
echo "MESSAGE=\"Update at $(TZ=Asia/Shanghai date)\"" >> $GITHUB_ENV | |
shell: bash | |
- uses: planetscale/[email protected] | |
if: env.STATUS_0 == '0' || env.STATUS_1 == '0' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
commit_message: "${{ env.MESSAGE }}" | |
repo: ${{ github.repository }} | |
branch: ${{ github.head_ref || github.ref_name }} | |
file_pattern: './rules/BypassCNandLan.rules ./rules/BypassCNandLan_someip.rules' |