#41 feat: cors 해제 #84
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: Java CI with Gradle | |
| # 0. workflow 실행 트리거 | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| jobs: | |
| # 1. 빌드 | |
| build: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| # 1-1. repository checkout | |
| - uses: actions/checkout@v4 | |
| # 1-2. jdk 환경 설치 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| # 1-3. '*.yml' 파일 세팅 | |
| - name: application.yml 파일 설정 | |
| run: | | |
| mkdir -p src/main/resources | |
| mkdir -p src/test/resources | |
| echo "${{ secrets.APPLICATION_YML }}" > ./src/main/resources/application.yml | |
| echo "${{ secrets.TEST_APPLICATION_YML }}" > ./src/test/resources/application.yml | |
| # 1-4. gradle 환경 설치 | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 | |
| # 1-5. 빌드 | |
| - name: Build with Gradle Wrapper | |
| run: ./gradlew clean build | |
| # 1-6. 도커 이미지 빌드 및 이미지 게시 | |
| - name: build docker image & push image to docker hub | |
| run: | | |
| docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
| docker build -f Dockerfile -t ${{ secrets.DOCKER_USERNAME }}/stockport . | |
| docker push ${{ secrets.DOCKER_USERNAME }}/stockport | |
| # 2. 배포 | |
| deploy: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| # 2-1. EC2 서버 접속 및 도커 작업 처리 | |
| - name: SSH로 EC2에 접속하여 도커 작업 처리하기 | |
| uses: appleboy/ssh-action@master | |
| with: | |
| host: ${{ secrets.SERVER_IP }} | |
| username: ${{ secrets.SSH_USER }} | |
| key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| script_stop: true | |
| script: | | |
| docker stop $(docker ps -a -q) | |
| docker rm $(docker ps -a -q) | |
| docker pull ${{ secrets.DOCKER_USERNAME }}/stockport | |
| docker run -d -p 8080:8080 --name cicdtestcontainer ${{ secrets.DOCKER_USERNAME }}/stockport | |
| docker image prune -f |