1212
1313 steps :
1414 - uses : actions/checkout@v4
15+
1516 - name : Set up JDK 21
1617 uses : actions/setup-java@v4
1718 with :
@@ -21,19 +22,27 @@ jobs:
2122
2223 - name : Build with Maven
2324 run : mvn clean install
25+
26+ - name : Set up QEMU for multi-arch
27+ uses : docker/setup-qemu-action@v2
28+
29+ - name : Set up Docker Buildx
30+ uses : docker/setup-buildx-action@v2
31+
2432 - name : Log in to Docker Hub
2533 uses : docker/login-action@v3
2634 with :
2735 username : ${{ secrets.DOCKER_USERNAME }}
2836 password : ${{ secrets.DOCKER_PASSWORD }}
2937
30- - name : Build & push Docker image
38+ - name : Build & push multi arch Docker image
3139 uses : docker/build-push-action@v6
3240 with :
3341 context : .
3442 file : ./Dockerfile
3543 push : true
3644 tags : docker.io/dewmink/embula-backend:latest
45+ platforms : linux/amd64,linux/arm64
3746
3847 - name : Deploy to EC2
3948 uses : appleboy/ssh-action@v0.1.7
4756 docker stop embula-backend || true
4857 docker rm embula-backend || true
4958 docker run -d --name embula-backend -p 8081:8081 -e MYSQL_URL="$MYSQL_URL" -e MYSQL_USERNAME="$MYSQL_USERNAME" -e MYSQL_PASSWORD="$MYSQL_PASSWORD" -e JWT_SECRET="$JWT_SECRET" -e TOKEN_VALIDITY="$TOKEN_VALIDITY" -e REFRESH_TOKEN_VALIDITY="$REFRESH_TOKEN_VALIDITY" -e STRIPE_SECRET="$STRIPE_SECRET" -e EMAIL_USERNAME="$EMAIL_USERNAME" -e EMAIL_PASSWORD="$EMAIL_PASSWORD" -e ADMIN_EMAIL="$ADMIN_EMAIL" dewmink/embula-backend:latest
59+ env :
60+ MYSQL_URL : ${{ secrets.MYSQL_URL }}
61+ MYSQL_USERNAME : ${{ secrets.DB_USERNAME }}
62+ MYSQL_PASSWORD : ${{ secrets.DB_PASSWORD }}
63+ JWT_SECRET : ${{ secrets.JWT_SECRET }}
64+ TOKEN_VALIDITY : ${{ secrets.TOKEN_VALIDITY }}
65+ REFRESH_TOKEN_VALIDITY : ${{ secrets.REFRESH_TOKEN_VALIDITY }}
66+ STRIPE_SECRET : ${{ secrets.STRIPE_SECRET }}
67+ EMAIL_USERNAME : ${{ secrets.EMAIL_USERNAME }}
68+ EMAIL_PASSWORD : ${{ secrets.EMAIL_PASSWORD }}
69+ ADMIN_EMAIL : ${{ secrets.ADMIN_EMAIL }}
0 commit comments