Skip to content

{Fix} - CD 파이프라인 수정 #95

{Fix} - CD 파이프라인 수정

{Fix} - CD 파이프라인 수정 #95

Workflow file for this run

name: Mobydick CD
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
- name: Create application.yml
if: contains(github.ref, 'master')
shell: bash
run: |
mkdir ./src/main/resources
cd ./src/main/resources
touch ./application.yml
echo "${{ secrets.CONFIG }}" > ./application.yml
- name: Gradle Build
run: |
chmod +x ./gradlew
./gradlew clean build
- name: Docker Build
if: contains(github.ref, 'master')
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker build -f Dockerfile -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE }} .
docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE }}
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: AWS Deploy
uses: appleboy/[email protected]
id: deploy-prod
if: contains(github.ref, 'master')
with:
host: ${{ secrets.HOST_PROD }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.PRIVATE_KEY }}
port: 22
timeout: 40s
envs: GITHUB_SHA
script: |
sudo docker ps -q --filter 'name=${{ secrets.CONTAINER_NAME }}' | xargs -r docker stop
sudo docker ps -aq --filter 'name=${{ secrets.CONTAINER_NAME }}' | xargs -r docker rm
sudo docker image pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE }}
sudo docker run -d --name ${{ secrets.CONTAINER_NAME }} -p 3034:3034 --restart on-failure:5 --net mobydick ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE }}