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.

109 lines
3.1 KiB

  1. name: stufflog3
  2. kind: pipeline
  3. type: docker
  4. steps:
  5. - name: backend-build
  6. image: golang:1.19
  7. depends_on: []
  8. commands:
  9. - go mod download
  10. - CGO_ENABLED=0 go build -ldflags "-w -s" -o build/api/handler cmd/stufflog2-lambda/main.go
  11. - name: backend-test
  12. image: golang:1.19
  13. depends_on: []
  14. commands:
  15. - go test -v ./...
  16. - name: backend-migrate
  17. image: golang:1.19
  18. depends_on: []
  19. environment:
  20. DB_CONNECT:
  21. from_secret: DB_CONNECT
  22. commands:
  23. - go get -u github.com/pressly/goose/...
  24. - cd scripts/goose-mysql/
  25. - goose postgres "$DB_CONNECT" up
  26. - name: backend-deploy
  27. image: node:18.3.0
  28. depends_on:
  29. - backend-build
  30. - backend-test
  31. - backend-migrate
  32. environment:
  33. STUFFLOG3_AWS_CLIENT_ID:
  34. from_secret: STUFFLOG3_AWS_CLIENT_ID
  35. STUFFLOG3_AWS_CLIENT_SECRET:
  36. from_secret: STUFFLOG3_AWS_CLIENT_SECRET
  37. STUFFLOG3_AWS_POOL_CLIENT_ID:
  38. from_secret: STUFFLOG3_AWS_POOL_CLIENT_ID
  39. STUFFLOG3_AWS_POOL_CLIENT_SECRET:
  40. from_secret: STUFFLOG3_AWS_POOL_CLIENT_SECRET
  41. STUFFLOG3_AWS_POOL_ID:
  42. from_secret: STUFFLOG3_AWS_POOL_ID
  43. STUFFLOG3_AWS_REGION:
  44. from_secret: STUFFLOG3_AWS_REGION
  45. STUFFLOG3_MYSQL_HOST:
  46. from_secret: STUFFLOG3_MYSQL_HOST
  47. STUFFLOG3_MYSQL_PASSWORD:
  48. from_secret: STUFFLOG3_MYSQL_PASSWORD
  49. STUFFLOG3_MYSQL_PORT:
  50. from_secret: STUFFLOG3_MYSQL_PORT
  51. STUFFLOG3_MYSQL_SCHEMA:
  52. from_secret: STUFFLOG3_MYSQL_SCHEMA
  53. STUFFLOG3_MYSQL_USERNAME:
  54. from_secret: STUFFLOG3_MYSQL_USERNAME
  55. DOMAIN_NAME:
  56. from_secret: DOMAIN_NAME
  57. CERTIFICATE_ARN:
  58. from_secret: CERTIFICATE_ARN
  59. CERTIFICATE_NAME:
  60. from_secret: CERTIFICATE_NAME
  61. HOSTED_ZONE_ID:
  62. from_secret: HOSTED_ZONE_ID
  63. S3_WEBUI_BUCKET:
  64. from_secret: S3_WEBUI_BUCKET
  65. commands:
  66. - apt-get update > /dev/null 2>&1
  67. - apt-get -y install awscli zip > /dev/null 2>&1
  68. - npm install -g serverless > /dev/null 2>&1
  69. - npm install -g serverless-domain-manager > /dev/null 2>&1
  70. - npm install -g serverless-apigateway-service-proxy > /dev/null 2>&1
  71. - serverless deploy
  72. - name: frontend-build
  73. image: node:18.3.0
  74. depends_on: []
  75. environment:
  76. VITE_STUFFLOG3_AWS_POOL_REGION:
  77. from_secret: VITE_STUFFLOG3_AWS_POOL_REGION
  78. VITE_STUFFLOG3_AWS_POOL_ID:
  79. from_secret: VITE_STUFFLOG3_AWS_POOL_ID
  80. VITE_STUFFLOG3_AWS_POOL_PUBLIC_CLIENT_ID:
  81. from_secret: VITE_STUFFLOG3_AWS_POOL_PUBLIC_CLIENT_ID
  82. commands:
  83. - cd frontend
  84. - npm install
  85. - npm run build
  86. - cp static/* build/
  87. - name: frontend-deploy
  88. image: amazon/aws-cli:latest
  89. depends_on:
  90. - frontend-build
  91. environment:
  92. AWS_ACCESS_KEY_ID:
  93. from_secret: aws_access_key_id
  94. AWS_SECRET_ACCESS_KEY:
  95. from_secret: aws_secret_access_key
  96. AWS_DEFAULT_REGION:
  97. from_secret: aws_region
  98. S3_WEBUI_BUCKET:
  99. from_secret: s3_webui_bucket
  100. commands:
  101. - cd frontend/build
  102. - aws s3 sync . s3://$S3_WEBUI_BUCKET