node.js should associate console logs with session context (#7048) #84
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy to AWS | |
on: | |
push: | |
branches: | |
- 'main' | |
paths: | |
- 'go.work' | |
- 'go.work.sum' | |
- 'backend/**' | |
- 'deploy/**' | |
- '.github/workflows/deploy.yml' | |
concurrency: ${{ github.workflow }}-${{ github.ref }} | |
jobs: | |
migrate-database: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version-file: 'backend/go.mod' | |
- name: Install Doppler CLI | |
uses: dopplerhq/cli-action@v2 | |
- name: Migrate database | |
run: | | |
cd backend/ | |
make migrate | |
env: | |
DOPPLER_TOKEN: ${{ secrets.DOPPLER_TOKEN }} | |
deploy-session-delete-lambdas: | |
needs: migrate-database | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version-file: 'backend/go.mod' | |
- name: Install Doppler CLI | |
uses: dopplerhq/cli-action@v2 | |
- name: Build and zip | |
run: | | |
cd backend/ | |
CGO_ENABLED=0 go build ./lambda-functions/deleteSessions/getSessionIdsByQuery | |
zip getSessionIdsByQuery.zip getSessionIdsByQuery | |
CGO_ENABLED=0 go build ./lambda-functions/deleteSessions/deleteSessionBatchFromPostgres | |
zip deleteSessionBatchFromPostgres.zip deleteSessionBatchFromPostgres | |
CGO_ENABLED=0 go build ./lambda-functions/deleteSessions/deleteSessionBatchFromOpenSearch | |
zip deleteSessionBatchFromOpenSearch.zip deleteSessionBatchFromOpenSearch | |
CGO_ENABLED=0 go build ./lambda-functions/deleteSessions/deleteSessionBatchFromS3 | |
zip deleteSessionBatchFromS3.zip deleteSessionBatchFromS3 | |
CGO_ENABLED=0 go build ./lambda-functions/deleteSessions/sendEmail | |
zip sendEmail.zip sendEmail | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: us-east-2 | |
- name: Update Lambda secrets | |
env: | |
DOPPLER_TOKEN: ${{ secrets.DOPPLER_PROD_AWS_LAMBDAS_SECRET }} | |
REACT_APP_COMMIT_SHA: ${{ github.sha }} | |
run: | | |
aws lambda update-function-configuration --function-name getSessionIdsByQuery \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
aws lambda update-function-configuration --function-name deleteSessionBatchFromPostgres \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
aws lambda update-function-configuration --function-name deleteSessionBatchFromOpenSearch \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
aws lambda update-function-configuration --function-name deleteSessionBatchFromS3 \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
aws lambda update-function-configuration --function-name sendEmail \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
- name: Deploy getSessionIdsByQuery | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: getSessionIdsByQuery | |
zip_file: backend/getSessionIdsByQuery.zip | |
- name: Deploy deleteSessionBatchFromPostgres | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: deleteSessionBatchFromPostgres | |
zip_file: backend/deleteSessionBatchFromPostgres.zip | |
- name: Deploy deleteSessionBatchFromOpenSearch | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: deleteSessionBatchFromOpenSearch | |
zip_file: backend/deleteSessionBatchFromOpenSearch.zip | |
- name: Deploy deleteSessionBatchFromS3 | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: deleteSessionBatchFromS3 | |
zip_file: backend/deleteSessionBatchFromS3.zip | |
- name: Deploy sendEmail | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: sendEmail | |
zip_file: backend/sendEmail.zip | |
deploy-session-export-lambdas: | |
needs: migrate-database | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version-file: 'backend/go.mod' | |
- name: Install Doppler CLI | |
uses: dopplerhq/cli-action@v2 | |
- name: Build and zip | |
run: | | |
cd backend/ | |
CGO_ENABLED=0 go build ./lambda-functions/sessionExport/saveSessionExport | |
zip saveSessionExport.zip saveSessionExport | |
CGO_ENABLED=0 go build ./lambda-functions/sessionExport/sendEmail | |
zip sendEmail.zip sendEmail | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: us-east-2 | |
- name: Update Lambda secrets | |
env: | |
DOPPLER_TOKEN: ${{ secrets.DOPPLER_PROD_AWS_LAMBDAS_SECRET }} | |
REACT_APP_COMMIT_SHA: ${{ github.sha }} | |
run: | | |
aws lambda update-function-configuration --function-name saveSessionExport \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
aws lambda update-function-configuration --function-name sendSessionExportEmail \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
- name: Deploy saveSessionExport | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: saveSessionExport | |
zip_file: backend/saveSessionExport.zip | |
- name: Deploy sendSessionExportEmail | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: sendSessionExportEmail | |
zip_file: backend/sendEmail.zip | |
deploy-digest-lambdas: | |
needs: migrate-database | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version-file: 'backend/go.mod' | |
- name: Install Doppler CLI | |
uses: dopplerhq/cli-action@v2 | |
- name: Build and zip | |
run: | | |
cd backend/ | |
CGO_ENABLED=0 go build ./lambda-functions/digests/getProjectIds | |
zip getProjectIds.zip getProjectIds | |
CGO_ENABLED=0 go build ./lambda-functions/digests/getDigestData | |
zip getDigestData.zip getDigestData | |
CGO_ENABLED=0 go build ./lambda-functions/digests/sendDigestEmails | |
zip sendDigestEmails.zip sendDigestEmails | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: us-east-2 | |
- name: Update Lambda secrets | |
env: | |
DOPPLER_TOKEN: ${{ secrets.DOPPLER_PROD_AWS_LAMBDAS_SECRET }} | |
REACT_APP_COMMIT_SHA: ${{ github.sha }} | |
run: | | |
aws lambda update-function-configuration --function-name getProjectIds \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
aws lambda update-function-configuration --function-name getDigestData \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
aws lambda update-function-configuration --function-name sendDigestEmails \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
- name: Deploy getProjectIds | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: getProjectIds | |
zip_file: backend/getProjectIds.zip | |
- name: Deploy getDigestData | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: getDigestData | |
zip_file: backend/getDigestData.zip | |
- name: Deploy sendDigestEmails | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: sendDigestEmails | |
zip_file: backend/sendDigestEmails.zip | |
deploy-session-insights-lambdas: | |
needs: migrate-database | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version-file: 'backend/go.mod' | |
- name: Install Doppler CLI | |
uses: dopplerhq/cli-action@v2 | |
- name: Build and zip | |
run: | | |
cd backend/ | |
CGO_ENABLED=0 go build ./lambda-functions/sessionInsights/getSessionInsightsData | |
zip getSessionInsightsData.zip getSessionInsightsData | |
CGO_ENABLED=0 go build ./lambda-functions/sessionInsights/sendSessionInsightsEmails | |
zip sendSessionInsightsEmails.zip sendSessionInsightsEmails | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: us-east-2 | |
- name: Update Lambda secrets | |
env: | |
DOPPLER_TOKEN: ${{ secrets.DOPPLER_PROD_AWS_LAMBDAS_SECRET }} | |
REACT_APP_COMMIT_SHA: ${{ github.sha }} | |
run: | | |
aws lambda update-function-configuration --function-name getSessionInsightsData \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
aws lambda update-function-configuration --function-name sendSessionInsightsEmails \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
- name: Deploy getSessionInsightsData | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: getSessionInsightsData | |
zip_file: backend/getSessionInsightsData.zip | |
- name: Deploy sendSessionInsightsEmails | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: sendSessionInsightsEmails | |
zip_file: backend/sendSessionInsightsEmails.zip | |
deploy-user-journey-lambdas: | |
needs: migrate-database | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version-file: 'backend/go.mod' | |
- name: Install Doppler CLI | |
uses: dopplerhq/cli-action@v2 | |
- name: Build and zip | |
run: | | |
cd backend/ | |
CGO_ENABLED=0 go build ./lambda-functions/journeys/updateNormalnessScores | |
zip updateNormalnessScores.zip updateNormalnessScores | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: us-east-2 | |
- name: Update Lambda secrets | |
env: | |
DOPPLER_TOKEN: ${{ secrets.DOPPLER_PROD_AWS_LAMBDAS_SECRET }} | |
REACT_APP_COMMIT_SHA: ${{ github.sha }} | |
run: | | |
aws lambda update-function-configuration --function-name updateNormalnessScores \ | |
--environment "$(doppler secrets download --no-file | jq ". + {REACT_APP_COMMIT_SHA: \"$REACT_APP_COMMIT_SHA\" }" | jq '{Variables: .}')" | |
- name: Deploy updateNormalnessScores | |
uses: appleboy/lambda-action@v0.1.9 | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: us-east-2 | |
function_name: updateNormalnessScores | |
zip_file: backend/updateNormalnessScores.zip | |
deploy_backend: | |
needs: migrate-database | |
runs-on: buildjet-2vcpu-ubuntu-2204-arm | |
steps: | |
- name: Check out the repo | |
uses: actions/checkout@v3 | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: us-east-2 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Login to Amazon ECR | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v1 | |
- name: Build, tag, and push arm64 image to Amazon ECR | |
env: | |
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} | |
ECR_REPOSITORY: highlight-production-ecr-repo | |
IMAGE_TAG: ${{ github.sha }} | |
run: | | |
docker buildx build --build-arg REACT_APP_COMMIT_SHA=${{ github.sha }} --platform linux/arm64 -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG.arm64 -f deploy/Dockerfile.prod.arm64 . | |
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG.arm64 | |
# Edit and deploy private-graph | |
- name: Replace image label for private-graph task | |
id: image-private-graph | |
uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
with: | |
task-definition: deploy/private-graph-task.json | |
container-name: highlight-backend | |
image: ${{ steps.login-ecr.outputs.registry }}/highlight-production-ecr-repo:${{ github.sha }}.arm64 | |
- name: Deploy to Amazon ECS private-graph service | |
uses: aws-actions/amazon-ecs-deploy-task-definition@v1 | |
with: | |
task-definition: ${{ steps.image-private-graph.outputs.task-definition }} | |
service: private-graph-service | |
cluster: highlight-production-cluster | |
# Edit and deploy public-graph | |
- name: Replace image label for public-graph task | |
id: image-public-graph | |
uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
with: | |
task-definition: deploy/public-graph-task.json | |
container-name: highlight-backend | |
image: ${{ steps.login-ecr.outputs.registry }}/highlight-production-ecr-repo:${{ github.sha }}.arm64 | |
- name: Deploy to Amazon ECS public-graph service | |
uses: aws-actions/amazon-ecs-deploy-task-definition@v1 | |
with: | |
task-definition: ${{ steps.image-public-graph.outputs.task-definition }} | |
service: public-graph-service | |
cluster: highlight-production-cluster | |
# Edit and deploy worker | |
- name: Replace image label for worker task | |
id: image-worker | |
uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
with: | |
task-definition: deploy/worker-task.json | |
container-name: highlight-backend | |
image: ${{ steps.login-ecr.outputs.registry }}/highlight-production-ecr-repo:${{ github.sha }}.arm64 | |
- name: Deploy to Amazon ECS worker service | |
uses: aws-actions/amazon-ecs-deploy-task-definition@v1 | |
with: | |
task-definition: ${{ steps.image-worker.outputs.task-definition }} | |
service: worker-service-v2 | |
cluster: highlight-production-cluster | |
# Edit and deploy metric monitors | |
- name: Replace image label for metric monitors task | |
id: image-metric-monitor | |
uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
with: | |
task-definition: deploy/metric-monitor-task.json | |
container-name: highlight-backend | |
image: ${{ steps.login-ecr.outputs.registry }}/highlight-production-ecr-repo:${{ github.sha }}.arm64 | |
- name: Deploy to Amazon ECS metric monitor service | |
uses: aws-actions/amazon-ecs-deploy-task-definition@v1 | |
with: | |
task-definition: ${{ steps.image-metric-monitor.outputs.task-definition }} | |
service: metric-monitor | |
cluster: highlight-production-cluster | |
# Edit and deploy log alerts | |
- name: Replace image label for log alerts task | |
id: image-log-alerts | |
uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
with: | |
task-definition: deploy/log-alerts-task.json | |
container-name: highlight-backend | |
image: ${{ steps.login-ecr.outputs.registry }}/highlight-production-ecr-repo:${{ github.sha }}.arm64 | |
- name: Deploy to Amazon ECS log alerts service | |
uses: aws-actions/amazon-ecs-deploy-task-definition@v1 | |
with: | |
task-definition: ${{ steps.image-log-alerts.outputs.task-definition }} | |
service: log-alerts-service | |
cluster: highlight-production-cluster | |
# Edit and deploy public worker (main topic) | |
- name: Replace image label for public worker (main topic) service | |
id: image-public-worker-main | |
uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
with: | |
task-definition: deploy/public-worker-main-service.json | |
container-name: highlight-backend | |
image: ${{ steps.login-ecr.outputs.registry }}/highlight-production-ecr-repo:${{ github.sha }}.arm64 | |
- name: Deploy to Amazon ECS public worker (main topic) service | |
uses: aws-actions/amazon-ecs-deploy-task-definition@v1 | |
with: | |
task-definition: ${{ steps.image-public-worker-main.outputs.task-definition }} | |
service: public-worker-main-service | |
cluster: highlight-production-cluster | |
# Edit and deploy public worker (batched topic) | |
- name: Replace image label for public worker (batched topic) service | |
id: image-public-worker-batched | |
uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
with: | |
task-definition: deploy/public-worker-batched-service.json | |
container-name: highlight-backend | |
image: ${{ steps.login-ecr.outputs.registry }}/highlight-production-ecr-repo:${{ github.sha }}.arm64 | |
- name: Deploy to Amazon ECS public worker (batched topic) service | |
uses: aws-actions/amazon-ecs-deploy-task-definition@v1 | |
with: | |
task-definition: ${{ steps.image-public-worker-batched.outputs.task-definition }} | |
service: public-worker-batched-service | |
cluster: highlight-production-cluster | |
# Edit and deploy public worker (datasync topic) | |
- name: Replace image label for public worker (datasync topic) service | |
id: image-public-worker-datasync | |
uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
with: | |
task-definition: deploy/public-worker-datasync-service.json | |
container-name: highlight-backend | |
image: ${{ steps.login-ecr.outputs.registry }}/highlight-production-ecr-repo:${{ github.sha }}.arm64 | |
- name: Deploy to Amazon ECS public worker (datasync topic) service | |
uses: aws-actions/amazon-ecs-deploy-task-definition@v1 | |
with: | |
task-definition: ${{ steps.image-public-worker-datasync.outputs.task-definition }} | |
service: public-worker-datasync-service | |
cluster: highlight-production-cluster | |
# Edit and deploy public worker (traces topic) | |
- name: Replace image label for public worker (traces topic) service | |
id: image-public-worker-traces | |
uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
with: | |
task-definition: deploy/public-worker-traces-service.json | |
container-name: highlight-backend | |
image: ${{ steps.login-ecr.outputs.registry }}/highlight-production-ecr-repo:${{ github.sha }}.arm64 | |
- name: Deploy to Amazon ECS public worker (traces topic) service | |
uses: aws-actions/amazon-ecs-deploy-task-definition@v1 | |
with: | |
task-definition: ${{ steps.image-public-worker-traces.outputs.task-definition }} | |
service: public-worker-traces-service | |
cluster: highlight-production-cluster | |
deploy_opentelemetry_collector: | |
runs-on: buildjet-2vcpu-ubuntu-2204-arm | |
steps: | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: us-east-2 | |
- name: Login to Amazon ECR | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v1 | |
- name: Check out the repo | |
uses: actions/checkout@v3 | |
- uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
filters: | | |
otel-changed: | |
- 'deploy/opentelemetry-collector.Dockerfile' | |
- 'deploy/otel-collector.yaml' | |
# Edit and deploy opentelemetry collector | |
- name: Build, tag, and push arm64 image to Amazon ECR | |
if: steps.filter.outputs.otel-changed == 'true' | |
env: | |
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} | |
ECR_REPOSITORY: highlight-collector | |
IMAGE_TAG: ${{ github.sha }} | |
run: | | |
cd deploy | |
docker buildx build --platform linux/arm64 -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG.arm64 -f opentelemetry-collector.Dockerfile . | |
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG.arm64 | |
- name: Replace image label for opentelemetry collector | |
if: steps.filter.outputs.otel-changed == 'true' | |
id: image-opentelemetry-collector | |
uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
with: | |
task-definition: deploy/collector-task.json | |
container-name: highlight-collector | |
image: ${{ steps.login-ecr.outputs.registry }}/highlight-collector:${{ github.sha }}.arm64 | |
- name: Deploy to Amazon ECS opentelemetry collector service | |
if: steps.filter.outputs.otel-changed == 'true' | |
uses: aws-actions/amazon-ecs-deploy-task-definition@v1 | |
with: | |
task-definition: ${{ steps.image-opentelemetry-collector.outputs.task-definition }} | |
service: opentelemetry-collector-service | |
cluster: highlight-production-cluster |