image: geeksaccelerator/docker-library:golang1.12-docker services: - docker:dind before_script: - 'cd ./tools/devops && make install && cd ../../' stages: - build:dev - migrate:dev - deploy:dev - build:stage - migrate:stage - deploy:stage - build:prod - migrate:prod - deploy:prod cache: key: ${CI_COMMIT_REF_SLUG} # Everything should get this, whether through subtemplates or explicitly # embedded in a job. .job_tmpl: &job_tmpl only: - master .build_tmpl: &build_tmpl <<: *job_tmpl script: - 'devops build -service=${SERVICE} -project=${PROJECT_NAME} -env=${TARGET_ENV}' .deploy_tmpl: &deploy_tmpl <<: *job_tmpl script: - 'devops deploy -service=${SERVICE} -project=${PROJECT_NAME} -env=${TARGET_ENV} -enable_https=${ENABLE_HTTPS} -enable_elb=${ENABLE_ELB} -primary_host=${PRIMARY_HOST} -host_names=${HOST_NAMES} -private_bucket=${S3_BUCKET_PRIVATE} -public_bucket=${S3_BUCKET_PUBLIC} -public_bucket_cloudfront=${S3_BUCKET_PUBLIC_CLOUDFRONT} -static_files_s3=${STATIC_FILES_S3} -static_files_img_resize=${STATIC_FILES_IMG_RESIZE}' .migrate_tmpl: &migrate_tmpl <<: *job_tmpl script: - 'devops migrate -project=${PROJECT_NAME} -env=${TARGET_ENV}' db:migrate:dev: <<: *migrate_tmpl stage: migrate:dev tags: - dev only: - master - dev - /^dev-.*$/ variables: TARGET_ENV: 'dev' AWS_USE_ROLE: 'true' webapp:build:dev: <<: *build_tmpl stage: build:dev tags: - dev only: - master - dev - dev-web-app variables: TARGET_ENV: 'dev' SERVICE: 'web-app' AWS_USE_ROLE: 'true' webapp:deploy:dev: <<: *deploy_tmpl stage: deploy:dev tags: - dev only: - master - dev - dev-web-app dependencies: - 'webapp:build:dev' - 'db:migrate:dev' variables: TARGET_ENV: 'dev' SERVICE: 'web-app' ENABLE_HTTPS: 1 ENABLE_ELB: 0 PRIMARY_HOST: 'eproc.tech' HOST_NAMES: 'www.eproc.tech,dev.eproc.tech' S3_BUCKET_PRIVATE: 'saas-starter-kit-private' S3_BUCKET_PUBLIC: 'saas-starter-kit-public' S3_BUCKET_PUBLIC_CLOUDFRONT: 'true' STATIC_FILES_S3: 'true' STATIC_FILES_IMG_RESIZE: 'true' AWS_USE_ROLE: 'true' webapi:build:dev: <<: *build_tmpl stage: build:dev tags: - dev only: - master - dev - dev-web-api variables: TARGET_ENV: 'dev' SERVICE: 'web-api' AWS_USE_ROLE: 'true' webapi:deploy:dev: <<: *deploy_tmpl stage: deploy:dev tags: - dev only: - master - dev - dev-web-api dependencies: - 'webapi:build:dev' - 'db:migrate:dev' variables: TARGET_ENV: 'dev' SERVICE: 'web-api' ENABLE_HTTPS: 1 ENABLE_ELB: 0 PRIMARY_HOST: 'api.eproc.tech' HOST_NAMES: 'api.dev.eproc.tech' S3_BUCKET_PRIVATE: 'saas-starter-kit-private' S3_BUCKET_PUBLIC: 'saas-starter-kit-public' S3_BUCKET_PUBLIC_CLOUDFRONT: 'false' STATIC_FILES_S3: 'false' STATIC_FILES_IMG_RESIZE: 'false' AWS_USE_ROLE: 'true' #ddlogscollector:deploy:stage: # <<: *deploy_stage_tmpl # variables: # TARGET_ENV: 'stage' # ECS_CLUSTER: '${ECS_CLUSTER}' # SERVICE: 'ddlogscollector' # S3_BUCKET: 'keenispace-services-stage' # S3_KEY: 'aws/lambda/ddlogscollector/src/ddlogscollector-stage.zip' # ENABLE_VPC: 0 # only: # - master # - stage #ddlogscollector:deploy:prod: # <<: *deploy_prod_tmpl # variables: # TARGET_ENV: 'prod' # ECS_CLUSTER: '${ECS_CLUSTER}' # SERVICE: 'ddlogscollector' # S3_BUCKET: 'keenispace-services-prod' # S3_KEY: 'aws/lambda/ddlogscollector/src/ddlogscollector-prod.zip' # ENABLE_VPC: 0 # only: # - master # - prod # #dependencies: # # - 'ddlogscollector:deploy:stage'