Add k8s and agent options #1

Merged
oscar merged 5 commits from oscar-next into master 2022-05-19 10:39:02 +10:00
2 changed files with 96 additions and 29 deletions

3
.gitignore vendored 100644
View File

@ -0,0 +1,3 @@
/node_modules
yarn.lock

View File

@ -3,6 +3,7 @@
set -eu set -eu
WORKDIR=/home/oscarzhou/source/github.com/portainer WORKDIR=/home/oscarzhou/source/github.com/portainer
GLOBAL_VOLUME=/home/oscarzhou/volumes
TRUE=0; TRUE=0;
FALSE=1; FALSE=1;
@ -13,18 +14,24 @@ ERROR_COLOR='\033[0;31m';
HIGHLIGHT_COLOR='\033[0;32m'; HIGHLIGHT_COLOR='\033[0;32m';
NO_COLOR='\033[0m'; NO_COLOR='\033[0m';
function is_ce_project() { function choose_repo() {
read -p "Choose the working project EE/(CE):" REPO read -p "Choose the working project EE/(CE)/(k8s)/(agent):" REPO
if [ -z "$REPO" ]; then if [ -z "$REPO" ]; then
REPO="EE"; REPO="EE";
fi fi
if [[ "${REPO}" == "ee" || "${REPO}" == "EE" ]]; then if [[ "${REPO}" == "ee" || "${REPO}" == "EE" ]]; then
return $FALSE; cd ${WORKDIR}/portainer-ee
elif [[ "${REPO}" == "ce" || "${REPO}" == "CE" ]]; then elif [[ "${REPO}" == "ce" || "${REPO}" == "CE" ]]; then
return $TRUE; cd ${WORKDIR}/portainer
elif [[ "${REPO}" == "k8s" || "${REPO}" == "ks" ]]; then
cd ${WORKDIR}/k8s
elif [[ "${REPO}" == "ag" || "${REPO}" == "agent" ]]; then
cd ${WORKDIR}/agent
fi fi
} }
@ -49,20 +56,42 @@ function check_branch() {
return $TRUE; return $TRUE;
} }
function export_volume() { function choose_export_volume() {
local VOLUME=~/volumes/portainer-ee-data read -p "Choose the volume EE/CE/Temp-data(TD):" DEST
if is_ce_project; then
VOLUME=~/volumes/portainer-ce-data if [ -z "$DEST" ]; then
cd ${WORKDIR}/portainer DEST="EE";
fi
if [[ "${DEST}" == "ee" || "${DEST}" == "EE" ]]; then
VOLUME=~/volumes/portainer-ee-data
elif [[ "${DEST}" == "ce" || "${DEST}" == "CE" ]]; then
VOLUME=~/volumes/portainer-ce-data
elif [[ "${DEST}" == "td" || "${DEST}" == "TD" ]]; then
VOLUME=~/volumes/temp-data
else
cd ${WORKDIR}/portainer-ee
fi fi
export PORTAINER_DATA=${VOLUME} export PORTAINER_DATA=${VOLUME}
printf "${HIGHLIGHT_COLOR}export PORTAINER_DATA=${PORTAINER_DATA}${NO_COLOR}\n" printf "${HIGHLIGHT_COLOR}export PORTAINER_DATA=${PORTAINER_DATA}${NO_COLOR}\n"
} }
function cleanup_temporary_volume() {
printf "${HIGHLIGHT_COLOR}Clean temporary data${NO_COLOR}\n"
local VOLUME=~/volumes/temp-data
if [ -d ${VOLUME} ]; then
printf "The current volume is ${VOLUME}. "
read -p "Do you want to clean up the existing data N/(Y)?" CLEAN_DATA
if [[ "${CLEAN_DATA}" == "y" || "${CLEAN_DATA}" == "Y" ]]; then
rm -rvf ${VOLUME}/*
fi
else
mkdir ${VOLUME}
fi
}
function build_portainer_frontend_without_prompt() { function build_portainer_frontend_without_prompt() {
printf "${HIGHLIGHT_COLOR}Build Portainer Frontend${NO_COLOR}\n" printf "${HIGHLIGHT_COLOR}Build Portainer Frontend${NO_COLOR}\n"
@ -81,7 +110,7 @@ function build_portainer_backend_without_prompt() {
} }
function build_portainer_frontend() { function build_portainer_frontend() {
export_volume choose_repo
if ! check_branch; then if ! check_branch; then
exit; exit;
@ -92,7 +121,9 @@ function build_portainer_frontend() {
} }
function build_portainer_backend() { function build_portainer_backend() {
export_volume choose_repo
choose_export_volume
if ! check_branch; then if ! check_branch; then
exit; exit;
@ -101,28 +132,36 @@ function build_portainer_backend() {
build_portainer_backend_without_prompt build_portainer_backend_without_prompt
} }
function build_portainer_agent() {
choose_repo
if ! check_branch; then
exit;
fi
./dev.sh compile
}
function build_portainer_all() { function build_portainer_all() {
printf "${HIGHLIGHT_COLOR}Build Portainer all${NO_COLOR}\n" printf "${HIGHLIGHT_COLOR}Build Portainer all${NO_COLOR}\n"
export_volume choose_repo
choose_export_volume
if ! check_branch; then if ! check_branch; then
exit; exit;
fi fi
build_portainer_frontend_without_prompt
build_portainer_backend_without_prompt build_portainer_backend_without_prompt
build_portainer_frontend_without_prompt
} }
function run_before_commit() { function run_before_commit() {
printf "${HIGHLIGHT_COLOR}Run before commit${NO_COLOR}\n" printf "${HIGHLIGHT_COLOR}Run before commit${NO_COLOR}\n"
if is_ce_project; then choose_repo
cd ${WORKDIR}/portainer
else
cd ${WORKDIR}/portainer-ee
fi
if ! check_branch; then if ! check_branch; then
exit; exit;
@ -136,32 +175,57 @@ function run_before_commit() {
} }
function run_before_commit_k8s() {
printf "${HIGHLIGHT_COLOR}Run before commit${NO_COLOR}\n"
choose_repo
if ! check_branch; then
exit;
fi
printf "${HIGHLIGHT_COLOR}chart-testing ct lint${NO_COLOR}\n"
docker run --rm -it -w /repo -v `pwd`:/repo quay.io/helmpack/chart-testing ct lint --all --config=.ci/ct-config.yaml
}
function menu() { function menu() {
PS3='Please select the option: ' PS3='Please select the option: '
OPTIONS=( OPTIONS=(
'Build Portainer All' 'Build Portainer EE/CE All'
'Build Portainer Frontend' 'Build Portainer EE/CE Frontend'
'Build Portainer Backend' 'Build Portainer EE/CE Backend'
'Run Before Commit' 'Run Before Commit [Portainer EE/CE]'
'Run Before Commit [k8s]'
'Build Portainer Agent'
'Cleanup Temporary Volume'
'Quit' 'Quit'
) )
select opt in "${OPTIONS[@]}" select opt in "${OPTIONS[@]}"
do do
case $opt in case $opt in
'Build Portainer All') 'Build Portainer EE/CE All')
build_portainer_all build_portainer_all
;; ;;
'Build Portainer Frontend') 'Build Portainer EE/CE Frontend')
build_portainer_frontend build_portainer_frontend
;; ;;
'Build Portainer Backend') 'Build Portainer EE/CE Backend')
build_portainer_backend build_portainer_backend
;; ;;
'Run Before Commit') 'Run Before Commit [Portainer EE/CE]')
run_before_commit run_before_commit
;; ;;
'Run Before Commit [k8s]')
run_before_commit_k8s
;;
'Build Portainer Agent')
build_portainer_agent
;;
'Cleanup Temporary Volume')
cleanup_temporary_volume
;;
'Quit') 'Quit')
break break
;; ;;