Skip to content

Commit 42310be

Browse files
committed
ci: refactor scripts
remove duplicated logic and move it to 'runner.sh'
1 parent d305918 commit 42310be

File tree

11 files changed

+68
-278
lines changed

11 files changed

+68
-278
lines changed

.circleci/config.yml

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

3737
- run:
3838
name: Install Packages
39-
command: npm install --frozen-lockfile
39+
command: yarn install --frozen-lockfile
4040

4141
- run:
4242
name: Test Packages

.travis.yml

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,41 @@ node_js:
55
addons:
66
chrome: stable
77
cache:
8+
yarn: true
89
directories:
910
- node_modules
1011
branches:
1112
only:
1213
- src
1314
- /^greenkeeper/.*$/
1415

16+
env:
17+
global:
18+
- BRANCH=$TRAVIS_BRANCH
19+
- GITLAB_REPO_OWNER=mpgp
20+
- GITLAB_REPO_NAME=mpgp.github.io
21+
- DOCKER_IMAGE_OWNER=mpgp129
22+
- DOCKER_IMAGE_NAME=mpgpspec
23+
1524
before_install:
16-
- bash scripts/ci/1_before_install.sh
25+
- bash scripts/bash_runner.sh scripts/ci/1_before_install.sh
1726

1827
install:
19-
- bash scripts/ci/2_install.sh
28+
- bash scripts/bash_runner.sh scripts/ci/2_install.sh
2029

2130
before_script:
22-
- bash scripts/ci/3_before_script.sh
31+
- bash scripts/bash_runner.sh scripts/ci/3_before_script.sh
2332

2433
script:
25-
- bash scripts/ci/4_script.sh
34+
- bash scripts/bash_runner.sh scripts/ci/4_script.sh
2635

2736
deploy:
2837
- on:
2938
branch: "src"
3039
provider: script
3140
skip_cleanup: true
3241
script:
33-
- BRANCH=$TRAVIS_BRANCH DOCKER_USERNAME=$DOCKER_USERNAME DOCKER_PASSWORD=$DOCKER_PASSWORD GITLAB_TOKEN=$GITLAB_TOKEN bash scripts/ci/5_deploy.sh
42+
- bash scripts/bash_runner.sh scripts/ci/5_deploy.sh
3443

3544
# Deploy dist folder to master(gh-pages) branch
3645
# https://github.com/settings/tokens

.vscode/settings.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@
2626
"[todo]": {
2727
"editor.tabSize": 4,
2828
},
29-
"[yaml]": {
30-
"editor.tabSize": 4,
31-
},
3229
"todo.file": ".ToDo",
3330
"todo.indentation": " ",
3431
"todo.tags.names": ["critical", "high", "low", "today", "feature", "bug", "chore", "refactoring"],

scripts/bash_runner.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/usr/bin/env bash
2+
3+
# Header
4+
set -e
5+
set -u
6+
7+
COMMANDS_TO_RUN=()
8+
# End header
9+
# Body
10+
source $1
11+
# End body
12+
# Footer
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
43+
# End footer

scripts/ci/1_before_install.sh

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

scripts/ci/2_install.sh

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,2 @@
1-
#!/usr/bin/env bash
2-
3-
set -e
4-
5-
COMMANDS_TO_RUN=()
6-
71
COMMANDS_TO_RUN+=('echo 2_install.sh ...')
8-
COMMANDS_TO_RUN+=('yarn install')
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
2+
COMMANDS_TO_RUN+=('yarn install')

scripts/ci/3_before_script.sh

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

scripts/ci/4_script.sh

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
#!/usr/bin/env bash
2-
3-
set -e
4-
5-
COMMANDS_TO_RUN=()
6-
71
COMMANDS_TO_RUN+=('echo 4_script.sh ...')
82
COMMANDS_TO_RUN+=('echo run tests')
93
COMMANDS_TO_RUN+=('yarn run ci:e2e')
@@ -14,35 +8,4 @@ COMMANDS_TO_RUN+=('cat ./coverage/lcov.info | ./node_modules/coveralls/bin/cover
148

159
COMMANDS_TO_RUN+=('echo Copy ci files for prevent errors when deploying')
1610
COMMANDS_TO_RUN+=('cp .travis.yml ./dist')
17-
COMMANDS_TO_RUN+=('cp -r .circleci ./dist')
18-
19-
RETURN_CODES=()
20-
FAILURE=0
21-
22-
if [ -n "${COMMANDS_TO_RUN[0]}" ]; then
23-
echo "Preparing to run commands:"
24-
for cmd in "${COMMANDS_TO_RUN[@]}"; do
25-
echo "- $cmd"
26-
done
27-
28-
for cmd in "${COMMANDS_TO_RUN[@]}"; do
29-
echo
30-
echo "$ $cmd"
31-
set +e
32-
eval $cmd
33-
rc=$?
34-
set -e
35-
RETURN_CODES+=($rc)
36-
if [ $rc -ne 0 ]; then
37-
FAILURE=$rc
38-
fi
39-
done
40-
41-
echo
42-
for i in "${!COMMANDS_TO_RUN[@]}"; do
43-
echo "Received return code ${RETURN_CODES[i]} from: ${COMMANDS_TO_RUN[i]}"
44-
done
45-
exit $FAILURE
46-
else
47-
echo "No commands to run."
48-
fi
11+
COMMANDS_TO_RUN+=('cp -r .circleci ./dist')

scripts/ci/5_deploy.sh

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

scripts/docker_hub.sh

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,4 @@
1-
#!/usr/bin/env bash
2-
3-
set -e
4-
5-
COMMANDS_TO_RUN=()
6-
71
COMMANDS_TO_RUN+=('echo Build image and push to hub.docker.com')
82
COMMANDS_TO_RUN+=('echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin')
9-
COMMANDS_TO_RUN+=('docker build --rm --no-cache -t mpgp129/mpgpspec -f ./docker/Dockerfile .')
10-
COMMANDS_TO_RUN+=('docker push mpgp129/mpgpspec')
11-
12-
RETURN_CODES=()
13-
FAILURE=0
14-
15-
if [ -n "${COMMANDS_TO_RUN[0]}" ]; then
16-
echo "Preparing to run commands:"
17-
for cmd in "${COMMANDS_TO_RUN[@]}"; do
18-
echo "- $cmd"
19-
done
20-
21-
for cmd in "${COMMANDS_TO_RUN[@]}"; do
22-
echo
23-
echo "$ $cmd"
24-
set +e
25-
eval $cmd
26-
rc=$?
27-
set -e
28-
RETURN_CODES+=($rc)
29-
if [ $rc -ne 0 ]; then
30-
FAILURE=$rc
31-
fi
32-
done
33-
34-
echo
35-
for i in "${!COMMANDS_TO_RUN[@]}"; do
36-
echo "Received return code ${RETURN_CODES[i]} from: ${COMMANDS_TO_RUN[i]}"
37-
done
38-
exit $FAILURE
39-
else
40-
echo "No commands to run."
41-
fi
3+
COMMANDS_TO_RUN+=('docker build --rm --no-cache -t $DOCKER_IMAGE_OWNER/$DOCKER_IMAGE_NAME -f ./docker/Dockerfile .')
4+
COMMANDS_TO_RUN+=('docker push $DOCKER_IMAGE_OWNER/$DOCKER_IMAGE_NAME')

0 commit comments

Comments
 (0)