-
Notifications
You must be signed in to change notification settings - Fork 1.2k
135 lines (115 loc) · 4.17 KB
/
updategeoip-cn.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
name: Update China IP
on:
workflow_dispatch:
schedule:
- cron: '0 2 */3 * *'
jobs:
prepare:
name: Set up
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: Save Cache
uses: actions/cache/save@v3
with:
path: ./
key: restore-${{ github.sha }}-${{ github.run_number }}
rules:
name: Generate rules
runs-on: ubuntu-latest
needs: prepare
steps:
- name: Restore Cache
uses: actions/cache/restore@v3
with:
path: ./
key: restore-
- 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
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=1" >> $GITHUB_ENV
exit 0
else
echo "Hashes do not match. The files are different."
echo "Upstream updated."
echo "STATUS=0" >> $GITHUB_ENV
cp ./BypassCNandLan.rules ./rules/BypassCNandLan.rules
echo "MESSAGE=\"Update at $(TZ=Asia/Shanghai date)\"" >> $GITHUB_ENV
fi
shell: bash
- uses: planetscale/ghcommit-action@v0.1.6
if: env.STATUS == '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'
someip:
name: Generate rules (someip)
runs-on: ubuntu-latest
needs: prepare
steps:
- name: Restore Cache
uses: actions/cache/restore@v3
with:
path: ./
key: restore-
- name: Get CIDR field
run: |
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_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" >> $GITHUB_ENV
exit 0
else
echo "Hashes do not match. The files are different."
echo "Upstream updated."
echo "STATUS=0" >> $GITHUB_ENV
cp ./BypassCNandLan_someip.rules ./rules/BypassCNandLan_someip.rules
echo "MESSAGE=\"Update at $(TZ=Asia/Shanghai date)\"" >> $GITHUB_ENV
fi
shell: bash
- uses: planetscale/ghcommit-action@v0.1.6
if: env.STATUS == '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_someip.rules'