-
Notifications
You must be signed in to change notification settings - Fork 68
161 lines (147 loc) · 11.8 KB
/
build_test.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
156
157
158
159
160
161
# To run locally using act, use command:
# act -P ubuntu-latest=ghcr.io/catthehacker/ubuntu:rust-latest
# See: https://github.com/nektos/act/issues/297
name: Auto-build pdfium-render
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
env:
CARGO_TERM_COLOR: always
PDFIUM_RELEASE_TAG: 6721 # September 2024, https://github.com/bblanchon/pdfium-binaries/releases/tag/chromium%2F6721
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: rustup update && cargo build --verbose
- name: Download Pdfium
run: curl -L -o "pdfium.tgz" "https://github.com/bblanchon/pdfium-binaries/releases/download/chromium/${PDFIUM_RELEASE_TAG}/pdfium-linux-x64.tgz"
- name: Unpack Pdfium
run: mkdir pdfium && tar -xvzf pdfium.tgz -C pdfium
- name: Install Pdfium
run: cp pdfium/lib/libpdfium.so . && export LD_LIBRARY_PATH="./"
- name: Run tests
run: cargo test --verbose --features="paragraph"
- name: Verify static linking compatibility
run: cargo check --features="static"
- name: Verify WASM compatibility
run: cargo install wasm-pack && wasm-pack build examples/ --target no-modules
- name: Generate documentation
run: cargo doc
# Check to make sure we have complete Pdfium API coverage in bindings
- name: Check bindings API coverage
run: bash .github/scripts/api_coverage_test.sh
# Compatibility checks for dynamic and thread safe bindings
- name: Check forward compatibility with pdfium_future and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_future"
- name: Check backward compatibility with pdfium_5961 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_5961"
- name: Check backward compatibility with pdfium_6015 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6015"
- name: Check backward compatibility with pdfium_6043 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6043"
- name: Check backward compatibility with pdfium_6084 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6084"
- name: Check backward compatibility with pdfium_6110 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6110"
- name: Check backward compatibility with pdfium_6124 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6124"
- name: Check backward compatibility with pdfium_6164 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6164"
- name: Check backward compatibility with pdfium_6259 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6259"
- name: Check backward compatibility with pdfium_6295 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6295"
- name: Check backward compatibility with pdfium_6337 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6337"
- name: Check backward compatibility with pdfium_6406 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6406"
- name: Check backward compatibility with pdfium_6490 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6490"
- name: Check backward compatibility with pdfium_6555 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6555"
- name: Check backward compatibility with pdfium_6569 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6569"
- name: Check backward compatibility with pdfium_6611 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6611"
- name: Check backward compatibility with pdfium_6666 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6666"
- name: Check backward compatibility with pdfium_6721 and dynamic bindings
run: cargo check --no-default-features --features="image, thread_safe, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6721"
# Compatibility checks for static bindings
- name: Check forward compatibility with pdfium_future and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_future"
- name: Check backward compatibility with pdfium_5961 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_5961"
- name: Check backward compatibility with pdfium_6015 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6015"
- name: Check backward compatibility with pdfium_6043 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6043"
- name: Check backward compatibility with pdfium_6084 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6084"
- name: Check backward compatibility with pdfium_6110 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6110"
- name: Check backward compatibility with pdfium_6124 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6124"
- name: Check backward compatibility with pdfium_6164 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6164"
- name: Check backward compatibility with pdfium_6259 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6259"
- name: Check backward compatibility with pdfium_6295 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6295"
- name: Check backward compatibility with pdfium_6337 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6337"
- name: Check backward compatibility with pdfium_6406 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6406"
- name: Check backward compatibility with pdfium_6490 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6490"
- name: Check backward compatibility with pdfium_6555 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6555"
- name: Check backward compatibility with pdfium_6569 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6569"
- name: Check backward compatibility with pdfium_6611 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6611"
- name: Check backward compatibility with pdfium_6666 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6666"
- name: Check backward compatibility with pdfium_6721 and static bindings
run: cargo check --no-default-features --features="image, static, pdfium_use_skia, pdfium_enable_xfa, pdfium_enable_v8, pdfium_6721"
# Compatibility checks for WASM bindings
- name: Check forward compatibility with pdfium_future and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_future
- name: Check backward compatibility with pdfium_5961 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_5961
- name: Check backward compatibility with pdfium_6015 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6015
- name: Check backward compatibility with pdfium_6043 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6043
- name: Check backward compatibility with pdfium_6084 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6084
- name: Check backward compatibility with pdfium_6110 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6110
- name: Check backward compatibility with pdfium_6124 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6124
- name: Check backward compatibility with pdfium_6164 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6164
- name: Check backward compatibility with pdfium_6259 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6259
- name: Check backward compatibility with pdfium_6295 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6295
- name: Check backward compatibility with pdfium_6337 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6337
- name: Check backward compatibility with pdfium_6406 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6406
- name: Check backward compatibility with pdfium_6490 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6490
- name: Check backward compatibility with pdfium_6555 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6555
- name: Check backward compatibility with pdfium_6569 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6569
- name: Check backward compatibility with pdfium_6611 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6611
- name: Check backward compatibility with pdfium_6666 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6666
- name: Check backward compatibility with pdfium_6721 and WASM bindings
run: bash .github/scripts/wasm_api_compat_test.sh pdfium_6721