<aside> 🔥 filepath : .github/workflows/{파일 이름}.yml
</aside>
name: recode-be build and push Docker Image to ECR
on:
push:
branches: ["main"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Login to AWS ECR
run: |
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 ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 699926146296.dkr.ecr.ap-northeast-2.amazonaws.com
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Set Date Time
run: echo "DATE_TIME=$(TZ=Asia/Seoul date '+%Y-%m-%d_%H-%M-%S')" >> $GITHUB_ENV
- name: Build and Push to ECR
uses: docker/build-push-action@v5
with:
context: .
file: .github/workflows/Dockerfile
push: true
tags: 699926146296.dkr.ecr.ap-northeast-2.amazonaws.com/recode-be:${{ env.DATE_TIME }}
- name: Upload to S3
run: |
touch docker-stop.sh
echo '[ -z "$(docker ps -q)" ] || docker stop "$(docker ps -q)"' >> docker-stop.sh
touch deploy-be.sh
echo "aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 699926146296.dkr.ecr.ap-northeast-2.amazonaws.com" >> deploy-be.sh
echo "docker pull 699926146296.dkr.ecr.ap-northeast-2.amazonaws.com:"${{ env.DATE_TIME }} >> deploy-be.sh
echo "docker run -d -v properties:/recode-be/resources -p 8080:8080 699926146296.dkr.ecr.ap-northeast-2.amazonaws.com/recode-be:"${{ env.DATE_TIME }} >> deploy-be.sh
zip archive-${{ env.DATE_TIME }}.zip docker-stop.sh deploy-be.sh appspec.yml
aws s3 cp archive-${{ env.DATE_TIME }}.zip s3://abo2-recode/recode-be/ --region ap-northeast-2
- name: Deploy to EC2 using CodeDeploy
run: |
aws deploy create-deployment \
--application-name recode \
--deployment-group-name recode-be \
--region ap-northeast-2 \
--s3-location bucket=abo2-recode,key=recode-be/archive-${{ env.DATE_TIME }}.zip,bundleType=zip
name: recode-fe build and push Docker Image to ECR
on:
push:
branches: ["main"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Login to AWS ECR
run: |
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 ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 699926146296.dkr.ecr.ap-northeast-2.amazonaws.com
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Set Date Time
run: echo "DATE_TIME=$(TZ=Asia/Seoul date '+%Y-%m-%d_%H-%M-%S')" >> $GITHUB_ENV
- name: Build and Push to ECR
uses: docker/build-push-action@v5
with:
context: .
file: .github/workflows/Dockerfile
push: true
tags: 699926146296.dkr.ecr.ap-northeast-2.amazonaws.com/recode-fe:${{ env.DATE_TIME }}
- name: Upload to S3
run: |
touch docker-stop.sh
echo '[ -z "$(docker ps -q)" ] || docker stop "$(docker ps -q)"' >> docker-stop.sh
touch deploy.sh
echo "aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 699926146296.dkr.ecr.ap-northeast-2.amazonaws.com" >> deploy.sh
echo "docker pull 699926146296.dkr.ecr.ap-northeast-2.amazonaws.com:"${{ env.DATE_TIME }} >> deploy.sh
echo "docker run -d -v config:/etc/nginx/conf.d -p 80:80 699926146296.dkr.ecr.ap-northeast-2.amazonaws.com/recode-fe:"${{ env.DATE_TIME }} >> deploy.sh
zip archive-${{ env.DATE_TIME }}.zip docker-stop.sh deploy.sh appspec.yml
aws s3 cp archive-${{ env.DATE_TIME }}.zip s3://abo2-recode/recode-fe/ --region ap-northeast-2
- name: Deploy to EC2 using CodeDeploy
run: |
aws deploy create-deployment \
--application-name recode \
--deployment-group-name recode-fe \
--region ap-northeast-2 \
--s3-location bucket=abo2-recode,key=recode-fe/archive-${{ env.DATE_TIME }}.zip,bundleType=zip