Create README.md #8
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: Server CI/CD | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| job: | |
| name: 서버 재배포 | |
| runs-on: ubuntu-latest | |
| environment: dev | |
| steps: | |
| - name: 체크 아웃 | |
| uses: actions/checkout@v3 | |
| - name: JDK 17 설치 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: application.yml 정보 넣기 | |
| run: | | |
| mkdir -p src/main/resources | |
| echo "${{ secrets.APPLICATION_YML }}" | base64 --decode > src/main/resources/application.yml | |
| cat src/main/resources/application.yml | |
| - name: 구글 키 정보 넣기 | |
| run: | | |
| echo "${{ secrets.GOOGLE_KEY_JSON }}" | base64 --decode > src/main/resources/service-account-key.json | |
| cat src/main/resources/service-account-key.json | |
| - name: Gradle Caching | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: ubuntu-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ubuntu-gradle- | |
| - name: Grant Permission Gradlew | |
| run: chmod +x ./gradlew | |
| - name: build 실행 (클린 빌드, 테스트 제외) | |
| run: ./gradlew clean build -x test | |
| - name: 실행 jar 파일 복사 | |
| run: cp build/libs/server-0.0.1-SNAPSHOT.jar ./ | |
| - name: 기존 서버 내 jar 파일 삭제 | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.AWS_SSH_HOST }} | |
| username: ${{ secrets.AWS_SSH_USERNAME }} | |
| key: ${{ secrets.AWS_SSH_KEY }} | |
| port: ${{ secrets.AWS_SSH_PORT }} | |
| script: | | |
| rm -f ~/docker/server/server-0.0.1-SNAPSHOT.jar | |
| - name: jar 파일 운영 서버 전송 | |
| uses: appleboy/scp-action@master | |
| with: | |
| host: ${{ secrets.AWS_SSH_HOST }} | |
| username: ${{ secrets.AWS_SSH_USERNAME }} | |
| key: ${{ secrets.AWS_SSH_KEY }} | |
| port: ${{ secrets.AWS_SSH_PORT }} | |
| source: "server-0.0.1-SNAPSHOT.jar" | |
| target: "~/docker/server" | |
| - name: 이미지 새로 build 및 docker 서버 재실행 | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.AWS_SSH_HOST }} | |
| username: ${{ secrets.AWS_SSH_USERNAME }} | |
| key: ${{ secrets.AWS_SSH_KEY }} | |
| port: ${{ secrets.AWS_SSH_PORT }} | |
| script: | | |
| cd ~/docker | |
| docker-compose up --build -d server |