Skip to content

Hotfix: public 폴더 (#13) #4

Hotfix: public 폴더 (#13)

Hotfix: public 폴더 (#13) #4

Workflow file for this run

on:
push:
branches: ["develop"]
workflow_dispatch:
env:
VERSION: ${{github.sha}}
ECR_URI: 381491925979.dkr.ecr.ap-northeast-2.amazonaws.com/jabiseo-front # docker ecr 주소
NAME: jabiseo-web # docker service name
jobs:
docker-build:
runs-on: ubuntu-20.04
outputs:
COMMIT_MESSAGE: ${{steps.valueSetting.outputs.COMMIT_MESSAGE}}
AUTHOR: ${{steps.valueSetting.outputs.AUTHOR}}
DOCKER_TAG: ${{steps.setUpDockerTag.outputs.DOCKER_TAG}}
steps:
- uses: actions/checkout@v3
- name: set environtment
id: valueSetting
run: |
COMMIT_MESSAGE=$(git log -1 --format='%s' ${{ github.sha }})
AUTHOR=$(git log -1 --format='%an' ${{ github.sha }})
echo "COMMIT_MESSAGE=${COMMIT_MESSAGE}" >> $GITHUB_ENV
echo "AUTHOR=${AUTHOR}" >> $GITHUB_ENV
echo "COMMIT_MESSAGE=${COMMIT_MESSAGE}" >> $GITHUB_OUTPUT
echo "AUTHOR=${AUTHOR}" >> $GITHUB_OUTPUT
- name: Deploy start send message
uses: jabiseo/slack-custom-bot@main
with:
mode: DEPLOY
channelId: "${{ secrets.NOTI_CHANNEL_ID }}"
text: "개발서버 Deploy 시작"
statusColor: "#ebe834"
env:
SLACK_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
SHA: ${{env.VERSION}}
COMMIT_MESSAGE: ${{env.COMMIT_MESSAGE}}
AUTHOR: ${{env.AUTHOR}}
DOCKER_IMAGE: "Before build"
- name: save into application.properties
env:
DEV_VARIABLES: ${{ toJson(secrets) }}
run: |
echo "$DEV_VARIABLES" | jq -r 'to_entries |
map(select(.key | startswith("DEV_")))[] | "\(.key | sub("^DEV_"; ""))=\(.value)"' > .env
- name: setup dockerImage name
id: setUpDockerTag
run: |
git fetch --tags
GIT_TAG=$(git tag --sort=committerdate | tail -1 )
if [ -z "$GIT_TAG" ]; then
GIT_TAG="v0.0.0"
fi
DATE=$(date +'%Y%m%d')
COMMIT_SHA=$(git rev-parse --short HEAD)
DOCKER_TAG="${GIT_TAG}-${DATE}-${COMMIT_SHA}"
DOCKER_IMAGE="${{env.ECR_URI}}:${DOCKER_TAG}"
echo "dockerTag=${DOCKER_TAG}"
echo "DOCKER_IMAGE=${DOCKER_IMAGE}"
echo "DOCKER_TAG=${DOCKER_TAG}" >> $GITHUB_ENV
echo "DOCKER_TAG=${DOCKER_TAG}" >> $GITHUB_OUTPUT
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ECR_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_ECR_SECRET_KEY }}
aws-region: ap-northeast-2
- name: Set Up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: Cache Docker Layer
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache # cache의 대상을 정한다.
key: "${{runner.os}}-buildx-${{env.version}}"
restore-keys: |
${{ runner.os }}-buildx-
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: build and push
uses: docker/build-push-action@v4
with:
context: .
builder: ${{steps.buildx.outputs.name}}
push: true
tags: "${{env.ECR_URI}}:${{env.DOCKER_TAG}}"
deploy:
needs:
- docker-build
name: Deploy
runs-on: [self-hosted, fe-dev]
env:
DOCKER_TAG: ${{needs.docker-build.outputs.DOCKER_TAG}}
steps:
- name: checkout
uses: actions/checkout@v3
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ECR_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_ECR_SECRET_KEY }}
aws-region: ap-northeast-2
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: Execute
id: execute
run: |
docker stop ${{env.NAME}} && docker rm ${{env.NAME}}
docker run -d -p 3000:3000 --name ${{env.NAME}} --network jabiseo-dev "${{env.ECR_URI}}:${{env.DOCKER_TAG}}"
result-send-sucess:
needs:
- docker-build
- deploy
runs-on: ubuntu-20.04
env:
DOCKER_TAG: ${{needs.docker-build.outputs.DOCKER_TAG}}
AUTHOR: ${{needs.docker-build.outputs.AUTHOR}}
COMMIT_MESSAGE: ${{needs.docker-build.outputs.COMMIT_MESSAGE}}
if: success()
steps:
- name: send result when success
uses: jabiseo/slack-custom-bot@main
with:
mode: DEPLOY
channelId: "${{ secrets.NOTI_CHANNEL_ID }}"
text: "개발서버 FE 배포 성공"
statusColor: "#6eeb34"
env:
SLACK_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
SHA: ${{env.VERSION}}
COMMIT_MESSAGE: ${{env.COMMIT_MESSAGE}}
AUTHOR: ${{env.AUTHOR}}
DOCKER_IMAGE: ${{env.DOCKER_TAG}}
result-send-failure:
needs:
- docker-build
- deploy
runs-on: ubuntu-20.04
env:
DOCKER_TAG: ${{needs.docker-build.outputs.DOCKER_TAG}}
AUTHOR: ${{needs.docker-build.outputs.AUTHOR}}
COMMIT_MESSAGE: ${{needs.docker-build.outputs.COMMIT_MESSAGE}}
if: failure()
steps:
- name: send result when failure
uses: jabiseo/slack-custom-bot@main
with:
mode: DEPLOY
channelId: "${{ secrets.NOTI_CHANNEL_ID }}"
text: "개발서버 FE 배포 실패"
statusColor: "#eb3434"
env:
SLACK_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
SHA: ${{env.VERSION}}
COMMIT_MESSAGE: ${{env.COMMIT_MESSAGE}}
AUTHOR: ${{env.AUTHOR}}
DOCKER_IMAGE: ${{env.DOCKER_TAG}}