--- /dev/null
+name: CI
+
+on: [push]
+
+jobs:
+ build:
+ runs-on: ${{ matrix.os }}
+
+ strategy:
+ matrix:
+ os: [ubuntu-latest, windows-latest, macos-latest]
+ fail-fast: false
+
+ steps:
+ - uses: actions/checkout@v1
+ - name: Use Node.js
+ uses: actions/setup-node@v1
+ - name: Setup xvfb
+ run: |
+ Xvfb :99 -screen 0 1024x768x24 &
+ echo "::set-env name=DISPLAY:::99.0"
+ if: runner.os == 'Linux'
+ - name: Install gulp
+ run: npm install --global gulp
+ if: runner.os == 'macOS'
+ - name: Install chrome
+ run: |
+ brew update
+ brew cask install google-chrome
+ if: runner.os == 'macOS'
+ - name: Select browsers
+ run: |
+ if [ "${{ runner.os }}" == "macOS" ]; then
+ echo "::set-env name=BROWSERS::--browsers chrome"
+ fi
+ shell: bash
+ - name: Build and Test
+ run: |
+ npm install
+ gulp build
+ gulp test --coverage ${BROWSERS}
+ - name: Package
+ run: |
+ gulp docs
+ gulp package
+ gulp bower
+ - name: Publish Test Results
+ run: cat ./coverage/lcov.info | ./node_modules/.bin/coveralls
+ continue-on-error: true
> gulp unittest --coverage // run tests and generate coverage reports in ./coverage
> gulp lint // perform code linting (ESLint)
> gulp test // perform code linting and run unit tests
+> gulp test --browsers ... // test with specified browsers (comma-separated)
> gulp docs // build the documentation in ./dist/docs
> gulp docs --watch // starts the gitbook live reloaded server
```
args: {
coverage: !!argv.coverage,
inputs: (argv.inputs || 'test/specs/**/*.js').split(';'),
+ browsers: (argv.browsers || 'chrome,firefox').split(','),
watch: argv.watch
}
},
karma.set({
frameworks: ['jasmine'],
reporters: ['progress', 'kjhtml'],
- browsers: ['chrome', 'firefox'],
+ browsers: args.browsers,
logLevel: karma.LOG_WARN,
// Explicitly disable hardware acceleration to make image
prefs: {
'layers.acceleration.disabled': true
}
+ },
+ safari: {
+ base: 'SafariPrivate'
+ },
+ edge: {
+ base: 'Edge'
}
},
"buffer-equal": "^1.0.0"
}
},
+ "applescript": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/applescript/-/applescript-1.0.0.tgz",
+ "integrity": "sha1-u4evVoytA0pOSMS9r2Bno6JwExc=",
+ "dev": true
+ },
"archy": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
"safer-buffer": "^2.1.0"
}
},
+ "edge-launcher": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/edge-launcher/-/edge-launcher-1.2.2.tgz",
+ "integrity": "sha1-60Cq+9Bnpup27/+rBke81VCbN7I=",
+ "dev": true
+ },
"editions": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz",
"source-map": "^0.5.1"
}
},
+ "karma-edge-launcher": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/karma-edge-launcher/-/karma-edge-launcher-0.4.2.tgz",
+ "integrity": "sha512-YAJZb1fmRcxNhMIWYsjLuxwODBjh2cSHgTW/jkVmdpGguJjLbs9ZgIK/tEJsMQcBLUkO+yO4LBbqYxqgGW2HIw==",
+ "dev": true,
+ "requires": {
+ "edge-launcher": "1.2.2"
+ }
+ },
"karma-firefox-launcher": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.2.0.tgz",
}
}
},
+ "karma-safari-private-launcher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/karma-safari-private-launcher/-/karma-safari-private-launcher-1.0.0.tgz",
+ "integrity": "sha1-d/zpBIgrNBvRNBWv01KcuSJkC0M=",
+ "dev": true,
+ "requires": {
+ "applescript": "^1.0.0"
+ }
+ },
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
"karma": "^4.0.0",
"karma-chrome-launcher": "^3.0.0",
"karma-coverage": "^2.0.0",
+ "karma-edge-launcher": "^0.4.2",
"karma-firefox-launcher": "^1.0.1",
"karma-jasmine": "^2.0.1",
"karma-jasmine-html-reporter": "^1.4.0",
"karma-rollup-preprocessor": "^7.0.0",
+ "karma-safari-private-launcher": "^1.0.0",
"merge-stream": "^1.0.1",
"pixelmatch": "^5.0.0",
"rollup": "^1.0.0",