publish-netclient-docker.yml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. name: Publish Netclient Docker
  2. on:
  3. workflow_dispatch:
  4. inputs:
  5. tag:
  6. description: 'docker tag'
  7. required: true
  8. release:
  9. types: [published]
  10. jobs:
  11. docker:
  12. runs-on: ubuntu-latest
  13. steps:
  14. -
  15. name: Set tag
  16. run: |
  17. if [[ -n "${{ github.event.inputs.tag }}" ]]; then
  18. TAG=${{ github.event.inputs.tag }}
  19. elif [[ "${{ github.ref_name }}" == 'master' ]]; then
  20. TAG="latest"
  21. else
  22. TAG="${{ github.ref_name }}"
  23. fi
  24. echo "TAG=${TAG}" >> $GITHUB_ENV
  25. -
  26. name: Checkout
  27. uses: actions/checkout@v2
  28. -
  29. name: Set up QEMU
  30. uses: docker/setup-qemu-action@v1
  31. -
  32. name: Set up Docker Buildx
  33. uses: docker/setup-buildx-action@v1
  34. -
  35. name: Login to DockerHub
  36. uses: docker/login-action@v1
  37. with:
  38. username: ${{ secrets.DOCKERHUB_USERNAME }}
  39. password: ${{ secrets.DOCKERHUB_TOKEN }}
  40. -
  41. name: Build x86 and export to Docker
  42. uses: docker/build-push-action@v2
  43. with:
  44. context: .
  45. load: true
  46. platforms: linux/amd64
  47. file: ./docker/Dockerfile-netclient-multiarch
  48. tags: ${{ env.TAG }}
  49. build-args: version=${{ env.TAG }}
  50. -
  51. name: Test x86
  52. run: |
  53. docker run --rm ${{ env.TAG }}&
  54. sleep 10
  55. kill %1
  56. -
  57. name: Build arm and export to Docker
  58. uses: docker/build-push-action@v2
  59. with:
  60. context: .
  61. load: true
  62. platforms: linux/arm64
  63. file: ./docker/Dockerfile-netclient-multiarch
  64. tags: ${{ env.TAG }}
  65. build-args: version=${{ env.TAG }}
  66. -
  67. name: Test arm
  68. run: |
  69. docker run --rm ${{ env.TAG }}&
  70. sleep 10
  71. kill %1
  72. -
  73. name: Build and push
  74. uses: docker/build-push-action@v2
  75. with:
  76. context: .
  77. platforms: linux/amd64, linux/arm64
  78. file: ./docker/Dockerfile-netclient-multiarch
  79. push: true
  80. tags: gravitl/netclient:${{ env.TAG }}, gravitl/netclient:latest
  81. build-args: version=${{ env.TAG }}