-
-
Notifications
You must be signed in to change notification settings - Fork 2
90 lines (77 loc) · 2.48 KB
/
build_deploy.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
name: Build and deploy
run-name: Build and deploy
on:
workflow_dispatch:
schedule:
- cron: '0 23 * * *'
permissions:
contents: write
jobs:
test-functions:
uses: ./.github/workflows/test_functions.yml
update-toplist:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: main
- name: Update toplist
run: |
wget -qO - 'https://tranco-list.eu/top-1m.csv.zip' | gunzip - > toplist.tmp
awk -F ',' '{print $2}' toplist.tmp > data/toplist.txt
bash functions/tools.sh format data/toplist.txt
rm toplist.tmp
- name: Push
run: |
git config user.email ${{ vars.GIT_EMAIL }}
git config user.name ${{ vars.GIT_USERNAME }}
git add .
git diff-index --quiet HEAD || git commit -m "Update toplist"
git push -q
build:
needs: [test-functions, update-toplist]
uses: ./.github/workflows/retrieve_domains.yml
secrets: inherit
remove-dead:
needs: [test-functions, build]
if: ${{ ! cancelled() && needs.test-functions.result == 'success' }}
uses: ./.github/workflows/check_dead.yml
validate:
needs: [test-functions, remove-dead]
if: ${{ ! cancelled() && needs.test-functions.result == 'success' }}
uses: ./.github/workflows/validate_entries.yml
deploy:
needs: [test-functions, validate]
if: ${{ ! cancelled() && needs.test-functions.result == 'success' }}
uses: ./.github/workflows/build_lists.yml
prune-logs:
needs: deploy
if: ${{ ! cancelled() }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: main
- name: Prune logs
run: |
lines="$(wc -l < config/domain_log.csv)"
if (( lines > 10000 )); then
sed -i "1,$(( lines - 10000 ))d" config/domain_log.csv
fi
lines="$(wc -l < config/source_log.csv)"
if (( lines > 1000 )); then
sed -i "1,$(( lines - 1000 ))d" config/source_log.csv
fi
- name: Push
run: |
git config user.email ${{ vars.GIT_EMAIL }}
git config user.name ${{ vars.GIT_USERNAME }}
git add .
git diff-index --quiet HEAD || git commit -m "Prune logs"
git push -q
update-readme:
needs: [deploy, prune-logs]
if: ${{ ! cancelled() && needs.deploy.result == 'success' }}
uses: ./.github/workflows/update_readme.yml