buildAndRelease.yml 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. name: Release
  2. env:
  3. MONGO: ${{ secrets.MONGO }}
  4. on:
  5. push:
  6. branches: [ main ]
  7. jobs:
  8. build:
  9. runs-on: ubuntu-latest
  10. steps:
  11. - uses: actions/checkout@v3
  12. - name: Set up JDK
  13. uses: actions/setup-java@v3
  14. with:
  15. java-version: '17' # or the version you use
  16. distribution: 'temurin' # or another distribution
  17. - name: Build with Maven
  18. run: chmod +x ./mvnw && ./mvnw clean package test
  19. - name: Build the Docker image
  20. run: ./mvnw spring-boot:build-image
  21. - name: Login to Docker Hub
  22. uses: docker/login-action@v2
  23. with:
  24. username: ${{ secrets.DOCKERHUB_USERNAME }}
  25. password: ${{ secrets.DOCKERHUB_TOKEN }}
  26. - name: Push image
  27. run: docker push lhamacorp/stocks-be
  28. - name: Deploy to Server
  29. uses: appleboy/ssh-action@master
  30. with:
  31. host: ${{ secrets.SERVER_IP }}
  32. username: ${{ secrets.SERVER_USER }}
  33. key: ${{ secrets.SSH_PRIVATE_KEY }}
  34. script: |
  35. docker pull lhamacorp/stocks-be:latest
  36. docker stop stocks-be || true
  37. docker rm stocks-be || true
  38. docker run -d --name stocks-be -e mongo=${{ secrets.MONGO }} -e database=${{ secrets.DATABASE }} -e provider=${{ secrets.PROVIDER_URL }} -e key=${{ secrets.PROVIDER_KEY }} lhamacorp/stocks-be:latest