-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup_ci.sh
63 lines (56 loc) · 1.76 KB
/
setup_ci.sh
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
#!/bin/bash
# define arguments
GIT_PROVIDER=""
if [ -z "$1" ]; then
echo "No argument supplied! Chose one:"
echo "GITLAB, GITHUB, AZUREDEVOPS, BITBUCKET"
exit
else
GIT_PROVIDER="$1"
fi
# get git directory
REP_ROOT=$(git rev-parse --show-toplevel)
KIT_ROOT="$( cd "$(dirname "$0")" || exit; pwd -P )"
# find out if it is submodule
REPO_DIFF="$(diff -q "$REP_ROOT" "$KIT_ROOT/..")"
if [[ -z "$REPO_DIFF" ]]; then
IS_SUBMODULE="Y"
else
IS_SUBMODULE="N"
fi
# copy readmes
cp -i "$KIT_ROOT"/readmes/*.md "$REP_ROOT/."
# copy pipeline files
PIPELINE_CFG_DIR="pipe_cfg/"
if [[ "$GIT_PROVIDER" == "GITLAB" ]]; then
source_yml_file="$PIPELINE_CFG_DIR/gitlab.yml"
target_yml_file=".gitlab-ci.yml"
cp -i "$KIT_ROOT/$source_yml_file" "$REP_ROOT/$target_yml_file"
elif [[ "$GIT_PROVIDER" == "GITHUB" ]]; then
source_yml_file="$PIPELINE_CFG_DIR/github.yml"
target_yml_file=".travis.yml"
cp -i "$KIT_ROOT/$source_yml_file" "$REP_ROOT/$target_yml_file"
elif [[ "$GIT_PROVIDER" == "BITBUCKET" ]]; then
source_yml_file="$PIPELINE_CFG_DIR/bitbucket.yml"
target_yml_file="bitbucket-pipelines.yml"
cp -i "$KIT_ROOT/$source_yml_file" "$REP_ROOT/$target_yml_file"
elif [[ "$GIT_PROVIDER" == "AZUREDEVOPS" ]]; then
source_yml_file="$PIPELINE_CFG_DIR/azure.yml"
target_yml_file="azure-pipelines.yml"
cp -i "$KIT_ROOT/$source_yml_file" "$REP_ROOT/$target_yml_file"
else
echo "Not implemented, yet! Please contribute!"
fi
# fix path placeholders in yml file
if [[ "$IS_SUBMODULE" == "Y" ]]; then
SCRIPT_PATH="./ci_kit/"
else
SCRIPT_PATH="."
fi
sed -i "s#CI_KIT_PATH#$SCRIPT_PATH#g" "$target_yml_file"
# copy scipts
if [[ "$IS_SUBMODULE" == "N" ]]; then
# copy script files
cp -r "$KIT_ROOT/githooks" "$REP_ROOT/.githooks"
cp -r "$KIT_ROOT/git-ci.d" "$REP_ROOT/.git-ci.d"
fi