|
1 | 1 | name: CI
|
2 | 2 |
|
3 | 3 | on:
|
| 4 | + workflow_dispatch: |
4 | 5 | push:
|
5 | 6 | branches: [ main ]
|
6 | 7 | pull_request:
|
7 | 8 | branches: [ main ]
|
8 | 9 |
|
| 10 | +concurrency: |
| 11 | + group: ci-${{ github.event.pull_request.number || github.ref }} |
| 12 | + cancel-in-progress: true |
| 13 | + |
9 | 14 | permissions:
|
10 | 15 | contents: read
|
11 | 16 |
|
12 | 17 | jobs:
|
13 | 18 | build:
|
14 | 19 | name: Build
|
15 | 20 | runs-on: ubuntu-latest
|
| 21 | + timeout-minutes: 10 |
16 | 22 | steps:
|
17 | 23 | - name: Checkout code
|
18 |
| - uses: actions/checkout@v3 |
19 |
| - - name: Setup Node.js 16.x |
20 |
| - uses: actions/setup-node@v3 |
| 24 | + uses: actions/checkout@v4 |
| 25 | + |
| 26 | + - name: Setup Node.js 18.x |
| 27 | + uses: actions/setup-node@v4 |
21 | 28 | with:
|
22 |
| - node-version: 16.x |
| 29 | + node-version: 18.x |
| 30 | + cache: 'npm' |
| 31 | + |
23 | 32 | - name: Install dependencies
|
24 |
| - run: npm ci |
| 33 | + run: npm clean-install --progress=false --no-fund |
| 34 | + |
25 | 35 | - name: Build PlayCanvas
|
26 | 36 | run: npm run build
|
27 | 37 |
|
28 | 38 | docs:
|
29 | 39 | name: Docs
|
30 | 40 | runs-on: ubuntu-latest
|
| 41 | + timeout-minutes: 10 |
31 | 42 | steps:
|
32 | 43 | - name: Checkout code
|
33 |
| - uses: actions/checkout@v3 |
34 |
| - - name: Setup Node.js 16.x |
35 |
| - uses: actions/setup-node@v3 |
| 44 | + uses: actions/checkout@v4 |
| 45 | + |
| 46 | + - name: Setup Node.js 18.x |
| 47 | + uses: actions/setup-node@v4 |
36 | 48 | with:
|
37 |
| - node-version: 16.x |
| 49 | + node-version: 18.x |
| 50 | + cache: 'npm' |
| 51 | + |
38 | 52 | - name: Install dependencies
|
39 |
| - run: npm ci |
| 53 | + run: npm clean-install --progress=false --no-fund |
| 54 | + |
40 | 55 | - name: Build API reference manual
|
41 | 56 | run: npm run docs
|
42 | 57 |
|
43 | 58 | lint:
|
44 | 59 | name: Lint
|
45 | 60 | runs-on: ubuntu-latest
|
| 61 | + timeout-minutes: 10 |
46 | 62 | steps:
|
47 | 63 | - name: Checkout code
|
48 |
| - uses: actions/checkout@v3 |
49 |
| - - name: Setup Node.js 16.x |
50 |
| - uses: actions/setup-node@v3 |
| 64 | + uses: actions/checkout@v4 |
| 65 | + |
| 66 | + - name: Setup Node.js 18.x |
| 67 | + uses: actions/setup-node@v4 |
51 | 68 | with:
|
52 |
| - node-version: 16.x |
| 69 | + node-version: 18.x |
| 70 | + cache: 'npm' |
| 71 | + |
53 | 72 | - name: Install dependencies
|
54 |
| - run: npm ci |
| 73 | + run: npm clean-install --progress=false --no-fund |
| 74 | + |
55 | 75 | - name: Run ESLint
|
56 | 76 | run: npm run lint
|
57 | 77 |
|
| 78 | + - name: Run ESLint on examples |
| 79 | + working-directory: ./examples |
| 80 | + run: | |
| 81 | + npm clean-install --progress=false --no-fund |
| 82 | + npm run lint |
| 83 | +
|
58 | 84 | typescript-declarations:
|
59 | 85 | name: TypeScript Declarations
|
60 | 86 | runs-on: ubuntu-latest
|
| 87 | + timeout-minutes: 10 |
61 | 88 | steps:
|
62 | 89 | - name: Checkout code
|
63 |
| - uses: actions/checkout@v3 |
64 |
| - - name: Setup Node.js 16.x |
65 |
| - uses: actions/setup-node@v3 |
| 90 | + uses: actions/checkout@v4 |
| 91 | + |
| 92 | + - name: Setup Node.js 18.x |
| 93 | + uses: actions/setup-node@v4 |
66 | 94 | with:
|
67 |
| - node-version: 16.x |
| 95 | + node-version: 18.x |
| 96 | + cache: 'npm' |
| 97 | + |
68 | 98 | - name: Install dependencies
|
69 |
| - run: npm ci |
| 99 | + run: npm clean-install --progress=false --no-fund |
| 100 | + |
70 | 101 | - name: Build TypeScript declarations
|
71 | 102 | run: npm run build:types
|
| 103 | + |
72 | 104 | - name: Compile TypeScript declarations
|
73 | 105 | run: npm run test:types
|
74 | 106 |
|
75 | 107 | unit-test-node:
|
76 | 108 | name: Unit Test (Node)
|
77 | 109 | runs-on: ubuntu-latest
|
| 110 | + timeout-minutes: 10 |
78 | 111 | steps:
|
79 | 112 | - name: Checkout code
|
80 |
| - uses: actions/checkout@v3 |
81 |
| - - name: Setup Node.js 16.x |
82 |
| - uses: actions/setup-node@v3 |
| 113 | + uses: actions/checkout@v4 |
| 114 | + |
| 115 | + - name: Setup Node.js 18.x |
| 116 | + uses: actions/setup-node@v4 |
83 | 117 | with:
|
84 |
| - node-version: 16.x |
| 118 | + node-version: 18.x |
| 119 | + cache: 'npm' |
| 120 | + |
85 | 121 | - name: Install dependencies
|
86 |
| - run: npm ci |
| 122 | + run: npm clean-install --progress=false --no-fund |
| 123 | + |
87 | 124 | - name: Run unit tests
|
88 | 125 | run: npm test
|
89 | 126 |
|
90 | 127 | unit-test-karma:
|
91 | 128 | name: Unit Test (Karma)
|
92 | 129 | runs-on: ubuntu-latest
|
| 130 | + timeout-minutes: 10 |
93 | 131 | steps:
|
94 | 132 | - name: Checkout code
|
95 |
| - uses: actions/checkout@v3 |
96 |
| - - name: Setup Node.js 16.x |
97 |
| - uses: actions/setup-node@v3 |
| 133 | + uses: actions/checkout@v4 |
| 134 | + |
| 135 | + - name: Setup Node.js 18.x |
| 136 | + uses: actions/setup-node@v4 |
98 | 137 | with:
|
99 |
| - node-version: 16.x |
| 138 | + node-version: 18.x |
| 139 | + cache: 'npm' |
| 140 | + |
100 | 141 | - name: Install dependencies
|
101 |
| - run: npm ci |
| 142 | + run: npm clean-install --progress=false --no-fund |
| 143 | + |
102 | 144 | - name: Build PlayCanvas (ES5-only)
|
103 | 145 | run: npm run build:es5
|
| 146 | + |
104 | 147 | - name: Install X virtual framebuffer
|
105 | 148 | run: sudo apt-get install xvfb
|
| 149 | + |
106 | 150 | - name: Run unit tests
|
107 | 151 | run: xvfb-run --auto-servernum npm run test:karma
|
108 | 152 |
|
109 | 153 | build-examples:
|
110 | 154 | name: Build Examples Browser
|
111 | 155 | runs-on: ubuntu-latest
|
| 156 | + timeout-minutes: 10 |
112 | 157 | steps:
|
113 | 158 | - name: Checkout code
|
114 |
| - uses: actions/checkout@v3 |
115 |
| - - name: Setup Node.js 16.x |
116 |
| - uses: actions/setup-node@v3 |
| 159 | + uses: actions/checkout@v4 |
| 160 | + |
| 161 | + - name: Setup Node.js 18.x |
| 162 | + uses: actions/setup-node@v4 |
117 | 163 | with:
|
118 |
| - node-version: 16.x |
| 164 | + node-version: 18.x |
| 165 | + cache: 'npm' |
| 166 | + |
119 | 167 | - name: Install dependencies
|
120 |
| - run: npm ci |
121 |
| - - name: Build PlayCanvas (ES6-only) |
122 |
| - run: npm run build:es6 |
| 168 | + run: npm clean-install --progress=false --no-fund |
| 169 | + |
| 170 | + - name: Build PlayCanvas (ES5-only) |
| 171 | + run: npm run build:es5 |
| 172 | + |
| 173 | + - name: Build PlayCanvas Extras |
| 174 | + run: npm run build:extras |
| 175 | + |
123 | 176 | - name: Build TypeScript declarations
|
124 | 177 | run: npm run build:types
|
| 178 | + |
125 | 179 | - name: Build Examples Browser
|
126 | 180 | working-directory: ./examples
|
127 | 181 | run: |
|
128 |
| - npm ci |
| 182 | + npm clean-install --progress=false --no-fund |
129 | 183 | npm run build
|
0 commit comments