You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.7 KiB
100 lines
2.7 KiB
name: lektura-red
|
|
|
|
kind: pipeline
|
|
type: docker
|
|
|
|
steps:
|
|
- name: backend-build
|
|
image: golang:1.15
|
|
depends_on: []
|
|
commands:
|
|
- go mod download
|
|
- CGO_ENABLED=0 go build -ldflags "-w -s" -o build/api/handler cmd/stufflog2-lambda/main.go
|
|
|
|
- name: backend-test
|
|
image: golang:1.15
|
|
depends_on: []
|
|
commands:
|
|
- go test -v ./...
|
|
|
|
- name: backend-migrate
|
|
image: golang:1.15
|
|
depends_on: []
|
|
environment:
|
|
DB_CONNECT:
|
|
from:secret: db_connect
|
|
commands:
|
|
- go get -u github.com/pressly/goose/...
|
|
- cd migrations/postgres
|
|
- goose postgres $DB_CONNECT up
|
|
|
|
- name: backend-deploy
|
|
image: node:14.14.0
|
|
depends_on:
|
|
- backend-build
|
|
- backend-test
|
|
- backend-migrate
|
|
environment:
|
|
AWS_ACCESS_KEY_ID:
|
|
from_secret: aws_access_key_id
|
|
AWS_SECRET_ACCESS_KEY:
|
|
from_secret: aws_secret_access_key
|
|
AWS_DEFAULT_REGION:
|
|
from_secret: aws_region
|
|
AMI_ROLE:
|
|
from_secret: ami_role
|
|
S3_WEBUI_BUCKET:
|
|
from_secret: s3_webui_bucket
|
|
DOMAIN_NAME:
|
|
from_secret: domain_name
|
|
CERTIFICATE_NAME:
|
|
from_secret: certificate_name
|
|
CERTIFICATE_ARN:
|
|
from_secret: certificate_arn
|
|
HOSTED_ZONE_ID:
|
|
from_secret: hosted_zone_id
|
|
DB_DRIVER:
|
|
from_secret: db_driver
|
|
DB_CONNECT:
|
|
from:secret: db_connect
|
|
commands:
|
|
- apt-get update > /dev/null 2>&1
|
|
- apt-get -y install awscli zip > /dev/null 2>&1
|
|
- npm install -g serverless > /dev/null 2>&1
|
|
- npm install -g serverless-domain-manager > /dev/null 2>&1
|
|
- npm install -g serverless-apigateway-service-proxy > /dev/null 2>&1
|
|
- serverless deploy
|
|
|
|
- name: frontend-build
|
|
image: node:14.14.0
|
|
depends_on: []
|
|
environment:
|
|
AWS_AMPLIFY_REGION:
|
|
from_secret: aws_region
|
|
AWS_AMPLIFY_USER_POOL_ID:
|
|
from_secret: aws_amplify_user_pool_id
|
|
AWS_AMPLIFY_USER_POOL_WEB_CLIENT_ID:
|
|
from_secret: aws_amplify_user_pool_web_client_id
|
|
commands:
|
|
- cd svelte-ui
|
|
- echo AWS_AMPLIFY_USER_POOL_ID=$AWS_AMPLIFY_USER_POOL_ID > build.env
|
|
- echo AWS_AMPLIFY_USER_POOL_WEB_CLIENT_ID=AWS_AMPLIFY_USER_POOL_WEB_CLIENT_ID >> build.env
|
|
- npm install
|
|
- npm run build
|
|
|
|
- name: frontend-deploy
|
|
image: amazon/aws-cli:latest
|
|
depends_on:
|
|
- frontend-build
|
|
environment:
|
|
AWS_ACCESS_KEY_ID:
|
|
from_secret: aws_access_key_id
|
|
AWS_SECRET_ACCESS_KEY:
|
|
from_secret: aws_secret_access_key
|
|
AWS_DEFAULT_REGION:
|
|
from_secret: aws_region
|
|
S3_WEBUI_BUCKET:
|
|
from_secret: s3_webui_bucket
|
|
commands:
|
|
- cd svelte-ui/public
|
|
- aws s3 sync . s3://$S3_WEBUI_BUCKET
|