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

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  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/handler cmd/stufflog3/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 install github.com/pressly/goose/v3/cmd/goose@latest
  24. - cd scripts/goose-mysql/
  25. - goose mysql "$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. AWS_ACCESS_KEY_ID:
  34. from_secret: AWS_ACCESS_KEY_ID
  35. AWS_SECRET_ACCESS_KEY:
  36. from_secret: AWS_SECRET_ACCESS_KEY
  37. AWS_DEFAULT_REGION:
  38. from_secret: STUFFLOG3_AWS_REGION
  39. STUFFLOG3_AWS_CLIENT_ID:
  40. from_secret: STUFFLOG3_AWS_CLIENT_ID
  41. STUFFLOG3_AWS_CLIENT_SECRET:
  42. from_secret: STUFFLOG3_AWS_CLIENT_SECRET
  43. STUFFLOG3_AWS_POOL_CLIENT_ID:
  44. from_secret: STUFFLOG3_AWS_POOL_CLIENT_ID
  45. STUFFLOG3_AWS_POOL_CLIENT_SECRET:
  46. from_secret: STUFFLOG3_AWS_POOL_CLIENT_SECRET
  47. STUFFLOG3_AWS_POOL_ID:
  48. from_secret: STUFFLOG3_AWS_POOL_ID
  49. STUFFLOG3_AWS_REGION:
  50. from_secret: STUFFLOG3_AWS_REGION
  51. STUFFLOG3_MYSQL_HOST:
  52. from_secret: STUFFLOG3_MYSQL_HOST
  53. STUFFLOG3_MYSQL_PASSWORD:
  54. from_secret: STUFFLOG3_MYSQL_PASSWORD
  55. STUFFLOG3_MYSQL_PORT:
  56. from_secret: STUFFLOG3_MYSQL_PORT
  57. STUFFLOG3_MYSQL_SCHEMA:
  58. from_secret: STUFFLOG3_MYSQL_SCHEMA
  59. STUFFLOG3_MYSQL_USERNAME:
  60. from_secret: STUFFLOG3_MYSQL_USERNAME
  61. DOMAIN_NAME:
  62. from_secret: DOMAIN_NAME
  63. CERTIFICATE_ARN:
  64. from_secret: CERTIFICATE_ARN
  65. CERTIFICATE_NAME:
  66. from_secret: CERTIFICATE_NAME
  67. HOSTED_ZONE_ID:
  68. from_secret: HOSTED_ZONE_ID
  69. S3_WEBUI_BUCKET:
  70. from_secret: S3_WEBUI_BUCKET
  71. IAM_ROLE:
  72. from_secret: IAM_ROLE
  73. commands:
  74. - apt-get update > /dev/null 2>&1
  75. - apt-get -y install awscli zip > /dev/null 2>&1
  76. - npm install -g serverless > /dev/null 2>&1
  77. - npm install -g serverless-domain-manager > /dev/null 2>&1
  78. - npm install -g serverless-apigateway-service-proxy > /dev/null 2>&1
  79. - serverless deploy
  80. - name: frontend-build
  81. image: node:18.3.0
  82. depends_on: []
  83. environment:
  84. VITE_STUFFLOG3_AWS_POOL_REGION:
  85. from_secret: VITE_STUFFLOG3_AWS_POOL_REGION
  86. VITE_STUFFLOG3_AWS_POOL_ID:
  87. from_secret: VITE_STUFFLOG3_AWS_POOL_ID
  88. VITE_STUFFLOG3_AWS_POOL_PUBLIC_CLIENT_ID:
  89. from_secret: VITE_STUFFLOG3_AWS_POOL_PUBLIC_CLIENT_ID
  90. commands:
  91. - cd frontend
  92. - npm install
  93. - npm run build
  94. - cp static/* build/
  95. - name: frontend-deploy
  96. image: amazon/aws-cli:latest
  97. depends_on:
  98. - frontend-build
  99. environment:
  100. AWS_ACCESS_KEY_ID:
  101. from_secret: AWS_ACCESS_KEY_ID
  102. AWS_SECRET_ACCESS_KEY:
  103. from_secret: AWS_SECRET_ACCESS_KEY
  104. AWS_DEFAULT_REGION:
  105. from_secret: STUFFLOG3_AWS_REGION
  106. S3_WEBUI_BUCKET:
  107. from_secret: S3_WEBUI_BUCKET
  108. commands:
  109. - cd frontend/build
  110. - aws s3 sync --delete . s3://$S3_WEBUI_BUCKET