Skip to content
This repository has been archived by the owner on Sep 4, 2024. It is now read-only.

Commit

Permalink
Add workflow and ECS task deffinition
Browse files Browse the repository at this point in the history
  • Loading branch information
vladupshot committed Dec 28, 2023
1 parent adff3e7 commit f92f4b0
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 0 deletions.
62 changes: 62 additions & 0 deletions .github/workflows/deploy_aws_staging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# This workflow will build and push a new container image to Amazon ECR,
# and then will deploy a new task definition to Amazon ECS which will be run by Fargate when a release is created
name: Deploy to Staging Amazon ECS

on:
push:
branches:
- staging
- vlad/ora-190-ensure-all-repos-are-deployable-on-aws-cloud-with-a-merge
workflow_dispatch:

concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
deploy-staging:
name: Deploy to staging
runs-on: ubuntu-latest
environment: staging

steps:
- name: Checkout
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-1

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1

- name: Build, tag, and push image to Amazon ECR
id: compute-node-build-image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: upshot-compute-node-staging
IMAGE_TAG: ${{ github.sha }}
run: |
# Build a docker container and push it to ECR so that it can be deployed to ECS.
docker build -f docker/Dockerfile --build-arg ghcr_token=${{ secrets.PUBLISH_PAT }} -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> "$GITHUB_OUTPUT"
- name: Fill in the new image ID in the Amazon ECS task definition
id: compute-node-task-def
uses: aws-actions/amazon-ecs-render-task-definition@v1
with:
task-definition: infra/staging-task-def.json
container-name: upshot-compute-node
image: ${{ steps.compute-node-build-image.outputs.image }}

- name: upshot-compute-node - Deploy Amazon ECS task definition
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
with:
task-definition: ${{ steps.compute-node-task-def.outputs.task-definition }}
service: upshot-compute-node-staging
cluster: upshot-backend-staging
# wait-for-service-stability: true
31 changes: 31 additions & 0 deletions infra/staging-task-def.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"executionRoleArn": "arn:aws:iam::696230526504:role/ecsTaskExecutionRole",
"containerDefinitions": [
{
"image": "696230526504.dkr.ecr.us-east-1.amazonaws.com/upshot-compute-node-staging",
"essential": true,
"name": "upshot-compute-node",
"portMappings": [
{
"hostPort": 8080,
"protocol": "tcp",
"containerPort": 8080
},
{
"hostPort": 9527,
"protocol": "tcp",
"containerPort": 9527
}
],
"mountPoints": []
}
],
"taskRoleArn": "arn:aws:iam::696230526504:role/ECS_TASK_ROLE",
"family": "upshot-appchain-staging",
"requiresCompatibilities": [
"FARGATE"
],
"networkMode": "awsvpc",
"cpu": "512",
"memory": "1024"
}

0 comments on commit f92f4b0

Please sign in to comment.