-
Notifications
You must be signed in to change notification settings - Fork 0
140 lines (119 loc) · 3.73 KB
/
tests.yml
File metadata and controls
140 lines (119 loc) · 3.73 KB
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
name: Tests
on:
push:
branches:
- master
pull_request:
workflow_dispatch:
inputs:
run_full_tests:
description: 'Run full tests?'
required: false
default: 'false'
env:
RUN_FULL_TESTS: ${{ github.event.inputs.run_full_tests || 'false' }}
jobs:
tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
# - "macos-latest"
- "ubuntu-latest"
php:
# - "8.4"
- "8.5"
name: PHP ${{ matrix.php }} on ${{ matrix.os }}
steps:
- name: Install tools
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y sqlite3 libxml2-utils
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
- name: Check env
run: |
php -v
sqlite3 -version
xmllint --version
wget --version
- name: Checkout repository
uses: actions/checkout@v6
- name: Show help
run: ./generate.sh -h
- name: Test unsupported language
run: |
! ./generate.sh unsupported-lang
- name: Test default generation
run: |
rm -rf output
./generate.sh
test -d output/PHP_en.docset
- name: Test other language
if: env.RUN_FULL_TESTS == 'true'
run: |
rm -rf output
./generate.sh zh
test -d output/PHP_zh.docset
- name: Test multiple languages
if: env.RUN_FULL_TESTS == 'true'
run: |
rm -rf output
./generate.sh zh en
test -d output/PHP_zh.docset
test -d output/PHP_en.docset
- name: Test --mirror option with default language
run: |
rm -rf output
./generate.sh --mirror
test -d output/php.net
test -d output/php.net/manual/en
- name: Test --mirror option with multiple languages
if: env.RUN_FULL_TESTS == 'true'
run: |
rm -rf output
./generate.sh --mirror en zh
test -d output/php.net
test -d output/php.net/manual/en
test -d output/php.net/manual/zh
- name: Test --no-usernotes option
if: env.RUN_FULL_TESTS == 'true'
run: |
rm -rf output
./generate.sh --no-usernotes zh
test -d output/PHP_zh.docset
file="output/PHP_zh.docset/Contents/Resources/Documents/function.strlen.html"
! grep -q '<div id="usernotes">' "$file" || echo "❌ Found usernotes in $file"
- name: Test --skip-update option
if: env.RUN_FULL_TESTS == 'true'
run: |
rm -rf output phpdoc
! ./generate.sh --skip-update
./generate.sh zh && rm -rf output
./generate.sh zh --skip-update
test -d output/PHP_zh.docset
- name: Test --output option
if: env.RUN_FULL_TESTS == 'true'
run: |
rm -rf output foo/bar
! ./generate.sh --output
./generate.sh --output foo/bar en zh
test -d foo/bar/PHP_en.docset
test -d foo/bar/PHP_zh.docset
rm -rf foo/bar
rm -rf ~/custom/output
./generate.sh --output ~/custom/output en zh --mirror
test -d ~/custom/output/php.net
test -d ~/custom/output/php.net/manual/en
test -d ~/custom/output/php.net/manual/zh
rm -rf ~/custom/output
- name: Test all languages
if: env.RUN_FULL_TESTS == 'true'
run: |
rm -rf output
for lang in en de es fr it ja pt_BR ru tr uk zh; do
./generate.sh $lang --dev || echo "⚠️ Failed to generate Dash docset for the language: $lang"
done