[feat] farm, community 오픈 페인 적용 #89
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: ModernFarmer CI/CD | |
on: | |
push: | |
branches: ["feature_32/계정-삭제-api"] | |
pull_request: | |
branches: ["dev"] | |
permissions: | |
contents: read | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
# 기본 체크아웃 | |
- name: Checkout | |
uses: actions/checkout@v3 | |
# JDK version 설정 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '11' | |
distribution: 'temurin' | |
# 그래들 캐싱 | |
- name: Gradle Caching | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
#gradle 권한 추가 | |
- name: Grant Execute Permission For Gradlew | |
run: chmod +x gradlew | |
# main 설정 파일 생성 및 write | |
- name: Set .yml for main | |
run: | | |
# main 설정 파일 디렉토리로 이동 | |
mkdir ./src/main/resources | |
cd ./src/main/resources | |
touch ./application.yml | |
echo "${{ secrets.PROPERTIES_YML }}" > ./application.yml | |
shell: bash | |
# 빌드(테스트 스킵) | |
- name: Build with Gradle | |
run: ./gradlew build -x test | |
# Spring 어플리케이션 Docker Image 빌드 | |
- name: Build Docker Image For Spring | |
run: | | |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
docker build -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:1.0 . | |
docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:1.0 | |
# 서버에서 Docker 이미지 실행 | |
- name: EC2 Docker Run | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.EC2_HOST }} | |
username: ubuntu | |
key: ${{ secrets.EC2_PRIVATE_KEY }} | |
script: | | |
docker stop ModernFarmerUser | |
docker rm ModernFarmerUser | |
docker rmi ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:1.0 | |
docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:1.0 | |
docker run -d -p 8081:8081 --name ModernFarmerUser ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:1.0 |