Skip to content

Commit a3ffe95

Browse files
committed
ci: add scripts
1 parent 058356f commit a3ffe95

File tree

11 files changed

+319
-62
lines changed

11 files changed

+319
-62
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040

4141
- run:
4242
name: Test Packages
43-
command: chmod +x ./.circleci/entry_point.sh && ./.circleci/entry_point.sh
43+
command: BRANCH=$CIRCLE_BRANCH bash ./.circleci/entry_point.sh
4444

4545
- save_cache:
4646
paths:

.circleci/entry_point.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ COMMANDS_TO_RUN=()
66

77
COMMANDS_TO_RUN+=('node -v')
88
COMMANDS_TO_RUN+=('npm -v')
9-
COMMANDS_TO_RUN+=('echo CIRCLE_BRANCH = $CIRCLE_BRANCH')
10-
COMMANDS_TO_RUN+=('npm run lint')
9+
COMMANDS_TO_RUN+=('echo BRANCH = $BRANCH')
1110

1211
RETURN_CODES=()
1312
FAILURE=0
@@ -22,7 +21,7 @@ if [ -n "${COMMANDS_TO_RUN[0]}" ]; then
2221
echo
2322
echo "$ $cmd"
2423
set +e
25-
$cmd
24+
eval $cmd
2625
rc=$?
2726
set -e
2827
RETURN_CODES+=($rc)

.travis.yml

Lines changed: 25 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,44 @@
11
sudo: required
22
language: node_js
33
node_js:
4-
- stable
4+
- stable
55
addons:
6-
chrome: stable
6+
chrome: stable
77
cache:
8-
directories:
9-
- node_modules
8+
directories:
9+
- node_modules
1010
branches:
11-
only:
12-
- src
11+
only:
12+
- src
1313

14-
# Preparate to install
1514
before_install:
16-
- sudo chown root /opt/google/chrome/chrome-sandbox
17-
- sudo chmod 4755 /opt/google/chrome/chrome-sandbox
18-
- export CHROME_BIN=chromium-browser
19-
- export DISPLAY=:99.0
20-
- sh -e /etc/init.d/xvfb start
21-
- echo TRAVIS_BRANCH = $TRAVIS_BRANCH
15+
- bash scripts/ci/1_before_install.sh
2216

23-
# Install dependencies
2417
install:
25-
- yarn install
26-
- yarn add coveralls
18+
- bash scripts/ci/2_install.sh
2719

28-
# Lint the code
29-
# Build a source code
3020
before_script:
31-
- yarn run lint
32-
- yarn run build
21+
- bash scripts/ci/3_before_script.sh
3322

3423
script:
35-
# Run tests
36-
- yarn run travis:e2e
37-
- yarn run travis:test
38-
39-
# Generate coverage info and deploy it to coveralls.io
40-
- cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
41-
42-
# Copy ci files for prevent errors when deploying
43-
- cp .travis.yml ./dist
44-
- cp -r .circleci ./dist
24+
- bash scripts/ci/4_script.sh
4525

4626
deploy:
47-
- on:
48-
branch: "src"
49-
provider: script
50-
skip_cleanup: true
51-
script:
52-
# Deploy semantic-release
53-
- npx semantic-release
54-
55-
# Sync github repo with gitlab
56-
- git remote add gitlab https://gitlab-ci-token:$GITLAB_TOKEN@gitlab.com/mpgp/mpgp.github.io.git
57-
- git push gitlab src
58-
59-
# Build docker image and push it to hub
60-
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
61-
- docker build --rm --no-cache -t mpgp129/mpgpspec -f ./docker/Dockerfile .
62-
- docker push mpgp129/mpgpspec
27+
- on:
28+
branch: "src"
29+
provider: script
30+
skip_cleanup: true
31+
script:
32+
- BRANCH=$TRAVIS_BRANCH DOCKER_USERNAME=$DOCKER_USERNAME DOCKER_PASSWORD=$DOCKER_PASSWORD GITLAB_TOKEN=$GITLAB_TOKEN bash scripts/ci/5_deploy.sh
6333

6434
# Deploy dist folder to master(gh-pages) branch
6535
# https://github.com/settings/tokens
66-
- on:
67-
branch: "src"
68-
provider: pages:
69-
skip_cleanup: true
70-
github_token: $GITHUB_TOKEN
71-
local_dir: dist
72-
target-branch: master
73-
email: torvalds@linux-foundation.org
74-
name: Linus Torvalds
36+
- on:
37+
branch: "src"
38+
provider: pages
39+
skip_cleanup: true
40+
github_token: $GITHUB_TOKEN
41+
local_dir: dist
42+
target-branch: master
43+
email: torvalds@linux-foundation.org
44+
name: Linus Torvalds

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,11 @@
8585
"precommit": "lint-staged",
8686
"start": "ng serve",
8787
"static": "static ./dist",
88-
"test": "CHROME_BIN=chromium ng test",
88+
"test": "echo Please use yarn run test:unit",
89+
"test:unit": "CHROME_BIN=chromium ng test",
8990
"test:e2e": "CHROME_BIN=chromium ng e2e",
90-
"travis:test": "CHROME_BIN=chromium-browser DISPLAY=:99.0 ng test --watch=false --code-coverage",
91-
"travis:e2e": "CHROME_BIN=chromium-browser DISPLAY=:99.0 ng e2e"
91+
"ci:test": "CHROME_BIN=chromium-browser DISPLAY=:99.0 ng test --watch=false --code-coverage",
92+
"ci:e2e": "CHROME_BIN=chromium-browser DISPLAY=:99.0 ng e2e"
9293
},
9394
"dependencies": {
9495
"@angular/animations": "6.0.4",

scripts/ci/1_before_install.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
COMMANDS_TO_RUN=()
6+
7+
COMMANDS_TO_RUN+=('sudo chown root /opt/google/chrome/chrome-sandbox')
8+
COMMANDS_TO_RUN+=('sudo chmod 4755 /opt/google/chrome/chrome-sandbox')
9+
COMMANDS_TO_RUN+=('export CHROME_BIN=chromium-browser')
10+
COMMANDS_TO_RUN+=('export DISPLAY=:99.0')
11+
COMMANDS_TO_RUN+=('sh -e /etc/init.d/xvfb start')
12+
13+
RETURN_CODES=()
14+
FAILURE=0
15+
16+
if [ -n "${COMMANDS_TO_RUN[0]}" ]; then
17+
echo "Preparing to run commands:"
18+
for cmd in "${COMMANDS_TO_RUN[@]}"; do
19+
echo "- $cmd"
20+
done
21+
22+
for cmd in "${COMMANDS_TO_RUN[@]}"; do
23+
echo
24+
echo "$ $cmd"
25+
set +e
26+
eval $cmd
27+
rc=$?
28+
set -e
29+
RETURN_CODES+=($rc)
30+
if [ $rc -ne 0 ]; then
31+
FAILURE=$rc
32+
fi
33+
done
34+
35+
echo
36+
for i in "${!COMMANDS_TO_RUN[@]}"; do
37+
echo "Received return code ${RETURN_CODES[i]} from: ${COMMANDS_TO_RUN[i]}"
38+
done
39+
exit $FAILURE
40+
else
41+
echo "No commands to run."
42+
fi

scripts/ci/2_install.sh

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
COMMANDS_TO_RUN=()
6+
7+
COMMANDS_TO_RUN+=('yarn install')
8+
COMMANDS_TO_RUN+=('yarn add coveralls')
9+
10+
RETURN_CODES=()
11+
FAILURE=0
12+
13+
if [ -n "${COMMANDS_TO_RUN[0]}" ]; then
14+
echo "Preparing to run commands:"
15+
for cmd in "${COMMANDS_TO_RUN[@]}"; do
16+
echo "- $cmd"
17+
done
18+
19+
for cmd in "${COMMANDS_TO_RUN[@]}"; do
20+
echo
21+
echo "$ $cmd"
22+
set +e
23+
eval $cmd
24+
rc=$?
25+
set -e
26+
RETURN_CODES+=($rc)
27+
if [ $rc -ne 0 ]; then
28+
FAILURE=$rc
29+
fi
30+
done
31+
32+
echo
33+
for i in "${!COMMANDS_TO_RUN[@]}"; do
34+
echo "Received return code ${RETURN_CODES[i]} from: ${COMMANDS_TO_RUN[i]}"
35+
done
36+
exit $FAILURE
37+
else
38+
echo "No commands to run."
39+
fi

scripts/ci/3_before_script.sh

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
COMMANDS_TO_RUN=()
6+
7+
COMMANDS_TO_RUN+=('yarn run lint')
8+
COMMANDS_TO_RUN+=('yarn run build')
9+
10+
RETURN_CODES=()
11+
FAILURE=0
12+
13+
if [ -n "${COMMANDS_TO_RUN[0]}" ]; then
14+
echo "Preparing to run commands:"
15+
for cmd in "${COMMANDS_TO_RUN[@]}"; do
16+
echo "- $cmd"
17+
done
18+
19+
for cmd in "${COMMANDS_TO_RUN[@]}"; do
20+
echo
21+
echo "$ $cmd"
22+
set +e
23+
eval $cmd
24+
rc=$?
25+
set -e
26+
RETURN_CODES+=($rc)
27+
if [ $rc -ne 0 ]; then
28+
FAILURE=$rc
29+
fi
30+
done
31+
32+
echo
33+
for i in "${!COMMANDS_TO_RUN[@]}"; do
34+
echo "Received return code ${RETURN_CODES[i]} from: ${COMMANDS_TO_RUN[i]}"
35+
done
36+
exit $FAILURE
37+
else
38+
echo "No commands to run."
39+
fi

scripts/ci/4_script.sh

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
COMMANDS_TO_RUN=()
6+
7+
COMMANDS_TO_RUN+=('echo run tests')
8+
COMMANDS_TO_RUN+=('yarn run ci:e2e')
9+
COMMANDS_TO_RUN+=('yarn run ci:test')
10+
11+
COMMANDS_TO_RUN+=('echo Generate coverage info and deploy it to coveralls.io')
12+
COMMANDS_TO_RUN+=('cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js')
13+
14+
COMMANDS_TO_RUN+=('echo Copy ci files for prevent errors when deploying')
15+
COMMANDS_TO_RUN+=('cp .travis.yml ./dist')
16+
COMMANDS_TO_RUN+=('cp -r .circleci ./dist')
17+
18+
RETURN_CODES=()
19+
FAILURE=0
20+
21+
if [ -n "${COMMANDS_TO_RUN[0]}" ]; then
22+
echo "Preparing to run commands:"
23+
for cmd in "${COMMANDS_TO_RUN[@]}"; do
24+
echo "- $cmd"
25+
done
26+
27+
for cmd in "${COMMANDS_TO_RUN[@]}"; do
28+
echo
29+
echo "$ $cmd"
30+
set +e
31+
eval $cmd
32+
rc=$?
33+
set -e
34+
RETURN_CODES+=($rc)
35+
if [ $rc -ne 0 ]; then
36+
FAILURE=$rc
37+
fi
38+
done
39+
40+
echo
41+
for i in "${!COMMANDS_TO_RUN[@]}"; do
42+
echo "Received return code ${RETURN_CODES[i]} from: ${COMMANDS_TO_RUN[i]}"
43+
done
44+
exit $FAILURE
45+
else
46+
echo "No commands to run."
47+
fi

scripts/ci/5_deploy.sh

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
COMMANDS_TO_RUN=()
6+
7+
COMMANDS_TO_RUN+=('npx semantic-release --branch $BRANCH')
8+
COMMANDS_TO_RUN+=('bash scripts/gitlab_sync.sh')
9+
COMMANDS_TO_RUN+=('bash scripts/docker_hub.sh')
10+
11+
RETURN_CODES=()
12+
FAILURE=0
13+
14+
if [ -n "${COMMANDS_TO_RUN[0]}" ]; then
15+
echo "Preparing to run commands:"
16+
for cmd in "${COMMANDS_TO_RUN[@]}"; do
17+
echo "- $cmd"
18+
done
19+
20+
for cmd in "${COMMANDS_TO_RUN[@]}"; do
21+
echo
22+
echo "$ $cmd"
23+
set +e
24+
eval $cmd
25+
rc=$?
26+
set -e
27+
RETURN_CODES+=($rc)
28+
if [ $rc -ne 0 ]; then
29+
FAILURE=$rc
30+
fi
31+
done
32+
33+
echo
34+
for i in "${!COMMANDS_TO_RUN[@]}"; do
35+
echo "Received return code ${RETURN_CODES[i]} from: ${COMMANDS_TO_RUN[i]}"
36+
done
37+
exit $FAILURE
38+
else
39+
echo "No commands to run."
40+
fi

0 commit comments

Comments
 (0)