forked from valor-software/ngx-bootstrap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
183 lines (170 loc) · 5.65 KB
/
.travis.yml
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
sudo: false
language: node_js
node_js: "10"
notifications:
email: false
git:
depth: 3
submodules: false
env:
global:
- MOZ_HEADLESS=1
- SAUCE_USERNAME_PR=valorkinpr
- SAUCE_ACCESS_KEY_PR=e0a97bd3-4b74-4408-89bf-cce1b44a8bf1
- BROWSER_PROVIDER_READY_FILE=/tmp/sauce-connect-ready
- LOGS_DIR=/tmp/logs
- CY_KEY=4aa7a1c0-3a4f-444e-b324-6fc305a543a8
stages:
- name: Testing
if: ( branch = development AND type = push ) OR type = pull_request OR tag =~ ^v\d+
- name: deploy
if: branch = development AND type = push OR tag =~ ^v\d+
- name: publish
if: tag =~ ^v\d+
- name: "post deploy testing"
if: branch = development AND type = push OR tag =~ ^v\d+
before_install:
- sh -e /etc/init.d/xvfb start
- rm -rf node_modules/ngx-bootstrap
install:
- npm ci
- npm run build
- if [[ "$NGV" == "latest" ]]; then ./scripts/ci/npm-ng-latest.sh; fi
# - if [[ "$NGV" == "next" ]]; then ./scripts/ci/npm-ng-next.sh; fi
- npm i ./dist > /dev/null
- if [[ "$TRAVIS_PULL_REQUEST" != false ]]; then export SAUCE_USERNAME=$SAUCE_USERNAME_PR; export SAUCE_ACCESS_KEY=$SAUCE_ACCESS_KEY_PR; fi
jobs:
fast_finish: true
allow_failures:
- env: NGV=next
- name: sauce-tests
include:
# precache npm and apt dependencies
# - stage: precache
# install: npm ci
# script: true
# addons:
# chrome: stable
# apt:
# sources:
# - ubuntu-toolchain-r-test
# # required by node-gyp to build some packages
# packages:
# - g++-4.8
# run in parallel
- stage: Testing
# lint code
script: npm run lint-src
name: "Lint"
install: true
# test
- script: npm run test-coverage
name: "Test with current Angular version"
after_success: ./node_modules/.bin/codecov
- script: npm run test
name: "Test with latest Angular version"
env: NGV=latest
# env: NGV=next
# test cypress smoke
- script:
- ng serve --prod &
- $(npm bin)/wait-on http-get://$URL
- npm run cy:run:smoke
# after all tests finish running we need
# to kill all background jobs (like "npm start &")
- kill $(jobs -p) || true
name: "Run cypress smoke testing"
env: URL=localhost:4200/#
# check prod build
- script: npm run demo.ng-build
name: "Check prod build with current Angular version"
- script: npm run demo.ng-build
name: "Check prod build with latest Angular version"
env: NGV=latest
# env: NGV=next
- script: npm run test-cross
name: sauce-tests
env: SAUCE=true
addons:
sauce_connect:
username: $SAUCE_USERNAME_PR
access_key: $SAUCE_ACCESS_KEY_PR
before_script:
- mkdir -p $LOGS_DIR
# deploy to ngx-bootstrap.surge.sh
- &surge
stage: deploy
script: npm run demo.build
deploy:
provider: surge
project: ./gh-pages/
domain: ngx-bootstrap.surge.sh
on: development
- <<: *surge
env: NGV=latest
deploy:
provider: surge
project: ./gh-pages/
domain: ngx-bootstrap-latest.surge.sh
on: development
# deploy to ngx-universal.herokuapp.com/
- stage: deploy
script: npm run build:dynamic
before_deploy:
- cd ./demo/dist
deploy:
provider: heroku
api_key: $HEROKU_API_KEY
skip_cleanup: true
app: ngx-universal
on: development
# publish to gh pages and npm
- stage: publish
script: npm run demo.build
after_deploy: npm run flow.github-release
deploy:
provider: pages
local_dir: gh-pages
skip_cleanup: true
github_token: $GITHUB_TOKEN
app: ngx-universal
on:
tags: true
- stage: publish
script: npm run build
before_deploy: "cd dist"
deploy:
provider: npm
email: "valorkin@gmail.com"
api_key: $NPM_AUTH_TOKEN
tag: next
skip_cleanup: true
on:
tags: true
# test cypress full for herokuapp
- stage: "post deploy testing"
name: "Run cypress to check SSR"
# env: URL=https://ngx-universal.herokuapp.com/#
- script: ./node_modules/.bin/cypress run --config integrationFolder=cypress/integration,baseUrl=https://ngx-universal.herokuapp.com/#/ --record --key $CY_KEY
name: "Cypress integration suit run on SSR "
- script: ./node_modules/.bin/cypress run --config integrationFolder=cypress/full,baseUrl=https://ngx-universal.herokuapp.com/#/ --record --key $CY_KEY
name: "Cypress full suit run on SSR "
# test cypress full for gh-pages
- script: ./node_modules/.bin/cypress run --config integrationFolder=cypress/integration,baseUrl=http://ngx-bootstrap-latest.surge.sh/#/ --record --key $CY_KEY
name: "Cypres integration run with @latest angular"
- script: ./node_modules/.bin/cypress run --config integrationFolder=cypress/full,baseUrl=http://ngx-bootstrap-latest.surge.sh/#/ --record --key $CY_KEY
name: "Cypres full run with @latest angular"
# env: URL=https://valor-software.com/ngx-bootstrap/#/
- script: ./node_modules/.bin/cypress run --config integrationFolder=cypress/integration,baseUrl=https://valor-software.com/ngx-bootstrap/#/ --record --key $CY_KEY
name: "Cypress integration on gh-pages after deploy"
if: tag =~ ^v\d+
- script: ./node_modules/.bin/cypress run --config integrationFolder=cypress/full,baseUrl=https://valor-software.com/ngx-bootstrap/#/ --record --key $CY_KEY
name: "Cypress full on gh-pages after deploy"
if: tag =~ ^v\d+
cache:
apt: true
npm: true
directories:
- node_modules
- ~/.npm
- ~/.cache