-
Notifications
You must be signed in to change notification settings - Fork 4
155 lines (137 loc) · 9.59 KB
/
Release Adblock File.yml
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
name: Release Adblock File # 工作流名称
on:
schedule:
- cron: '*/20 * * * *' # 每20分钟运行一次
workflow_dispatch: # 允许手动触发工作流
jobs:
create-release:
runs-on: ubuntu-latest # 使用最新的 Ubuntu 版本作为运行环境
steps:
- name: Clear previous logs # 清除之前的日志文件
run: |
sudo rm -rf /home/runner/runners/*/_diag/*.log || true
- name: Checkout code # 检出代码
uses: actions/checkout@v3 # 使用官方的checkout操作来检出代码
- name: Get current time # 获取当前时间
id: current-time # 设置步骤ID,以便后续步骤引用
run: echo "time=$(date +'%y%m%d%H%M')" >> $GITHUB_ENV # 获取当前时间,并将其输出为GitHub Actions的环境变量
- name: Update timestamp file # 更新时间戳文件
run: echo "${{ env.time }}" > timestamp.txt # 将当前时间写入timestamp.txt文件
- name: Force add and commit changes # 强制添加和提交更改
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git add -f ADBLOCK_RULE_COLLECTION.txt ADBLOCK_RULE_COLLECTION_Lite.txt ADBLOCK_RULE_COLLECTION_HOST.txt ADBLOCK_RULE_COLLECTION_HOST_Lite.txt ADBLOCK_RULE_COLLECTION_DNS.txt ADBLOCK_RULE_COLLECTION_DNS_Lite.txt ADBLOCK_RULE_COLLECTION_HOST_IPV6.txt ADBLOCK_RULE_COLLECTION_HOST_IPV6_Lite.txt ADBLOCK_RULE_COLLECTION_DOMAIN.txt ADBLOCK_RULE_COLLECTION_DOMAIN_Lite.txt timestamp.txt
git commit -m "Forced update of adblock files and timestamp"
for attempt in {1..5}; do # 尝试5次
if git push origin main; then
break
else
echo "Push failed, attempting to pull and rebase..."
git pull --rebase # 拉取并合并远程更改
sleep $((attempt * 10)) # 指数级退避,首次等待10秒,第二次20秒,依此类推
fi
done
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
- name: Create Release # 创建发布版本
id: create_release # 设置步骤ID,以便后续步骤引用
uses: actions/create-release@v1 # 使用官方的create-release操作来创建发布版本
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
with:
tag_name: release-${{ env.time }} # 使用当前时间作为标签名称
release_name: Release ${{ env.time }} # 使用当前时间作为发布名称
body: "Periodic release of adblock files." # 发布说明
draft: false # 发布为正式版本
prerelease: false # 不发布为预发布版本
- name: Upload ADBLOCK_RULE_COLLECTION.txt # 上传ADBLOCK_RULE_COLLECTION.txt文件
uses: actions/upload-release-asset@v1 # 使用官方的upload-release-asset操作来上传发布资源
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 使用创建发布版本步骤中的上传URL
asset_path: ADBLOCK_RULE_COLLECTION.txt # 要上传的文件路径
asset_name: ADBLOCK_RULE_COLLECTION.txt # 上传后的文件名称
asset_content_type: text/plain # 文件的内容类型
- name: Upload ADBLOCK_RULE_COLLECTION_Lite.txt # 上传ADBLOCK_RULE_COLLECTION_Lite.txt文件
uses: actions/upload-release-asset@v1 # 使用官方的upload-release-asset操作来上传发布资源
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 使用创建发布版本步骤中的上传URL
asset_path: ADBLOCK_RULE_COLLECTION_Lite.txt # 要上传的文件路径
asset_name: ADBLOCK_RULE_COLLECTION_Lite.txt # 上传后的文件名称
asset_content_type: text/plain # 文件的内容类型
- name: Upload ADBLOCK_RULE_COLLECTION_HOST.txt # 上传ADBLOCK_RULE_COLLECTION_HOST.txt文件
uses: actions/upload-release-asset@v1 # 使用官方的upload-release-asset操作来上传发布资源
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 使用创建发布版本步骤中的上传URL
asset_path: ADBLOCK_RULE_COLLECTION_HOST.txt # 要上传的文件路径
asset_name: ADBLOCK_RULE_COLLECTION_HOST.txt # 上传后的文件名称
asset_content_type: text/plain # 文件的内容类型
- name: Upload ADBLOCK_RULE_COLLECTION_HOST_Lite.txt # 上传ADBLOCK_RULE_COLLECTION_HOST_Lite.txt文件
uses: actions/upload-release-asset@v1 # 使用官方的upload-release-asset操作来上传发布资源
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 使用创建发布版本步骤中的上传URL
asset_path: ADBLOCK_RULE_COLLECTION_HOST_Lite.txt # 要上传的文件路径
asset_name: ADBLOCK_RULE_COLLECTION_HOST_Lite.txt # 上传后的文件名称
asset_content_type: text/plain # 文件的内容类型
- name: Upload ADBLOCK_RULE_COLLECTION_DNS.txt # 上传ADBLOCK_RULE_COLLECTION_DNS.txt文件
uses: actions/upload-release-asset@v1 # 使用官方的upload-release-asset操作来上传发布资源
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 使用创建发布版本步骤中的上传URL
asset_path: ADBLOCK_RULE_COLLECTION_DNS.txt # 要上传的文件路径
asset_name: ADBLOCK_RULE_COLLECTION_DNS.txt # 上传后的文件名称
asset_content_type: text/plain # 文件的内容类型
- name: Upload ADBLOCK_RULE_COLLECTION_DNS_Lite.txt # 上传ADBLOCK_RULE_COLLECTION_DNS_Lite.txt文件
uses: actions/upload-release-asset@v1 # 使用官方的upload-release-asset操作来上传发布资源
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 使用创建发布版本步骤中的上传URL
asset_path: ADBLOCK_RULE_COLLECTION_DNS_Lite.txt # 要上传的文件路径
asset_name: ADBLOCK_RULE_COLLECTION_DNS_Lite.txt # 上传后的文件名称
asset_content_type: text/plain # 文件的内容类型
- name: Upload ADBLOCK_RULE_COLLECTION_HOST_IPV6.txt # 上传ADBLOCK_RULE_COLLECTION_HOST_IPV6.txt文件
uses: actions/upload-release-asset@v1 # 使用官方的upload-release-asset操作来上传发布资源
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 使用创建发布版本步骤中的上传URL
asset_path: ADBLOCK_RULE_COLLECTION_HOST_IPV6.txt # 要上传的文件路径
asset_name: ADBLOCK_RULE_COLLECTION_HOST_IPV6.txt # 上传后的文件名称
asset_content_type: text/plain # 文件的内容类型
- name: Upload ADBLOCK_RULE_COLLECTION_HOST_IPV6_Lite.txt # 上传ADBLOCK_RULE_COLLECTION_HOST_IPV6_Lite.txt文件
uses: actions/upload-release-asset@v1 # 使用官方的upload-release-asset操作来上传发布资源
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 使用创建发布版本步骤中的上传URL
asset_path: ADBLOCK_RULE_COLLECTION_HOST_IPV6_Lite.txt # 要上传的文件路径
asset_name: ADBLOCK_RULE_COLLECTION_HOST_IPV6_Lite.txt # 上传后的文件名称
asset_content_type: text/plain # 文件的内容类型
- name: Upload ADBLOCK_RULE_COLLECTION_DOMAIN.txt # 上传ADBLOCK_RULE_COLLECTION_DOMAIN.txt文件
uses: actions/upload-release-asset@v1 # 使用官方的upload-release-asset操作来上传发布资源
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 使用创建发布版本步骤中的上传URL
asset_path: ADBLOCK_RULE_COLLECTION_DOMAIN.txt # 要上传的文件路径
asset_name: ADBLOCK_RULE_COLLECTION_DOMAIN.txt # 上传后的文件名称
asset_content_type: text/plain # 文件的内容类型
- name: Upload ADBLOCK_RULE_COLLECTION_DOMAIN_Lite.txt # 上传ADBLOCK_RULE_COLLECTION_DOMAIN_Lite.txt文件
uses: actions/upload-release-asset@v1 # 使用官方的upload-release-asset操作来上传发布资源
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }} # 使用自定义的 TOKEN 进行身份验证
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 使用创建发布版本步骤中的上传URL
asset_path: ADBLOCK_RULE_COLLECTION_DOMAIN_Lite.txt # 要上传的文件路径
asset_name: ADBLOCK_RULE_COLLECTION_DOMAIN_Lite.txt # 上传后的文件名称
asset_content_type: text/plain # 文件的内容类型