production.yaml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. name: Deploy to production
  2. on:
  3. push:
  4. branches:
  5. - production
  6. jobs:
  7. deploy:
  8. runs-on: ubuntu-latest
  9. steps:
  10. - name: Set up Cloud SDK
  11. uses: google-github-actions/setup-gcloud@v0
  12. with:
  13. project_id: ${{ secrets.GCP_PROJECT_ID }}
  14. service_account_key: ${{ secrets.GCP_SA_KEY }}
  15. export_default_credentials: true
  16. - name: Configure AWS Credentials
  17. uses: aws-actions/configure-aws-credentials@v1-node16
  18. with:
  19. aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
  20. aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  21. aws-region: ${{ secrets.AWS_REGION }}
  22. - name: Install kubectl
  23. uses: azure/setup-kubectl@v2.0
  24. with:
  25. version: "v1.19.15"
  26. - name: Log in to gcloud CLI
  27. run: gcloud auth configure-docker
  28. - name: Checkout
  29. uses: actions/checkout@v3
  30. - name: Write Dashboard Environment Variables
  31. run: |
  32. cat >./dashboard/.env <<EOL
  33. NODE_ENV=production
  34. API_SERVER=dashboard.getporter.dev
  35. COHERE_API_KEY=${{secrets.COHERE_API_KEY}}
  36. DISCORD_KEY=${{secrets.DISCORD_KEY}}
  37. DISCORD_CID=${{secrets.DISCORD_CID}}
  38. FEEDBACK_ENDPOINT=${{secrets.FEEDBACK_ENDPOINT}}
  39. IS_HOSTED=true
  40. ENABLE_COHERE=true
  41. COHERE_API_KEY=${{secrets.COHERE_KEY}}
  42. INTERCOM_APP_ID=${{secrets.INTERCOM_APP_ID}}
  43. INTERCOM_SRC=${{secrets.INTERCOM_SRC}}
  44. HOTJAR_ID=${{secrets.HOTJAR_ID}}
  45. SEGMENT_WRITE_KEY=${{secrets.SEGMENT_WRITE_KEY}}
  46. SEGMENT_PUBLIC_KEY=${{secrets.SEGMENT_PUBLIC_KEY}}
  47. APPLICATION_CHART_REPO_URL=https://charts.getporter.dev
  48. ADDON_CHART_REPO_URL=https://chart-addons.getporter.dev
  49. ENABLE_SENTRY=true
  50. SENTRY_DSN=${{secrets.SENTRY_DSN}}
  51. SENTRY_ENV=frontend-production
  52. ZAPIER_WEBHOOK_URL=${{secrets.ZAPIER_WEBHOOK_URL}}
  53. DISCORD_WEBHOOK_URL=${{secrets.DISCORD_WEBHOOK_URL}}
  54. EOL
  55. - name: Build
  56. run: |
  57. DOCKER_BUILDKIT=1 docker build . -t gcr.io/porter-dev-273614/porter:latest -f ./ee/docker/ee.Dockerfile --build-arg version=production
  58. - name: Push
  59. run: |
  60. docker push gcr.io/porter-dev-273614/porter:latest
  61. - name: Deploy to cluster
  62. run: |
  63. aws eks --region ${{ secrets.AWS_REGION }} update-kubeconfig --name production-2
  64. kubectl rollout restart deployment/porter
  65. deploy-provisioner:
  66. runs-on: ubuntu-latest
  67. steps:
  68. - name: Set up Cloud SDK
  69. uses: google-github-actions/setup-gcloud@v0
  70. with:
  71. project_id: ${{ secrets.GCP_PROJECT_ID }}
  72. service_account_key: ${{ secrets.GCP_SA_KEY }}
  73. export_default_credentials: true
  74. - name: Configure AWS Credentials
  75. uses: aws-actions/configure-aws-credentials@v1-node16
  76. with:
  77. aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
  78. aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  79. aws-region: ${{ secrets.AWS_REGION }}
  80. - name: Install kubectl
  81. uses: azure/setup-kubectl@v2.0
  82. with:
  83. version: "v1.19.15"
  84. - name: Log in to gcloud CLI
  85. run: gcloud auth configure-docker
  86. - name: Checkout
  87. uses: actions/checkout@v3
  88. - name: Build
  89. run: |
  90. DOCKER_BUILDKIT=1 docker build . -t gcr.io/porter-dev-273614/provisioner-service:latest -f ./ee/docker/provisioner.Dockerfile
  91. - name: Push
  92. run: |
  93. docker push gcr.io/porter-dev-273614/provisioner-service:latest
  94. - name: Deploy to cluster
  95. run: |
  96. aws eks --region ${{ secrets.AWS_REGION }} update-kubeconfig --name production-2
  97. kubectl rollout restart deployment/provisioner