main.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. name: Java Deploy with Maven
  2. on:
  3. push:
  4. branches: [ master ]
  5. tags: [release-v*]
  6. jobs:
  7. build:
  8. runs-on: ubuntu-latest
  9. steps:
  10. - uses: actions/checkout@v2
  11. - name: Set up JDK 11
  12. # 这里使用java11的环境, 其他项目在github action中找到对应的语言环境就行
  13. uses: actions/setup-java@v2
  14. with:
  15. java-version: 11
  16. distribution: 'adopt'
  17. - name: Build with Maven
  18. # 这里maven的打包命令, 其他项目修改为对应的打包命令
  19. run: |
  20. mvn package
  21. - name: Push Docker
  22. run: |
  23. docker login --username=${{ secrets.USERNAME }} --password ${{ secrets.PASSWORD }} registry.cn-shanghai.aliyuncs.com
  24. docker build . -t ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER
  25. docker push ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER
  26. docker tag $(docker images ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER -q) ${{ secrets.REGISTRY }}:latest
  27. docker push ${{ secrets.REGISTRY }}:latest
  28. pull-docker:
  29. needs: [build]
  30. name: Pull Docker
  31. runs-on: ubuntu-latest
  32. steps:
  33. - name: Deploy
  34. uses: appleboy/ssh-action@master
  35. with:
  36. host: ${{ secrets.HOST }}
  37. username: ${{ secrets.USER }}
  38. password: ${{ secrets.PWD }}
  39. port: ${{ secrets.PORT }}
  40. script: |
  41. docker stop $(docker ps --filter ancestor=${{ secrets.REGISTRY }} -q)
  42. docker rm -f $(docker ps -a --filter ancestor=${{ secrets.REGISTRY }}:latest -q)
  43. docker rmi -f $(docker images ${{ secrets.REGISTRY }}:latest -q)
  44. docker login --username=${{ secrets.USERNAME }} --password ${{ secrets.PASSWORD }} registry.cn-shanghai.aliyuncs.com
  45. docker pull ${{ secrets.REGISTRY }}:latest
  46. docker run -d -p 8060:8060 ${{ secrets.REGISTRY }}:latest