Deploy to AWS ECR(Guest Docker Image v.test) by @DongwookKim0823 #33
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: 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 |