forked from quickemu-project/quickemu
-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (123 loc) · 3.76 KB
/
test-quickget.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
name: "Test quickget 🧪"
on:
workflow_dispatch:
push:
branches: '**'
paths:
- quickget
pull_request:
branches: '**'
paths:
- quickget
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
list-all-supported:
name: List all supported OS 📝
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: List all supported OS variants
run: |
mkdir -p results
./quickget --list | tee -a results/supported.txt
echo -e "\nAll supported OS variants: $(wc -l results/supported.txt)"
- uses: actions/upload-artifact@v4
with:
name: supported
path: results/supported.txt
retention-days: 1
list-all-info:
name: List all OS info ℹ️
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Show info about all OS
run: |
export TERM=xterm
mkdir -p results
distros=$(./quickget | sed '/^$/q' | tail -n +3)
for os in ${distros}; do
echo -e "\n\n ${os}" && ./quickget -12345 "${os}" | tee -a results/infos.txt
done
echo -e "\nOS info: $(grep -c "http" results/infos.txt)"
- uses: actions/upload-artifact@v4
with:
name: infos
path: results/infos.txt
retention-days: 1
list-all-urls:
needs: [list-all-supported]
name: List all URLs 🔗
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: List all supported systems download URLs
run: |
export TERM=xterm
mkdir -p results
./quickget -u | tee -a url.txt
sort < url.txt > results/urls.txt
- uses: actions/download-artifact@v4
with:
path: results
merge-multiple: true
- name: results
run: |
ls -R results/
FOUND=$(grep -c 'http' < results/urls.txt)
ALL=$(wc -l < results/supported.txt)
echo -e "$FOUND/$ALL"
- uses: actions/upload-artifact@v4
with:
name: urls
path: results/urls.txt
check-all-urls:
name: Check all image URLs 💿️
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Checking if all downloads for Operating Systems are available
run: |
export TERM=xterm
mkdir -p results
./quickget --check | tee -a check.txt
cat check.txt | sort > results/checks.txt
GOOD=$(grep -c 'http' results/checks.txt)
WINDOWS=$(grep -c 'windows' results/checks.txt)
ALL=$((GOOD + WINDOWS))
FAILED=$(grep -c 'FAIL:' results/checks.txt)
SKIPPED=$(grep -c 'SKIP:' results/checks.txt)
PASSED=$(grep -c 'PASS:' results/checks.txt)
CHECKED=$((FAILED + SKIPPED + PASSED))
echo -e "\nFAILED: $FAILED"
echo "SKIPPED: $SKIPPED"
echo "PASSED: $PASSED"
echo "$CHECKED/$ALL with skipped Windows"
echo -e "Failed:\n$(grep 'FAIL:' results/checks.txt | tee -a results/failed.txt)"
- uses: actions/upload-artifact@v4
with:
name: checks
path: results/checks.txt
- uses: actions/upload-artifact@v4
with:
name: failed
path: results/failed.txt
upload-artifacts:
needs: [list-all-info, list-all-urls, check-all-urls]
name: Uploading artifacts
runs-on: ubuntu-22.04
steps:
- uses: actions/download-artifact@v4
with:
path: results
merge-multiple: true
- name: results
run: |
ls -R results/
- uses: actions/upload-artifact@v4
with:
overwrite: true
name: results
path: results/