Merge pull request #6 from junho100/dis #41
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: Docker Build, Push to ECR, and Deploy to Private EC2 | |
on: | |
push: | |
branches: ["master"] | |
env: | |
AWS_REGION: ap-northeast-2 | |
ECR_REPOSITORY: ${{ secrets.ECR_REPOSITORY }} | |
jobs: | |
build-push-deploy: | |
name: Build, Push, and Deploy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Configure AWS credentials | |
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: ${{ env.AWS_REGION }} | |
- name: Login to Amazon ECR | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v1 | |
- name: Create .env file | |
run: | | |
echo "DB_HOST=${{ secrets.DB_HOST }}" >> .env | |
echo "DB_USERNAME=${{ secrets.DB_USERNAME }}" >> .env | |
echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> .env | |
echo "DB_NAME=${{ secrets.DB_NAME }}" >> .env | |
echo "JWT_SECRET=${{ secrets.JWT_SECRET }}" >> .env | |
echo "YOUTUBE_API_KEY=${{ secrets.YOUTUBE_API_KEY }}" >> .env | |
echo "REDIS_ADDR=${{ secrets.REDIS_ADDR }}" >> .env | |
echo "SCHOOL_NOTICE_URL=${{ secrets.SCHOOL_NOTICE_URL }}" >> .env | |
echo "DEPT_NOTICE_URL_1=${{ secrets.DEPT_NOTICE_URL_1 }}" >> .env | |
echo "DEPT_NOTICE_URL_2=${{ secrets.DEPT_NOTICE_URL_2 }}" >> .env | |
echo "DEPT_NOTICE_URL_3=${{ secrets.DEPT_NOTICE_URL_3 }}" >> .env | |
- name: Build, tag, and push image to Amazon ECR | |
id: build-image | |
env: | |
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} | |
IMAGE_TAG: ${{ github.sha }} | |
run: | | |
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG -t $ECR_REGISTRY/$ECR_REPOSITORY:latest . | |
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG | |
docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest | |
echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" | |
- name: Create deploy.zip | |
run: | | |
zip deploy.zip deploy.sh appspec.yml | |
- name: Upload deploy.zip to S3 | |
run: | | |
aws s3 cp deploy.zip s3://${{ secrets.S3_BUCKET }}/deploy.zip | |
- name: Create CodeDeploy Deployment | |
run: | | |
aws deploy create-deployment \ | |
--application-name ${{ secrets.APPLICATION_NAME }} \ | |
--deployment-group-name ${{ secrets.DEPLOYMENT_GROUP_NAME }} \ | |
--s3-location bucket=${{ secrets.S3_BUCKET }},key=deploy.zip,bundleType=zip |