Merge pull request #11048 from openlayers/test-action

Run tests as a GitHub CI workflow
This commit is contained in:
Tim Schaub
2020-05-17 05:17:42 -06:00
committed by GitHub
9 changed files with 61 additions and 33 deletions

View File

@@ -2,7 +2,7 @@ version: 2
jobs: jobs:
build: build:
docker: docker:
- image: circleci/node:current-browsers - image: circleci/node:current
working_directory: ~/repo working_directory: ~/repo
@@ -13,16 +13,6 @@ jobs:
keys: keys:
- v2-dependencies-{{ checksum "package-lock.json" }} - v2-dependencies-{{ checksum "package-lock.json" }}
- run:
name: Install Headless Chrome Dependencies
command: |
sudo apt-get install -yq \
gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 \
libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates \
fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
- run: - run:
name: Install Dependencies name: Install Dependencies
command: npm install command: npm install
@@ -32,21 +22,6 @@ jobs:
- node_modules - node_modules
key: v2-dependencies-{{ checksum "package-lock.json" }} key: v2-dependencies-{{ checksum "package-lock.json" }}
- run:
name: Run Tests
command: npm test
- store_artifacts:
path: /home/circleci/.npm/_logs
- store_artifacts:
path: coverage/
destination: coverage
- store_artifacts:
path: rendering/cases/
destination: rendering
- run: - run:
name: Build Examples name: Build Examples
command: npm run build-examples command: npm run build-examples

50
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,50 @@
name: Test
on:
push:
branches:
- master
pull_request:
branches:
- master
env:
CI: true
jobs:
run:
name: Node ${{ matrix.node }} / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
node:
- 14
steps:
- name: Clone Repository
uses: actions/checkout@v2
- name: Set Node.js Version
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node }}
- run: node --version
- run: npm --version
- name: Install Dependencies
run: npm ci
- name: Run Tests
run: npm test
- name: Store Rendering Test Artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v2
with:
name: rendering-tests
path: rendering/cases/

View File

@@ -27,5 +27,5 @@ new Map({
render({ render({
message: 'Vector tile layer renders with vector render mode', message: 'Vector tile layer renders with vector render mode',
tolerance: 0.01, tolerance: 0.02,
}); });

View File

@@ -48,4 +48,7 @@ new Map({
}), }),
}); });
render({message: 'Vector tile layer rotates with vector layer on top'}); render({
message: 'Vector tile layer rotates with vector layer on top',
tolerance: 0.01,
});

View File

@@ -24,4 +24,4 @@ const map = new Map({
}); });
map.getView().setRotation(Math.PI / 4); map.getView().setRotation(Math.PI / 4);
render({message: 'Vector tile layer rotates'}); render({message: 'Vector tile layer rotates', tolerance: 0.01});

View File

@@ -25,5 +25,5 @@ new Map({
render({ render({
message: 'Vector tile layer renders', message: 'Vector tile layer renders',
tolerance: 0.01, tolerance: 0.02,
}); });

View File

@@ -46,4 +46,4 @@ const unmanaged = new VectorLayer({
}); });
unmanaged.setMap(map); unmanaged.setMap(map);
render(); render({tolerance: 0.01});

View File

@@ -381,7 +381,7 @@ if (require.main === module) {
.option('headless', { .option('headless', {
describe: 'Launch Puppeteer in headless mode', describe: 'Launch Puppeteer in headless mode',
type: 'boolean', type: 'boolean',
default: false, default: !!process.env.CI,
}) })
.option('puppeteer-args', { .option('puppeteer-args', {
describe: 'Additional args for Puppeteer', describe: 'Additional args for Puppeteer',

View File

@@ -2,7 +2,7 @@ const path = require('path');
module.exports = function (karma) { module.exports = function (karma) {
karma.set({ karma.set({
browsers: ['Chrome'], browsers: [process.env.CI ? 'ChromeHeadless' : 'Chrome'],
browserDisconnectTolerance: 2, browserDisconnectTolerance: 2,
frameworks: ['mocha'], frameworks: ['mocha'],
client: { client: {