publish-netclient-docker-userspace.yml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. name: Publish Netclient-Userspace 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 and push
  42. uses: docker/build-push-action@v2
  43. with:
  44. context: .
  45. platforms: linux/amd64
  46. file: ./docker/Dockerfile-netclient-multiarch-userspace
  47. push: true
  48. tags: gravitl/netclient-go:${{ env.TAG }}, gravitl/netclient-userspace:latest
  49. build-args: version=${{ env.TAG }}