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
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
|