-
-
Notifications
You must be signed in to change notification settings - Fork 37
120 lines (116 loc) · 4.03 KB
/
nodejs.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
# For details of what checks are run for PRs please refer below
# docs: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
name: Node CI
on:
push:
branches: [ "master" ]
pull_request:
workflow_dispatch:
schedule:
- # test every sunday, if the setup still works
cron: '20 4 * * SUN'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
## As this project is a meta-package, there are no functionalities nor tests.
## So the only responsibility that must be assured is: this project can be installed under all circumstances.
jobs:
test-npm-install:
name: NPM install (node${{ matrix.node-version }}, ${{ matrix.os }})
timeout-minutes: 5
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
node-version:
# action based on https://github.com/actions/node-versions/releases
# see also: https://nodejs.org/en/about/releases/
- "20" # Current
- "18" # Active LTS
- "16"
- "14"
steps:
- name: Checkout
# see https://github.com/actions/checkout
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
# see https://github.com/actions/setup-node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: install project
run: >
npm install
--no-audit
--no-package-lock
--verbose
# proven: the package can be installed. that's enough for a meta-package
test-yarn-install:
name: YARN install (node${{ matrix.node-version }}, ${{ matrix.os }})
timeout-minutes: 5
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
node-version:
# action based on https://github.com/actions/node-versions/releases
# see also: https://nodejs.org/en/about/releases/
- "20" # Current
- "18" # Active LTS
- "16"
- "14"
steps:
- name: Checkout
## see https://github.com/actions/checkout
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
# see https://github.com/actions/setup-node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: install project
run: >
yarn install
--inline-builds
# proven: the package can be installed. that's enough for a meta-package
test-pnpm-install:
name: PNPM install (node${{ matrix.node-version }}, ${{ matrix.os }})
timeout-minutes: 5
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ "ubuntu-latest", "windows-latest", "macos-latest" ]
node-version:
# action based on https://github.com/actions/node-versions/releases
# see also: https://nodejs.org/en/about/releases/
- "20" # Current
- "18" # Active LTS
- "16"
pnpm-version: [ "latest" ]
include:
- os: "ubuntu-latest"
node-version: "14"
pnpm-version: "latest-7" # see https://www.npmjs.com/package/pnpm/?activeTab=versions
steps:
- name: Checkout
# see https://github.com/actions/checkout
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
# see https://github.com/actions/setup-node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: setup pnpm
## see https://github.com/pnpm/action-setup
uses: pnpm/[email protected]
with:
version: ${{ matrix.pnpm-version }}
- name: install project
run: >
pnpm install
--no-lockfile
--verbose
# proven: the package can be installed. that's enough for a meta-package