Add docker image release workflow
Signed-off-by: Milos Gajdos <milosgajdos83@gmail.com>master
							parent
							
								
									b459aa2391
								
							
						
					
					
						commit
						23b570272b
					
				|  | @ -0,0 +1,60 @@ | |||
| name: Build release image and push to hub | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     tags: | ||||
|       - "*" | ||||
| 
 | ||||
| jobs: | ||||
|   publish: | ||||
|     name: Build and publish docker image | ||||
|     runs-on: ubuntu-latest | ||||
|     env: | ||||
|       DOCKER_BUILDTAGS: "include_oss include_gcs" | ||||
|       CGO_ENABLED: 1 | ||||
|       GO111MODULE: "auto" | ||||
|       GOPATH: ${{ github.workspace }} | ||||
|       GOOS: linux | ||||
|       COMMIT_RANGE: ${{ github.event_name == 'pull_request' && format('{0}..{1}',github.event.pull_request.base.sha, github.event.pull_request.head.sha) || format('{0}..{1}', github.event.before, github.event.after) }} | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Get git tag | ||||
|         id: get_git_tag | ||||
|         run: echo ::set-output name=git_tag::${GITHUB_REF#refs/tags/} | ||||
| 
 | ||||
|       - name: Verify git tag | ||||
|         env: | ||||
|           GIT_TAG: ${{ steps.get_git_tag.outputs.git_tag }} | ||||
|         # NOTE: this is a simple Regexp, following the current versioning scheme | ||||
|         # In ideal world we should use this monstrosity: | ||||
|         # https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string | ||||
|         run: | | ||||
|           [[ ${GIT_TAG} =~ ^v[0-9]+.[0-9]+.[0-9]+ ]] | ||||
| 
 | ||||
|       - name: Check out source code | ||||
|         if: ${{ success() }} | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           ref: ${{ steps.get_git_tag.outputs.git_tag }} | ||||
| 
 | ||||
|       - name: Set image tag | ||||
|         env: | ||||
|           GIT_TAG: ${{ steps.get_git_tag.outputs.git_tag }} | ||||
|         id: get_image_tag | ||||
|         run: echo ::set-output name=docker_tag::${GIT_TAG} | ||||
| 
 | ||||
|       - name: Login to Docker Hub | ||||
|         uses: docker/login-action@v1 | ||||
|         with: | ||||
|           username: ${{ secrets.DOCKERHUB_USERNAME }} | ||||
|           password: ${{ secrets.DOCKERHUB_TOKEN }} | ||||
| 
 | ||||
|       - name: Build and push | ||||
|         if: ${{ success() }} | ||||
|         uses: docker/build-push-action@v2 | ||||
|         with: | ||||
|           context: . | ||||
|           file: ./Dockerfile | ||||
|           platforms: linux/amd64 | ||||
|           push: true | ||||
|           tags: distribution/distribution:{{ steps.get_image_tag.outputs.docker_tag }} | ||||
		Loading…
	
		Reference in New Issue