diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..ba4acbc --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,21 @@ +on: + release: + types: [created] +name: Handle Release +jobs: + linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.15.7 + - name: Make Directory with kgctl Binaries to Be Released + run: make release + - name: Publish Release + uses: skx/github-action-publish-binaries@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + args: 'bin/release/kgctl-*' diff --git a/Makefile b/Makefile index 6fed1b1..40a5720 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ export GO111MODULE=on -.PHONY: push container clean container-name container-latest push-latest fmt lint test unit vendor header generate client deepcopy informer lister openapi manifest manfest-latest manifest-annotate manifest manfest-latest manifest-annotate +.PHONY: push container clean container-name container-latest push-latest fmt lint test unit vendor header generate client deepcopy informer lister openapi manifest manfest-latest manifest-annotate manifest manfest-latest manifest-annotate release OS ?= $(shell go env GOOS) ARCH ?= $(shell go env GOARCH) @@ -11,6 +11,8 @@ ifeq ($(OS),linux) else BINS := bin/$(OS)/$(ARCH)/kgctl endif +RELEASE_BINS := $(addprefix bin/release/kgctl-, $(addprefix linux-, $(ALL_ARCH)) darwin-amd64 windows-amd64) +CLIENT_BINS := $(addsuffix /kgctl, $(addprefix bin/, $(addprefix linux/, $(ALL_ARCH)) darwin/amd64 windows/amd64)) PROJECT := kilo PKG := github.com/squat/$(PROJECT) REGISTRY ?= index.docker.io @@ -295,6 +297,12 @@ push-latest: container-latest push-name: @echo "pushed: $(IMAGE):$(ARCH)-$(VERSION)" +release: $(RELEASE_BINS) +$(RELEASE_BINS): + @make OS=$(word 2,$(subst -, ,$(@F))) ARCH=$(word 3,$(subst -, ,$(@F))) + mkdir -p $(@D) + cp bin/$(word 2,$(subst -, ,$(@F)))/$(word 3,$(subst -, ,$(@F)))/kgctl $@ + clean: container-clean bin-clean rm -rf .cache