Skip to content

update

update #23

Workflow file for this run

name: Deployment
on:
push:
branches: [ main ]
jobs:
build_and_publish:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Configure AWS credentials from Test account
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-1
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
with:
mask-password: 'true'
- name: Build, tag and publish
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: django-images
IMAGE_TAG: latest
run: |
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
- name: Pull And Run
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
IMAGE_REMOTE_URI: ${{ steps.login-ecr.outputs.registry }}/django-images
run: |
echo "${{ secrets.SSH_KEY }}" > dev.key
chmod 600 dev.key
echo BE_IMAGE="${{ env.IMAGE_REMOTE_URI }}:latest" >> .env
scp -i dev.key -o StrictHostKeyChecking=no docker-compose.deploy.yml ec2-user@${{ secrets.INSTANCE_IP_ADDRESS }}:./
scp -i dev.key -o StrictHostKeyChecking=no .env ec2-user@${{ secrets.INSTANCE_IP_ADDRESS }}:./
ssh -i dev.key -o StrictHostKeyChecking=no ec2-user@${{ secrets.INSTANCE_IP_ADDRESS }} << 'ENDSSH'
ls
cat .env
aws configure set aws_access_key_id "${{ secrets.AWS_ACCESS_KEY_ID }}"
aws configure set aws_secret_access_key "${{ secrets.AWS_SECRET_ACCESS_KEY }}"
aws configure set region "eu-west-1"
aws configure set output "text"
aws ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin ${{ env.ECR_REGISTRY }}
docker pull ${{ env.IMAGE_REMOTE_URI }}:latest
source .env
docker-compose -f docker-compose.deploy.yml up -d
ENDSSH