Loggest thine Stuff
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.
 
 
 
 
 
 

117 lines
3.4 KiB

name: stufflog3
kind: pipeline
type: docker
steps:
- name: backend-build
image: golang:1.19
depends_on: []
commands:
- go mod download
- CGO_ENABLED=0 go build -ldflags "-w -s" -o build/handler cmd/stufflog3/main.go
- name: backend-test
image: golang:1.19
depends_on: []
commands:
- go test -v ./...
- name: backend-migrate
image: golang:1.19
depends_on: []
environment:
DB_CONNECT:
from_secret: DB_CONNECT
commands:
- go install github.com/pressly/goose/v3/cmd/goose@latest
- cd scripts/goose-mysql/
- goose mysql "$DB_CONNECT" up
- name: backend-deploy
image: node:18.3.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: STUFFLOG3_AWS_REGION
STUFFLOG3_AWS_CLIENT_ID:
from_secret: STUFFLOG3_AWS_CLIENT_ID
STUFFLOG3_AWS_CLIENT_SECRET:
from_secret: STUFFLOG3_AWS_CLIENT_SECRET
STUFFLOG3_AWS_POOL_CLIENT_ID:
from_secret: STUFFLOG3_AWS_POOL_CLIENT_ID
STUFFLOG3_AWS_POOL_CLIENT_SECRET:
from_secret: STUFFLOG3_AWS_POOL_CLIENT_SECRET
STUFFLOG3_AWS_POOL_ID:
from_secret: STUFFLOG3_AWS_POOL_ID
STUFFLOG3_AWS_REGION:
from_secret: STUFFLOG3_AWS_REGION
STUFFLOG3_MYSQL_HOST:
from_secret: STUFFLOG3_MYSQL_HOST
STUFFLOG3_MYSQL_PASSWORD:
from_secret: STUFFLOG3_MYSQL_PASSWORD
STUFFLOG3_MYSQL_PORT:
from_secret: STUFFLOG3_MYSQL_PORT
STUFFLOG3_MYSQL_SCHEMA:
from_secret: STUFFLOG3_MYSQL_SCHEMA
STUFFLOG3_MYSQL_USERNAME:
from_secret: STUFFLOG3_MYSQL_USERNAME
DOMAIN_NAME:
from_secret: DOMAIN_NAME
CERTIFICATE_ARN:
from_secret: CERTIFICATE_ARN
CERTIFICATE_NAME:
from_secret: CERTIFICATE_NAME
HOSTED_ZONE_ID:
from_secret: HOSTED_ZONE_ID
S3_WEBUI_BUCKET:
from_secret: S3_WEBUI_BUCKET
IAM_ROLE:
from_secret: IAM_ROLE
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:18.3.0
depends_on: []
environment:
VITE_STUFFLOG3_AWS_POOL_REGION:
from_secret: VITE_STUFFLOG3_AWS_POOL_REGION
VITE_STUFFLOG3_AWS_POOL_ID:
from_secret: VITE_STUFFLOG3_AWS_POOL_ID
VITE_STUFFLOG3_AWS_POOL_PUBLIC_CLIENT_ID:
from_secret: VITE_STUFFLOG3_AWS_POOL_PUBLIC_CLIENT_ID
commands:
- cd frontend
- npm install
- npm run build
- cp static/* 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: STUFFLOG3_AWS_REGION
S3_WEBUI_BUCKET:
from_secret: S3_WEBUI_BUCKET
commands:
- cd frontend/build
- aws s3 sync --delete . s3://$S3_WEBUI_BUCKET