diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..82a033c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/node_modules + +yarn.lock \ No newline at end of file diff --git a/build_manager.sh b/build_manager.sh index 2ea900d..851ef9d 100755 --- a/build_manager.sh +++ b/build_manager.sh @@ -3,6 +3,7 @@ set -eu WORKDIR=/home/oscarzhou/source/github.com/portainer +GLOBAL_VOLUME=/home/oscarzhou/volumes TRUE=0; FALSE=1; @@ -13,18 +14,24 @@ ERROR_COLOR='\033[0;31m'; HIGHLIGHT_COLOR='\033[0;32m'; NO_COLOR='\033[0m'; -function is_ce_project() { - read -p "Choose the working project EE/(CE):" REPO +function choose_repo() { + read -p "Choose the working project EE/(CE)/(k8s)/(agent):" REPO if [ -z "$REPO" ]; then REPO="EE"; fi if [[ "${REPO}" == "ee" || "${REPO}" == "EE" ]]; then - return $FALSE; + cd ${WORKDIR}/portainer-ee 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 } @@ -49,20 +56,42 @@ function check_branch() { return $TRUE; } -function export_volume() { - local VOLUME=~/volumes/portainer-ee-data - if is_ce_project; then - VOLUME=~/volumes/portainer-ce-data - cd ${WORKDIR}/portainer +function choose_export_volume() { + read -p "Choose the volume EE/CE/Temp-data(TD):" DEST + + if [ -z "$DEST" ]; then + 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 export PORTAINER_DATA=${VOLUME} 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() { printf "${HIGHLIGHT_COLOR}Build Portainer Frontend${NO_COLOR}\n" @@ -81,7 +110,7 @@ function build_portainer_backend_without_prompt() { } function build_portainer_frontend() { - export_volume + choose_repo if ! check_branch; then exit; @@ -92,7 +121,9 @@ function build_portainer_frontend() { } function build_portainer_backend() { - export_volume + choose_repo + + choose_export_volume if ! check_branch; then exit; @@ -101,28 +132,36 @@ function build_portainer_backend() { build_portainer_backend_without_prompt } +function build_portainer_agent() { + choose_repo + + if ! check_branch; then + exit; + fi + + ./dev.sh compile +} + function build_portainer_all() { printf "${HIGHLIGHT_COLOR}Build Portainer all${NO_COLOR}\n" - export_volume + choose_repo + + choose_export_volume if ! check_branch; then exit; fi - build_portainer_frontend_without_prompt - build_portainer_backend_without_prompt + + build_portainer_frontend_without_prompt } function run_before_commit() { printf "${HIGHLIGHT_COLOR}Run before commit${NO_COLOR}\n" - if is_ce_project; then - cd ${WORKDIR}/portainer - else - cd ${WORKDIR}/portainer-ee - fi + choose_repo if ! check_branch; then 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() { PS3='Please select the option: ' OPTIONS=( - 'Build Portainer All' - 'Build Portainer Frontend' - 'Build Portainer Backend' - 'Run Before Commit' + 'Build Portainer EE/CE All' + 'Build Portainer EE/CE Frontend' + 'Build Portainer EE/CE Backend' + 'Run Before Commit [Portainer EE/CE]' + 'Run Before Commit [k8s]' + 'Build Portainer Agent' + 'Cleanup Temporary Volume' 'Quit' ) select opt in "${OPTIONS[@]}" do case $opt in - 'Build Portainer All') + 'Build Portainer EE/CE All') build_portainer_all ;; - 'Build Portainer Frontend') + 'Build Portainer EE/CE Frontend') build_portainer_frontend ;; - 'Build Portainer Backend') + 'Build Portainer EE/CE Backend') build_portainer_backend ;; - 'Run Before Commit') + 'Run Before Commit [Portainer EE/CE]') run_before_commit ;; + 'Run Before Commit [k8s]') + run_before_commit_k8s + ;; + 'Build Portainer Agent') + build_portainer_agent + ;; + 'Cleanup Temporary Volume') + cleanup_temporary_volume + ;; 'Quit') break ;;