publish-netclient-docker-go.yml 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. name: Publish Netclient-go 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-go
  48. tags: ${{ env.TAG }}
  49. build-args: version=${{ env.TAG }}
  50. -
  51. name: Build and push
  52. uses: docker/build-push-action@v2
  53. with:
  54. context: .
  55. platforms: linux/amd64
  56. file: ./docker/Dockerfile-netclient-multiarch-go
  57. push: true
  58. tags: gravitl/netclient-go:${{ env.TAG }}, gravitl/netclient-go:latest
  59. build-args: version=${{ env.TAG }}