|
@@ -0,0 +1,79 @@
|
|
|
+name: Publish Netclient Docker
|
|
|
+
|
|
|
+on:
|
|
|
+ workflow_dispatch:
|
|
|
+ inputs:
|
|
|
+ tag:
|
|
|
+ description: 'docker tag'
|
|
|
+ required: true
|
|
|
+ release:
|
|
|
+ types: [published]
|
|
|
+
|
|
|
+jobs:
|
|
|
+ docker:
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ steps:
|
|
|
+ -
|
|
|
+ name: Set tag
|
|
|
+ run: |
|
|
|
+ if [[ -n "${{ github.event.inputs.tag }}" ]]; then
|
|
|
+ TAG=${{ github.event.inputs.tag }}
|
|
|
+ elif [[ "${{ github.ref_name }}" == 'master' ]]; then
|
|
|
+ TAG="latest"
|
|
|
+ else
|
|
|
+ TAG="${{ github.ref_name }}"
|
|
|
+ fi
|
|
|
+ echo "TAG=${TAG}" >> $GITHUB_ENV
|
|
|
+ -
|
|
|
+ name: Checkout
|
|
|
+ uses: actions/checkout@v2
|
|
|
+ -
|
|
|
+ name: Set up QEMU
|
|
|
+ uses: docker/setup-qemu-action@v1
|
|
|
+ -
|
|
|
+ name: Set up Docker Buildx
|
|
|
+ uses: docker/setup-buildx-action@v1
|
|
|
+ -
|
|
|
+ name: Login to DockerHub
|
|
|
+ uses: docker/login-action@v1
|
|
|
+ with:
|
|
|
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
|
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
+ -
|
|
|
+ name: Build x86 and export to Docker
|
|
|
+ uses: docker/build-push-action@v2
|
|
|
+ with:
|
|
|
+ context: .
|
|
|
+ load: true
|
|
|
+ platforms: linux/amd64
|
|
|
+ file: docker/Dockerfile-netclient-multiarch
|
|
|
+ tags: ${{ env.TAG }}
|
|
|
+ -
|
|
|
+ name: Test x86
|
|
|
+ run: |
|
|
|
+ docker run --rm ${{ env.TAG }}&
|
|
|
+ sleep 10
|
|
|
+ kill %1
|
|
|
+ -
|
|
|
+ name: Build arm and export to Docker
|
|
|
+ uses: docker/build-push-action@v2
|
|
|
+ with:
|
|
|
+ context: .
|
|
|
+ load: true
|
|
|
+ platforms: linux/arm64
|
|
|
+ file: docker/Dockerfile-netclient-multiarch
|
|
|
+ tags: ${{ env.TAG }}
|
|
|
+ -
|
|
|
+ name: Test arm
|
|
|
+ run: |
|
|
|
+ docker run --rm ${{ env.TAG }}&
|
|
|
+ sleep 10
|
|
|
+ kill %1
|
|
|
+ -
|
|
|
+ name: Build and push
|
|
|
+ uses: docker/build-push-action@v2
|
|
|
+ with:
|
|
|
+ context: .
|
|
|
+ platforms: linux/amd64, linux/arm64
|
|
|
+ push: true
|
|
|
+ tags: gravitl/netclient:${{ env.TAG }}
|