main.yml 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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@v1
  14. with:
  15. java-version: 11
  16. - name: Build with Maven
  17. # 这里maven的打包命令, 其他项目修改为对应的打包命令
  18. run: |
  19. mvn package
  20. - name: Push Docker
  21. run: |
  22. docker login --username=${{ secrets.USERNAME }} --password ${{ secrets.PASSWORD }} registry.cn-shanghai.aliyuncs.com
  23. docker build . -t ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER
  24. docker push ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER
  25. docker tag $(docker images ${{ secrets.REGISTRY }}:$GITHUB_RUN_NUMBER -q) ${{ secrets.REGISTRY }}:latest
  26. docker push ${{ secrets.REGISTRY }}:latest
  27. pull-docker:
  28. needs: [build]
  29. name: Pull Docker
  30. runs-on: ubuntu-latest
  31. steps:
  32. - name: Deploy
  33. uses: appleboy/ssh-action@master
  34. with:
  35. host: ${{ secrets.HOST }}
  36. username: ${{ secrets.USER }}
  37. password: ${{ secrets.PWD }}
  38. port: ${{ secrets.PORT }}
  39. script: |
  40. docker stop $(docker ps --filter ancestor=${{ secrets.REGISTRY }} -q)
  41. docker rm -f $(docker ps -a --filter ancestor=${{ secrets.REGISTRY }}:latest -q)
  42. docker rmi -f $(docker images ${{ secrets.REGISTRY }}:latest -q)
  43. docker login --username=${{ secrets.USERNAME }} --password ${{ secrets.PASSWORD }} registry.cn-shanghai.aliyuncs.com
  44. docker pull ${{ secrets.REGISTRY }}:latest
  45. docker run -d -p 8060:8060 ${{ secrets.REGISTRY }}:latest