diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 000000000..218e9b3ff --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,152 @@ +version: "{build}" + +stack: node 10.16.3 + +environment: + matrix: + # For regular jobs, such as push, pr and etc. + - job_name: Linux + appveyor_build_worker_image: ubuntu1804 + GOARCH: amd64 + - job_name: MacOS + appveyor_build_worker_image: macos + GOARCH: amd64 + - job_name: Windows + appveyor_build_worker_image: Visual Studio 2019 + GOARCH: amd64 + + # For release, by pushing tag + - job_name: linux-amd64 + appveyor_build_worker_image: ubuntu1804 + GOARCH: amd64 + - job_name: linux-arm + appveyor_build_worker_image: ubuntu1804 + GOARCH: arm + - job_name: linux-arm64 + appveyor_build_worker_image: ubuntu1804 + GOARCH: arm64 + - job_name: linux-386 + appveyor_build_worker_image: ubuntu1804 + GOARCH: 386 + - job_name: darwin-amd64 + appveyor_build_worker_image: macos + GOARCH: amd64 + - job_name: windows-amd64 + appveyor_build_worker_image: Visual Studio 2019 + GOARCH: amd64 + +for: + - # Linux and MacOS + skip_tags: true + matrix: + only: + - job_name: Linux + - job_name: MacOS + + install: + - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.42.0 + - make dep + - sh: ci_scripts/create-ip-aliases.sh + - make install-deps-ui + + before_build: + - make check + - make lint-ui + + build_script: + - make build + - make build-ui + + - # Windows + skip_tags: true + matrix: + only: + - job_name: Windows + + environment: + matrix: + - GOARCH: amd64 + + install: + - choco install make + - go get github.com/golangci/golangci-lint/cmd/golangci-lint@v1.42.0 + - make dep + - make install-deps-ui + + before_build: + - set GO111MODULE=on + - make check-windows-appveyor + - make lint-ui + + build_script: + - make build + - make build-ui + + - # Linux and MacOS (Release) + skip_non_tags: true + matrix: + only: + - job_name: linux-arm + - job_name: linux-arm64 + - job_name: linux-amd64 + - job_name: linux-386 + - job_name: darwin-amd64 + + install: + - make dep + - ci_scripts/create-ip-aliases.sh + - export GOARM=7 + + build_script: + - make build + + after_build: + - tar -cvzf skywire-$APPVEYOR_REPO_TAG_NAME-$APPVEYOR_JOB_NAME.tar.gz ./apps/* ./skywire-visor ./skywire-cli ./setup-node + + artifacts: + - path: skywire-$(APPVEYOR_REPO_TAG_NAME)-$(APPVEYOR_JOB_NAME).tar.gz + name: deploy + + deploy: + - provider: GitHub + release: $(APPVEYOR_REPO_TAG_NAME) + auth_token: + secure: ZrbNBE2wSfGvHzEq5GqEAUmNy7myDIl7KK05CKlZdQfieV7XdIAPXpkdHNEyZbvT + draft: true + artifact: deploy + on: + APPVEYOR_REPO_TAG: true + + - # Windows (Release) + skip_non_tags: true + matrix: + only: + - job_name: windows-amd64 + + environment: + matrix: + - GOARCH: amd64 + + install: + - cmd: choco install make + - make dep + + build_script: + - make build + + after_build: + - sh: tar -cvzf skywire-$APPVEYOR_REPO_TAG_NAME-$APPVEYOR_JOB_NAME.tar.gz ./apps/* ./skywire-visor ./skywire-cli ./setup-node + + artifacts: + - path: skywire-$(APPVEYOR_REPO_TAG_NAME)-$(APPVEYOR_JOB_NAME).tar.gz + name: deploy + + deploy: + - provider: GitHub + release: $(APPVEYOR_REPO_TAG_NAME) + auth_token: + secure: ZrbNBE2wSfGvHzEq5GqEAUmNy7myDIl7KK05CKlZdQfieV7XdIAPXpkdHNEyZbvT + draft: true + artifact: deploy + on: + APPVEYOR_REPO_TAG: true diff --git a/Makefile b/Makefile index fa0396c8b..8c27d030c 100644 --- a/Makefile +++ b/Makefile @@ -43,6 +43,8 @@ BUILD_OPTS_DEPLOY?="-ldflags=$(BUILDINFO) -w -s" check: lint test ## Run linters and tests +check-windows-appveyor: lint-windows-appveyor test ## Run linters and tests on appveyor windows image + build: host-apps bin ## Install dependencies, build apps and binaries. `go build` with ${OPTS} build-static: host-apps-static bin-static ## Build apps and binaries. `go build` with ${OPTS} @@ -73,6 +75,9 @@ lint: ## Run linters. Use make install-linters first ${OPTS} golangci-lint run -c .golangci.yml ./... # The govet version in golangci-lint is out of date and has spurious warnings, run it separately +lint-windows-appveyor: + C:\Users\appveyor\go\bin\golangci-lint run -c .golangci.yml ./... + lint-extra: ## Run linters with extra checks. ${OPTS} golangci-lint run --no-config --enable-all ./... # The govet version in golangci-lint is out of date and has spurious warnings, run it separately diff --git a/pkg/visor/rpc_test.go b/pkg/visor/rpc_test.go index e064b4ed4..a170d16b3 100644 --- a/pkg/visor/rpc_test.go +++ b/pkg/visor/rpc_test.go @@ -1,7 +1,6 @@ package visor import ( - "fmt" "net/http" "testing" "time" @@ -103,7 +102,7 @@ func TestUptime(t *testing.T) { err := rpc.Uptime(nil, &res) require.NoError(t, err) - assert.Contains(t, fmt.Sprintf("%f", res), "1.0") + assert.GreaterOrEqual(t, res, 1.0) } // TODO(evanlinjin): These should be moved to /pkg/app/launcher