build_docker.yml 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. name: build
  2. on:
  3. push:
  4. branches:
  5. - master
  6. jobs:
  7. docker_images:
  8. name: docker images
  9. runs-on: ubuntu-latest
  10. strategy:
  11. matrix:
  12. image: [gorse-master, gorse-server, gorse-worker, gorse-in-one]
  13. steps:
  14. - name: Pull source
  15. uses: actions/checkout@v1
  16. - name: Set up Docker Buildx
  17. uses: docker/setup-buildx-action@v1
  18. - name: Login to DockerHub
  19. uses: docker/login-action@v1
  20. with:
  21. username: ${{ secrets.DOCKERHUB_USERNAME }}
  22. password: ${{ secrets.DOCKERHUB_TOKEN }}
  23. - name: Build docker image
  24. uses: docker/build-push-action@v2.6.1
  25. with:
  26. context: .
  27. platforms: linux/amd64,linux/arm64
  28. file: cmd/${{ matrix.image }}/Dockerfile
  29. push: true
  30. tags: zhenghaoz/${{ matrix.image }}:nightly
  31. cache-from: type=gha
  32. cache-to: type=gha,mode=max
  33. - name: Resolve Images on Description
  34. run: |
  35. sed -i -E "s/src=\"assets\//src=\"https:\/\/github.com\/gorse-io\/gorse\/raw\/master\/assets\//" README.md
  36. - name: Update DockerHub Description
  37. uses: peter-evans/dockerhub-description@v3
  38. with:
  39. username: ${{ secrets.DOCKERHUB_USERNAME }}
  40. password: ${{ secrets.DOCKERHUB_TOKEN }}
  41. repository: zhenghaoz/${{ matrix.image }}
  42. windows_images:
  43. name: windows images
  44. runs-on: windows-latest
  45. strategy:
  46. matrix:
  47. image: [gorse-master, gorse-server, gorse-worker, gorse-in-one]
  48. steps:
  49. - name: Pull source
  50. uses: actions/checkout@v1
  51. - name: Build docker image
  52. run: |
  53. docker login -u $env:DOCKERHUB_USERNAME -p $env:DOCKERHUB_TOKEN
  54. docker build -f cmd/${{ matrix.image }}/Dockerfile.windows `
  55. -t zhenghaoz/${{ matrix.image }}:nightly-windowsservercore .
  56. docker image push --all-tags zhenghaoz/${{ matrix.image }}
  57. docker logout
  58. env:
  59. DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
  60. DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}