1 | version: 2
|
2 | jobs:
|
3 | build:
|
4 | machine: true
|
5 | working_directory: ~/build-tools
|
6 | steps:
|
7 | - checkout
|
8 | - restore_cache:
|
9 | key: dependency-cache-{{ checksum "package.json" }}
|
10 | - restore_cache:
|
11 | key: yarn-cache-{{ checksum "package.json" }}
|
12 | - restore_cache:
|
13 | key: dont-break-cache
|
14 | - run:
|
15 | name: Install node@8.10.0
|
16 | command: |
|
17 | set +e
|
18 | curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash
|
19 | export NVM_DIR="/opt/circleci/.nvm"
|
20 | [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
21 | nvm install v8.10.0
|
22 | nvm alias default v8.10.0
|
23 |
|
24 | # Each step uses the same `$BASH_ENV`, so need to modify it
|
25 | echo 'export NVM_DIR="/opt/circleci/.nvm"' >> $BASH_ENV
|
26 | echo "[ -s \"$NVM_DIR/nvm.sh\" ] && . \"$NVM_DIR/nvm.sh\"" >> $BASH_ENV
|
27 | - run:
|
28 | name: pre-deps
|
29 | command: |
|
30 | npm install -g yarn@1.5.1
|
31 | sudo chmod -R a+w /usr/local
|
32 | yarn config set cache-folder ~/.cache/yarn
|
33 | if [ "${NPM_TOKEN}" == "" ]; then rm .npmrc; fi
|
34 | - run:
|
35 | name: install-deps
|
36 | command: |
|
37 | npm run setup
|
38 | if [ "${NPM_TOKEN}" != "" ]; then
|
39 | ./scripts/install-dont-break.sh
|
40 | npm install -g .
|
41 | cp -f .npmrc ~
|
42 | yarn global add "@egis/egis-ui-test-utils@^2.28.1-pre.1"
|
43 | update-chrome
|
44 | fi
|
45 | - save_cache:
|
46 | key: dependency-cache-{{ checksum "package.json" }}
|
47 | paths:
|
48 | - node_modules
|
49 | - yarn.lock
|
50 | - run:
|
51 | name: post-deps
|
52 | command: |
|
53 | mkdir ci-artifacts
|
54 | grep "version\"\:" node_modules/*/*/package.json > ci-artifacts/npm_versions.txt
|
55 | grep "version\"\:" node_modules/*/package.json >> ci-artifacts/npm_versions.txt
|
56 | grep "version\"\:" node_modules/*/*/*/package.json >> ci-artifacts/npm_versions.txt
|
57 | cp yarn.lock ci-artifacts/
|
58 | when: always
|
59 | - store_artifacts:
|
60 | path: ci-artifacts/
|
61 | - run:
|
62 | name: test
|
63 | environment:
|
64 | KEEP_MODIFIED_PACKAGE: true
|
65 | command: |
|
66 | npm test
|
67 | merge-build-tools-deps && git checkout -- package.json
|
68 | if [ "${NPM_TOKEN}" != "" ]; then
|
69 | dont-break --timeout 600
|
70 | fi
|
71 | - save_cache:
|
72 | key: yarn-cache-{{ checksum "package.json" }}
|
73 | paths:
|
74 | - ~/.cache/yarn
|
75 | - save_cache:
|
76 | key: dont-break-cache
|
77 | paths:
|
78 | - /tmp/egis-build-tools-v-0-0-0-semantic-release-against-egis-egis-ui
|
79 | - /tmp/egis-build-tools-v-0-0-0-semantic-release-against-egis-esign
|
80 | - /tmp/egis-build-tools-v-0-0-0-semantic-release-against-egis-portal-app
|
81 | - /tmp/egis-build-tools-v-0-0-0-semantic-release-against-egis-bulk-capture
|
82 | - run:
|
83 | name: deploy
|
84 | command: ./scripts/semantic-release.sh
|