chore: 빌드 태스크 수정 #29
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: ec2-pipeline.yml | |
| on: | |
| push: | |
| branches: [ main ] | |
| env: | |
| APP_NAME : right | |
| BUILD_NAME : right | |
| permissions: | |
| contents: read | |
| jobs: | |
| ec2-deploy: | |
| runs-on: ubuntu-latest | |
| services: | |
| mongo: | |
| image: mongo:latest | |
| ports: | |
| - 27017:27017 | |
| options: --health-cmd="mongosh --eval 'db.adminCommand(\"ping\")'" --health-interval=10s --health-timeout=5s --health-retries=5 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Set up secret.yml | |
| env: | |
| APPLICATION_SECRET_CONTENT: ${{ secrets.APPLICATION_SECRET }} | |
| run: | | |
| cd ./src/main/resources | |
| touch ./application-secret.yml | |
| echo "$APPLICATION_SECRET_CONTENT" > ./application-secret.yml | |
| ls -a . | |
| - name: firebase_service_key.json 구성 | |
| run: | | |
| cd ./src/main/resources | |
| cat > ./firebase_service_key.json << 'EOF' | |
| ${{ secrets.FCM_KEY }} | |
| EOF | |
| ls -a . | |
| - name: Grant execute permission for Gradle | |
| run: chmod +x ./gradlew | |
| - name: Run asciidoc mv static/html | |
| run: | | |
| mkdir -p build/generated-snippets | |
| ./gradlew asciidoctor -x test | |
| - name: PR and PUSH Test Verification | |
| run: ./gradlew build -x test | |
| - name: Docker push image | |
| run: | | |
| docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
| docker build --platform linux/amd64 -t app . | |
| docker tag app ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }}:latest | |
| docker push ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }}:latest | |
| - name: AWS deploy | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_KEY }} | |
| script: | | |
| sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }}:latest | |
| sudo docker stop right || true | |
| sudo docker rm right || true | |
| sudo docker run -v /home/${{ secrets.EC2_USER }}/elk/logs:/logs -d --log-driver=syslog -p 443:8080 --name right --network right-network -e spring.profiles.active=release -e TZ=Asia/Seoul ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }}:latest | |
| sudo docker container prune -f | |
| sudo docker image prune -f | |
| sudo docker images ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }} -q | awk 'NR>1' | xargs -r sudo docker rmi -f |