Skip to content

Deploy to AWS ECR(Guest Docker Image v.test) by @DongwookKim0823 #33

Deploy to AWS ECR(Guest Docker Image v.test) by @DongwookKim0823

Deploy to AWS ECR(Guest Docker Image v.test) by @DongwookKim0823 #33

Workflow file for this run

name: Guest DEV Docker Push
run-name: Deploy to AWS ECR(Guest Docker Image v.${{ github.event.inputs.docker_image_tag }}) by @${{ github.actor }}
on:
workflow_dispatch:
inputs:
docker_image_tag:
description: '이전 버전과 다른 상위 버전을 입력해주세요. (ex. 1.0.0)'
default: '1.0.0'
required: true
type: string
permissions:
users:
- saJaeHyukc
- DongwookKim0823
jobs:
guest-docker-push:
runs-on: ubuntu-latest
if: github.repository == 'mung-manager/guest-be'
steps:
# 1. Checkout the repository
- name: Checkout code
uses: actions/checkout@v3
# 2. Create environment file
- name: Create env file
env:
DJANGO_GUEST_ENV: ${{ secrets.DJANGO_GUEST_ENV }}
run: |
touch .env.guest
echo "$DJANGO_GUEST_ENV" >> .env.guest
# 3. Configure AWS credentials
- name: AWS configure
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
# 4. Login to Amazon ECR Public
- name: Login to Amazon ECR Public
id: login-ecr-public
uses: aws-actions/amazon-ecr-login@v2
with:
registry-type: public
# 5. Build and push Docker image
- name: Build and push
id: build-and-push
uses: docker/build-push-action@v5
with:
context: .
file: ./docker/dev.Dockerfile
platforms: linux/x86_64
push: true
tags: |
${{ steps.login-ecr-public.outputs.registry }}/${{ secrets.ECR_PUBLIC_REGISTRY_ALIAS }}/mung_manager_dev_guest:${{ github.event.inputs.docker_image_tag }}
${{ steps.login-ecr-public.outputs.registry }}/${{ secrets.ECR_PUBLIC_REGISTRY_ALIAS }}/mung_manager_dev_guest:latest
# 6. Trigger Infra Repository Dispatch
- name: Infra Repository Dispatch
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.OWNER_ACCESS_TOKEN }}
repository: mung-manager/infra-be
event-type: guest-deploy
client-payload: |
{
"partner_docker_image": "${{ steps.login-ecr-public.outputs.registry }}/${{ secrets.ECR_PUBLIC_REGISTRY_ALIAS }}/mung_manager_dev_partner",
"admin_docker_image": "${{ steps.login-ecr-public.outputs.registry }}/${{ secrets.ECR_PUBLIC_REGISTRY_ALIAS }}/mung_manager_dev_admin",
"guest_docker_image": "${{ steps.login-ecr-public.outputs.registry }}/${{ secrets.ECR_PUBLIC_REGISTRY_ALIAS }}/mung_manager_dev_guest",
"guest_image_tag": "${{ github.event.inputs.docker_image_tag }}",
"s3_bucket": "mung-manager-deploy/dev/guest/",
"actor": "${{ github.actor }}",
"branch": "${{ github.ref }}",
"django_settings_module": "config.django.dev"
}
# 7. Notify Slack
- name: Notify Slack on Success
if: success()
id: slack-success
uses: slackapi/[email protected]
with:
payload: |
{
"channel": "${{ secrets.SLACK_CHANNEL_ID }}",
"attachments": [
{
"color": "#36a64f",
"title": "${{ github.repository }}",
"title_link": "https://github.com/${{github.repository}}",
"text": "GitHub Action guest DEV-DOCKER-PUSH 성공 😄",
"fields": [
{
"title": "Repository",
"value": "${{ github.repository }}",
"short": true
},
{
"title": "Tag",
"value": "${{ github.ref_name }}",
"short": true
}
]
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
- name: Notify Slack on Failure
if: failure()
id: slack-failure
uses: slackapi/[email protected]
with:
payload: |
{
"channel": "${{ secrets.SLACK_CHANNEL_ID }}",
"attachments": [
{
"color": "#ff0000",
"title": "${{ github.repository }}",
"title_link": "https://github.com/${{github.repository}}",
"text": "GitHub Action guest DEV-DOCKER-PUSH 실패 😭",
"fields": [
{
"title": "Repository",
"value": "${{ github.repository }}",
"short": true
},
{
"title": "Tag",
"value": "${{ github.ref_name }}",
"short": true
}
]
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK