blob: f6ee1806c094231d6393a69951c778a960e466e8 (
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
|
version: 2.1
executors:
default:
docker:
- image: circleci/node:12.14.0-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: 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: /.*/
|