cors 설정 수정 #23
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: CI/CD with Maven and Docker | |
| on: | |
| push: | |
| branches: [ "master" ] | |
| jobs: | |
| build-and-deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout source | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| cache: maven | |
| - name: Grant execute permission to mvnw | |
| run: chmod +x mvnw | |
| - name: Build JAR with Maven Wrapper | |
| run: ./mvnw package -DskipTests | |
| - name: Set environment variables (IMAGE_NAME, VERSION) | |
| run: | | |
| VERSION=$(echo "${{ github.sha }}" | cut -c1-7) | |
| echo "VERSION=$VERSION" >> $GITHUB_ENV | |
| echo "IMAGE_NAME=jermany17/another-web-project" >> $GITHUB_ENV | |
| - name: Set up Docker | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to DockerHub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| - name: Build Docker image | |
| run: docker build -t ${{ env.IMAGE_NAME }}:${{ env.VERSION }} . | |
| - name: Push Docker image | |
| run: docker push ${{ env.IMAGE_NAME }}:${{ env.VERSION }} | |
| - name: Deploy to EC2 via SSH | |
| uses: appleboy/ssh-action@v1.0.3 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ubuntu | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| script: | | |
| docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
| docker pull ${{ env.IMAGE_NAME }}:${{ env.VERSION }} | |
| docker stop app || true && docker rm app || true | |
| docker run -d --restart unless-stopped --name app --env-file .env -p 8080:8080 ${{ env.IMAGE_NAME }}:${{ env.VERSION }} | |