chore: cicd 파이프라인 구축 #49
Workflow file for this run
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: backend cicd dev | |
on: | |
push: | |
branches: | |
- develop | |
paths: | |
- backend/** | |
pull_request: | |
branches: | |
- develop | |
paths: | |
- backend/** | |
env: | |
DOCKERHUB_REPOSITORY: ody-official | |
DOCKER_CONTAINER_NAME: ody-backend | |
jobs: | |
build-and-push: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: backend | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: develop | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0 | |
- name: Clean Build With Gradle Wrapper | |
run: ./gradlew clean build | |
- name: Setup Docker Buildx | |
uses: docker/[email protected] | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Docker Image Build And Push | |
run: docker build --platform linux/arm64 -t ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }} -f Dockerfile . --push | |
pull-and-deploy: | |
needs: build-and-push | |
runs-on: self-hosted | |
steps: | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Pull Docker Image | |
run: docker pull --platform linux/arm64 ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }} | |
- name: Set up Container And Run Docker Image | |
run: | | |
docker image prune -a -f | |
docker stop $DOCKER_CONTAINER_NAME || true | |
docker rm $DOCKER_CONTAINER_NAME || true | |
docker run -d --platform linux/arm64 --name $DOCKER_CONTAINER_NAME -p 80:8080 ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }} | |
- name: Check Docker Process | |
run: docker ps |