CD test #61
Workflow file for this run
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: CD (docker -> EC2) | |
| on: | |
| pull_request: | |
| branches: [ "develop" ] | |
| push: | |
| branches: [ "develop", "main" ] | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out the repository | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v2 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Grant execute permission for gradlew | |
| run: chmod +x ./gradlew | |
| # Gradle 셋팅 | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0 | |
| # 빌드 | |
| - name: Build with Gradle Wrapper | |
| run: ./gradlew clean build -x test | |
| # 도커 로그인 | |
| - name: docker login | |
| uses: docker/login-action@v2 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| # jar 이미지 빌드 | |
| - name: Build the Docker image | |
| run: docker build . -t ${{ secrets.DOCKERHUB_USERNAME }}/greening | |
| # jar 이미지 push | |
| - name: Push Docker image to Docker Hub | |
| run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/greening | |
| deploy: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Deploy to AWS via SSH | |
| uses: appleboy/ssh-action@v0.1.10 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| script: | | |
| sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p${{ secrets.DOCKERHUB_TOKEN }} | |
| sudo docker compose down | |
| sudo docker container prune -f | |
| sudo docker rmi ${{ secrets.DOCKERHUB_USERNAME }}/greening:latest | |
| sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/greening | |
| sudo docker compose up -d --build | |
| # deploy: | |
| # needs: build | |
| # runs-on: ubuntu-latest | |
| # | |
| # steps: | |
| # - name: Deploy to AWS via SSH | |
| # uses: appleboy/ssh-action@v0.1.10 | |
| # with: | |
| # host: ${{ secrets.EC2_HOST }} | |
| # username: ${{ secrets.EC2_USER }} | |
| # key: ${{ secrets.EC2_SSH_KEY }} | |
| # script: | | |
| # sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p${{ secrets.DOCKERHUB_TOKEN }} | |
| # sudo docker stop greening-server || true | |
| # sudo docker container prune -f | |
| # sudo docker rmi ${{ secrets.DOCKERHUB_USERNAME }}/greening:latest | |
| # sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/greening | |
| # sudo docker run -d --log-driver=syslog \ | |
| # -e TZ=Asia/Seoul \ | |
| # -p 8080:8080 --name greening-server \ | |
| # -e "REDIS_SERVER=${{ secrets.REDIS_SERVER }}" \ | |
| # -e "DB_URL=${{ secrets.DB_URL }}" \ | |
| # -e "DB_USERNAME=${{ secrets.DB_USERNAME }}" \ | |
| # -e "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" \ | |
| # -e "JWT_SECRET=${{ secrets.JWT_SECRET }}" \ | |
| # -e "KAKAO_CLIENT_ID=${{ secrets.KAKAO_CLIENT_ID }}" \ | |
| # -e "GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }}" \ | |
| # -e "GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }}" \ | |
| # -e "S3_REGION=${{ secrets.S3_REGION }}" \ | |
| # -e "S3_BUCKET=${{ secrets.S3_BUCKET }}" \ | |
| # -e "S3_STORAGE_ACCESS_KEY=${{ secrets.S3_STORAGE_ACCESS_KEY }}" \ | |
| # -e "S3_STORAGE_SECRET_KEY=${{ secrets.S3_STORAGE_SECRET_KEY }}" \ | |
| # -e "S3_BASE_URL=${{ secrets.S3_BASE_URL }}" \ | |
| # ${{ secrets.DOCKERHUB_USERNAME }}/greening |