A fork of https://github.com/ueokande/vim-vixen
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
3.4 KiB
131 lines
3.4 KiB
version: 2.1 |
|
|
|
executors: |
|
default: |
|
docker: |
|
- image: circleci/node:10-stretch-browsers |
|
environment: |
|
- FIREFOX_VERSION: "68.0esr" |
|
- GECKODRIVER_VERSION: "0.24.0" |
|
working_directory: ~ |
|
|
|
commands: |
|
install_firefox: |
|
steps: |
|
- restore_cache: |
|
key: firefox-bin |
|
paths: |
|
- ~/firefox |
|
- run: |
|
name: Install Firefox |
|
command: | |
|
test -d ~/firefox/${FIREFOX_VERSION} && exit 0 |
|
url=https://ftp.mozilla.org/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.bz2 |
|
curl -sSL -o- "$url" | tar xvfj - |
|
mkdir -p ~/firefox |
|
mv firefox ~/firefox/${FIREFOX_VERSION} |
|
- save_cache: |
|
key: firefox-bin |
|
paths: |
|
- ~/firefox |
|
- run: echo 'export PATH=~/firefox/$FIREFOX_VERSION:$PATH' >> $BASH_ENV |
|
|
|
install_geckodriver: |
|
steps: |
|
- run: |
|
name: Install geckodriver |
|
command: | |
|
mkdir -p geckodriver |
|
|
|
url=https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz |
|
curl -sSLf "$url" | tar -C geckodriver xvf - |
|
|
|
echo 'export PATH=~/geckodriver/$GECKODRIVER_VERSION:$PATH' >> $BASH_ENV |
|
|
|
setup_npm: |
|
steps: |
|
- restore_cache: |
|
key: dependency-cache-{{ checksum "package-lock.json" }} |
|
- run: |
|
name: Install dependencies |
|
command: npm install |
|
- save_cache: |
|
key: dependency-cache-{{ checksum "package-lock.json" }} |
|
paths: |
|
- node_modules |
|
|
|
jobs: |
|
build: |
|
executor: |
|
name: default |
|
steps: |
|
- install_firefox |
|
- checkout |
|
- setup_npm |
|
- run: npm run lint |
|
- run: |
|
# NOTE: Karma loads ts-node automatically and treats karma.conf.js as a TypeScript. |
|
# Karma does not starts by karma.conf.js transpile failure, and this hack removes |
|
# ts-node module from the local before test. |
|
# See: https://github.com/karma-runner/karma/issues/3329 |
|
name: Remove node-ts from node_modules |
|
command: mv node_modules/ts-node node_modules/ts-node.orig |
|
- run: npm test |
|
- run: npm run package |
|
|
|
e2e: |
|
executor: |
|
name: default |
|
steps: |
|
- run: sudo apt-get update && sudo apt-get -y install xsel |
|
- install_firefox |
|
- checkout |
|
- setup_npm |
|
- run: npm run build |
|
- run: npm run test:e2e |
|
|
|
deploy: |
|
executor: |
|
name: default |
|
steps: |
|
- checkout |
|
- setup_npm |
|
- run: npm run package |
|
- run: |
|
name: Deploy to AMO |
|
command: | |
|
version=$(jq -r '.version' manifest.json) |
|
./script/deploy vim-vixen@i-beam.org "$version" "vim-vixen-${version}.zip" |
|
|
|
workflows: |
|
version: 2 |
|
build_and_test: |
|
jobs: |
|
- build |
|
- e2e: |
|
filters: |
|
branches: |
|
ignore: /^greenkeeper\/.*/ |
|
deploy: |
|
jobs: |
|
- build: |
|
filters: |
|
tags: |
|
only: /^.*/ |
|
branches: |
|
ignore: /.*/ |
|
- e2e: |
|
filters: |
|
tags: |
|
only: /^.*/ |
|
branches: |
|
ignore: /.*/ |
|
- deploy: |
|
requires: |
|
- build |
|
- e2e |
|
filters: |
|
tags: |
|
only: /^.*/ |
|
branches: |
|
ignore: /.*/
|
|
|