Contributing guide 업로드 #53
This file contains hidden or 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: FortuneMon dev CI/CD Pipeline | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| # 코드 체크아웃 | |
| - name: Checkout repository | |
| uses: actions/checkout@v2 | |
| # JDK 설치 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v1 | |
| with: | |
| java-version: 17 | |
| # application.yml 만들기 | |
| - name: Ensure resource directory exists | |
| run: mkdir -p src/main/resources | |
| - name: generate application.yml file | |
| env: | |
| APP_YML: ${{ secrets.PROPERTIES }} | |
| run: | | |
| cd ./src/main/resources | |
| echo "$APP_YML" > application.yml | |
| # Gradle Build | |
| - name: Grant execute permission for gradlew | |
| run: chmod +x ./gradlew | |
| - name: Build with Gradle | |
| run: ./gradlew build | |
| # DockerHub 로그인 | |
| - name: Login to DockerHub | |
| uses: docker/login-action@v1 | |
| with: | |
| username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
| password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | |
| # DockerHub Push | |
| - name: Build and Push Docker image | |
| run: | | |
| docker build -t ${{ secrets.DOCKER_HUB_USERNAME }}/fortunemon-app-dev . | |
| docker push ${{ secrets.DOCKER_HUB_USERNAME }}/fortunemon-app-dev | |
| deploy: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| # 🔍 1. 시크릿 키 앞부분 출력 (마스킹된 상태 확인) | |
| - name: debugging key | |
| run: | | |
| echo "${{ secrets.EC2_SSH_KEY }}" | head -n 5 | |
| # ✅ 2. 실제 SSH로 접속 시도해보기 (성공 여부 확인) | |
| - name: Raw SSH 연결 테스트 | |
| run: | | |
| echo "${{ secrets.EC2_SSH_KEY }}" > key.pem | |
| chmod 400 key.pem | |
| ssh -v -o StrictHostKeyChecking=no -i key.pem ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} "echo ✅ SSH 연결 성공" | |
| # 🚀 3. (성공 시에만) appleboy로 본격 배포 | |
| - name: SSH to EC2 and deploy | |
| uses: appleboy/ssh-action@v0.1.4 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| debug: true | |
| script: | | |
| cd fortunemon | |
| sudo docker-compose stop | |
| sudo docker-compose rm -f | |
| sudo docker rmi mino999/fortunemon-app-dev:latest | |
| sudo docker-compose up -d | |