You've already forked golang-saas-starter-kit
mirror of
https://github.com/raseels-repos/golang-saas-starter-kit.git
synced 2025-08-06 22:32:51 +02:00
161 lines
3.6 KiB
YAML
161 lines
3.6 KiB
YAML
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'
|