diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8c5d753fd..e394ee32e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,6 +32,8 @@ jobs: run: make generate-source - name: Run cross-build run: make cross-build + - name: Run compress binary + run: make compress - name: Create Release id: create_release uses: actions/create-release@v1 @@ -41,27 +43,55 @@ jobs: - name: Get the version id: get_version run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/} - - name: Upload Linux + - name: Upload Linux tar.gz uses: actions/upload-release-asset@v1.0.2 with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./bin/vela-linux-amd64 - asset_name: vela-${{ steps.get_version.outputs.VERSION }}-linux-amd64 + asset_path: ./_bin/vela-linux-amd64.tar.gz + asset_name: vela-${{ steps.get_version.outputs.VERSION }}-linux-amd64.tar.gz asset_content_type: binary/octet-stream - - name: Upload MacOS + - name: Upload Linux zip uses: actions/upload-release-asset@v1.0.2 with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./bin/vela-darwin-amd64 - asset_name: vela-${{ steps.get_version.outputs.VERSION }}-darwin-amd64 + asset_path: ./_bin/vela-linux-amd64.zip + asset_name: vela-${{ steps.get_version.outputs.VERSION }}-linux-amd64.zip asset_content_type: binary/octet-stream - - name: Upload Windows + - name: Upload MacOS tar.gz uses: actions/upload-release-asset@v1.0.2 with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./bin/vela-windows-amd64.exe - asset_name: vela-${{ steps.get_version.outputs.VERSION }}-windows-amd64.exe + asset_path: ./_bin/vela-darwin-amd64.tar.gz + asset_name: vela-${{ steps.get_version.outputs.VERSION }}-darwin-amd64.tar.gz asset_content_type: binary/octet-stream + - name: Upload MacOS zip + uses: actions/upload-release-asset@v1.0.2 + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./_bin/vela-darwin-amd64.zip + asset_name: vela-${{ steps.get_version.outputs.VERSION }}-darwin-amd64.zip + asset_content_type: binary/octet-stream + - name: Upload Windows tar.gz + uses: actions/upload-release-asset@v1.0.2 + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./_bin/vela-windows-amd64.tar.gz + asset_name: vela-${{ steps.get_version.outputs.VERSION }}-windows-amd64.tar.gz + asset_content_type: binary/octet-stream + - name: Upload Windows zip + uses: actions/upload-release-asset@v1.0.2 + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./_bin/vela-windows-amd64.zip + asset_name: vela-${{ steps.get_version.outputs.VERSION }}-windows-amd64.zip + asset_content_type: binary/octet-stream + - name: Upload Checksums + uses: actions/upload-release-asset@v1.0.2 + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./_bin/sha256sums.txt + asset_name: sha256sums.txt + asset_content_type: text/plain - name: Publish to Github Docker Package Registry uses: elgohr/Publish-Docker-Github-Action@2.21 with: diff --git a/.gitignore b/.gitignore index 7b31f2eba..5bc6a2048 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ *.so *.dylib bin +_bin e2e/vela # Test binary, build with `go test -c` diff --git a/Makefile b/Makefile index 47037af50..42ce46d60 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,7 @@ LDFLAGS ?= "-X $(VELA_VERSION_VAR)=$(VELA_VERSION) -X $(VELA_GITVERSION_VAR)=$(G GOX = go run github.com/mitchellh/gox TARGETS := darwin/amd64 linux/amd64 windows/amd64 +DIST_DIRS := find * -type d -exec # Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set) ifeq (,$(shell go env GOBIN)) @@ -36,7 +37,17 @@ generate-source: go run hack/frontend/source.go cross-build: - go run hack/chart/generate.go | GO111MODULE=on CGO_ENABLED=0 $(GOX) -ldflags $(LDFLAGS) -parallel=3 -output="bin/vela-{{.OS}}-{{.Arch}}" -osarch='$(TARGETS)' ./cmd/vela/ + go run hack/chart/generate.go | GO111MODULE=on CGO_ENABLED=0 $(GOX) -ldflags $(LDFLAGS) -parallel=3 -output="_bin/{{.OS}}-{{.Arch}}/vela" -osarch='$(TARGETS)' ./cmd/vela/ + +compress: + ( \ + cd _bin && \ + $(DIST_DIRS) cp ../LICENSE {} \; && \ + $(DIST_DIRS) cp ../README.md {} \; && \ + $(DIST_DIRS) tar -zcf vela-{}.tar.gz {} \; && \ + $(DIST_DIRS) zip -r vela-{}.zip {} \; && \ + sha256sum vela-* > sha256sums.txt \ + ) # Run against the configured Kubernetes cluster in ~/.kube/config run: fmt vet diff --git a/README.md b/README.md index 36198ecca..5c2bfdda1 100644 --- a/README.md +++ b/README.md @@ -13,30 +13,20 @@ The Open Application Platform based on Kubernetes and OAM. ### Get the Vela CLI -Download the `vela` binary from the [Releases page](https://github.com/oam-dev/kubevela/releases). Change file mod and add it to `$PATH` to get started. +Download the `vela` binary from the [Releases page](https://github.com/oam-dev/kubevela/releases). Unpack the `vela` binary and add it to `$PATH` to get started. -For exmaple: ```shell -chmod a+x vela-v0.0.2-darwin-amd64 -sudo mv ./vela-v0.0.2-darwin-amd64 /usr/local/bin/vela +sudo mv ./vela /usr/local/bin/vela ``` ### Install Vela Core ```shell script $ vela install -- Installing Vela Core: -- Installing builtin capabilities: -Successful applied 4 kinds of Workloads and Traits: deployments.apps,containerizedworkloads.core.oam.dev,manualscalertraits.core.oam.dev,simplerollouttraits.extend.oam.dev. -syncing workload definitions from cluster... -[WARN]handle template task: #Template.metadata.name: reference "task" not found -get 5 workload definitions from cluster, syncing...5 workload definitions successfully synced -syncing trait definitions from cluster... -[WARN]handle template metricstraits.standard.oam.dev: #Template.metadata.name: reference "metricstraits" not found -get 2 trait definitions from cluster, syncing...2 trait definitions successfully synced -- Finished. ``` +This command will install vela core controller into your K8s cluster, along with built-in workloads and traits. + ## Demos #### Check workloads diff --git a/go.sum b/go.sum index 144b7b114..215ec2c65 100644 --- a/go.sum +++ b/go.sum @@ -756,6 +756,7 @@ github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.0.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.2.0 h1:3vNe/fWF5CBgRIguda1meWhsZHy3m8gCJ5wx+dIzX/E= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -979,6 +980,7 @@ github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9 github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/gox v0.4.0 h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/gox v1.0.1 h1:x0jD3dcHk9a9xPSDN6YEL4xL6Qz0dvNYm8yZqui5chI= github.com/mitchellh/gox v1.0.1/go.mod h1:ED6BioOGXMswlXa2zxfh/xdd5QhwYliBFn9V18Ap4z4= github.com/mitchellh/hashstructure v0.0.0-20170609045927-2bca23e0e452/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY=