blob: fec66bda1b3a11a2f725f621289ea3d770b41b32 (
plain) (
blame)
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
121
122
123
124
125
126
127
128
129
130
131
|
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: /.*/
|