#!/bin/bash # Script to build crons module # flags to accept: # envarg: build for enterprise edition. # Default will be OSS build. # Usage: IMAGE_TAG=latest DOCKER_REPO=myDockerHubID bash build.sh function make_submodule() { # -- this part was generated by modules_lister.py -- mkdir crons cp -R ./{app_crons,schemas,schemas_ee}.py ./crons/ mkdir -p ./crons/routers/crons/ cp -R ./routers/crons/{__init__,core_dynamic_crons}.py ./crons/routers/crons/ mkdir -p ./crons/chalicelib/ cp -R ./chalicelib/__init__.py ./crons/chalicelib/ mkdir -p ./crons/chalicelib/core/ cp -R ./chalicelib/core/{__init__,telemetry,license,unlock,weekly_report,jobs,sessions,events,issues,sessions_metas,metadata,projects,users,authorizers,tenants,roles,assist,events_ios,sessions_mobs,errors,metrics,sourcemaps,sourcemaps_parser,resources,performance_event}.py ./crons/chalicelib/core/ mkdir -p ./crons/chalicelib/utils/ cp -R ./chalicelib/utils/{__init__,TimeUTC,pg_client,helper,event_filter_definition,dev,email_helper,email_handler,smtp,s3,args_transformer,ch_client,SAML2_helper,metrics_helper}.py ./crons/chalicelib/utils/ # -- end of generated part cp -R ./{Dockerfile.crons,requirements.txt,env.default,entrypoint_crons.sh} ./crons/ cp -R ./chalicelib/utils/html ./crons/chalicelib/utils/html } git_sha1=${IMAGE_TAG:-$(git rev-parse HEAD)} envarg="default-foss" check_prereq() { which docker || { echo "Docker not installed, please install docker." exit=1 } [[ exit -eq 1 ]] && exit 1 } function build_api(){ tag="" # Copy enterprise code cp -rf ../ee/api/* ./ envarg="default-ee" tag="ee-" make_submodule $1 cd crons docker build -f ./Dockerfile.crons --build-arg envarg=$envarg -t ${DOCKER_REPO:-'local'}/crons:${git_sha1} . cd .. rm -rf crons [[ $PUSH_IMAGE -eq 1 ]] && { docker push ${DOCKER_REPO:-'local'}/crons:${git_sha1} docker tag ${DOCKER_REPO:-'local'}/crons:${git_sha1} ${DOCKER_REPO:-'local'}/crons:${tag}latest docker push ${DOCKER_REPO:-'local'}/crons:${tag}latest } echo "completed crons build" } check_prereq build_api $1