Skip to content

Workflow file for this run

name: Build docker image and deploy to CodeDeploy
on:
push:
branches:
- LISK-1130-Update-CD-to-be-push-based
jobs:
docker:
name: Build and push docker image
runs-on: ubuntu-latest
environment: ${{ github.ref_name }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@0e613a0980cbf65ed5b322eb7a1e075d28913a83
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@62f4f872db3836360b72999f4b87f1ff13310f3a
- name: Docker image
id: docker-image
run: |
echo "image=${{ steps.login-ecr.outputs.registry }}/${{ secrets.ECR_REPOSITORY }}" >> $GITHUB_OUTPUT
- name: Build and push the image
uses: docker/build-push-action@v6
id: docker-build
with:
context: ./
file: ./Dockerfile
push: true
tags: |
${{ steps.docker-image.outputs.image }}:latest
${{ steps.docker-image.outputs.image }}:${{ github.sha }}
- name: Create AppSpec content
run: |
echo '{
"version": 0.0,
"Resources": [
{
"i-08a0817b53b23613f": {
"Type": "AWS::EC2::Instance",
"Properties": {
"Image": "${{ steps.docker-image.outputs.image }}:latest"
}
}
}
]
}' > appspec.json
- name: Deploy to CodeDeploy
run: |
aws deploy create-deployment \
--application-name lisk-across-relayer \
--deployment-group-name dev-lisk-across-relayer-group \
--revision "revisionType=AppSpecContent,appSpecContent={\"content\":$(cat appspec.json)}" \
--description "Deploying Across Relayer Docker image to EC2 instance"