Skip to content

Commit 9efd503

Browse files
authored
Validation libxml2 (#668)
Signed-off-by: Jan Kowalleck <[email protected]>
1 parent 1142929 commit 9efd503

13 files changed

+1083
-251
lines changed

.github/workflows/nodejs.yml

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ concurrency:
1414
cancel-in-progress: true
1515

1616
env:
17-
NODE_ACTIVE_LTS: "18" # see https://nodejs.org/en/about/releases/
17+
NODE_ACTIVE_LTS: "20" # see https://nodejs.org/en/about/releases/
1818
REPORTS_DIR: "CI_reports"
1919
TESTS_REPORTS_ARTIFACT: tests-reports
2020
STANDARD_REPORTS_ARTIFACT: cs-reports
@@ -43,7 +43,7 @@ jobs:
4343
cache: "npm"
4444
cache-dependency-path: "**/package-lock.json"
4545
- name: setup project
46-
run: npm ci --ignore-scripts
46+
run: npm ci --ignore-scripts --include=optional --loglevel=silly
4747
- name: build ${{ matrix.target }}
4848
run: npm run build:${{ matrix.target }}
4949
- name: artifact build result
@@ -70,7 +70,7 @@ jobs:
7070
cache: "npm"
7171
cache-dependency-path: "**/package-lock.json"
7272
- name: setup project
73-
run: npm ci --ignore-scripts
73+
run: npm ci --ignore-scripts --include=optional --loglevel=silly
7474
- name: make reports dir
7575
run: mkdir -p "$REPORTS_DIR"
7676
- name: test
@@ -104,7 +104,7 @@ jobs:
104104
node-version:
105105
# action based on https://github.com/actions/node-versions/releases
106106
# see also: https://nodejs.org/en/about/releases/
107-
- "19" # current
107+
- "20" # Current
108108
- "18" # active LTS
109109
- "16"
110110
- "14"
@@ -126,7 +126,10 @@ jobs:
126126
cache: "npm"
127127
cache-dependency-path: "**/package-lock.json"
128128
- name: setup project
129-
run: npm ci --ignore-scripts
129+
run: |
130+
npm ci --ignore-scripts --include=optional --loglevel=silly
131+
## rebuild deps for which scripts were ignored, but are critical
132+
npm rebuild --loglevel=silly libxmljs2
130133
- name: fetch build artifact
131134
# see https://github.com/actions/download-artifact
132135
uses: actions/download-artifact@v3
@@ -166,7 +169,7 @@ jobs:
166169
with:
167170
node-version: ${{ env.NODE_ACTIVE_LTS }}
168171
- name: setup library
169-
run: npm ci --ignore-scripts --omit=optional
172+
run: npm ci --ignore-scripts --omit=optional --loglevel=silly
170173
- name: fetch build artifact
171174
# see https://github.com/actions/download-artifact
172175
uses: actions/download-artifact@v3
@@ -246,9 +249,9 @@ jobs:
246249
name: dist.node
247250
path: dist.node
248251
- name: setup library
249-
run: npm ci --ignore-scripts --omit=dev --include=optional
252+
run: npm ci --ignore-scripts --omit=dev --include=optional --loglevel=silly
250253
- name: setup example project
251-
run: npm i --no-save
254+
run: npm i --no-save --loglevel=silly
252255
working-directory: ${{ env.EXAMPLE_DIR }}
253256
- name: run example
254257
run: node -- 'example.${{ matrix.js-type }}'
@@ -264,18 +267,12 @@ jobs:
264267
typescript-version:
265268
- '^5' # latest 5.X
266269
- '^4' # latest 4.X
267-
- '^3' # latest 3.X
268270
js-type: [ 'cjs', 'mjs' ]
269271
include:
270-
## some @types/node versions were incompatible or caused issues
271-
- typescript-version: '^3'
272-
nodeTypes-version: '^16'
273-
- typescript-version: '3.8.2' # lowest reasonable number that works
274-
js-type: 'cjs'
272+
- # lowest reasonable number that works
273+
typescript-version: '^3'
275274
nodeTypes-version: '^14'
276-
exclude:
277-
- typescript-version: '^3'
278-
js-type: 'mjs'
275+
js-type: 'cjs'
279276
env:
280277
EXAMPLE_DIR: examples/node-typescript/example.${{ matrix.js-type }}
281278
timeout-minutes: 10
@@ -301,12 +298,14 @@ jobs:
301298
name: dist.node
302299
path: dist.node
303300
- name: setup library
304-
run: npm ci --ignore-scripts --omit=dev --include=optional
301+
run: npm ci --ignore-scripts --omit=dev --include=optional --loglevel=silly
305302
- name: setup example project
306-
run: >
307-
npm i --no-save
308-
'typescript@${{ matrix.typescript-version }}'
309-
'@types/node@${{ matrix.nodeTypes-version || env.NODE_ACTIVE_LTS }}'
303+
run: npm i --no-save --loglevel=silly 'typescript@${{ matrix.typescript-version }}'
304+
- name: get TS-version
305+
id: ts_version
306+
run: node -p '`v=ts${require("typescript").version.split(".",2).join(".")}`' >> "$GITHUB_OUTPUT"
307+
- name: adjust @types/node version
308+
run: npm i --no-save --loglevel=silly '@types/node@${{ matrix.nodeTypes-version || steps.ts_version.outputs.v}}'
310309
working-directory: ${{ env.EXAMPLE_DIR }}
311310
- name: build example
312311
run: npm run build
@@ -337,6 +336,6 @@ jobs:
337336
cache: "npm"
338337
cache-dependency-path: "**/package-lock.json"
339338
- name: setup project
340-
run: npm ci --ignore-scripts
339+
run: npm ci --ignore-scripts --loglevel=silly
341340
- name: api-doc ${{ matrix.target }}
342341
run: npm run api-doc:${{ matrix.target }}

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ See the shipped `package.json` for version constraints.
126126
* [`ajv`](https://www.npmjs.com/package/ajv)
127127
* [`ajv-formats`](https://www.npmjs.com/package/ajv-formats)
128128
* [`ajv-formats-draft2019`](https://www.npmjs.com/package/ajv-formats-draft2019)
129+
* XML validation requires all of:
130+
* [`libxmljs2`](https://www.npmjs.com/package/libxmljs2)
131+
* System must meet the requirements for [`node-gyp`](https://github.com/TooTallNate/node-gyp#installation)
129132

130133
## Usage
131134

0 commit comments

Comments
 (0)