1
0
mirror of https://github.com/minio/mc.git synced 2025-11-12 01:02:26 +03:00

Migrate to go1.11.4 for CI builds (#2634)

This commit is contained in:
Harshavardhana
2018-12-28 16:47:22 -08:00
committed by kannappanr
parent 124b9fa4d9
commit bda754d07f
5 changed files with 71 additions and 105 deletions

View File

@@ -1,26 +1,41 @@
sudo: false
go_import_path: github.com/minio/mc
language: go
os:
- linux
# this ensures PRs based on a local branch are not built twice
# the downside is that a PR targeting a different branch is not built
# but as a workaround you can add the branch to this list
branches:
only:
- master
env:
- ARCH=x86_64
matrix:
include:
- os: linux
dist: trusty
env:
- ARCH=x86_64
go: 1.11.4
script:
- diff -au <(gofmt -d *.go) <(printf "")
- diff -au <(gofmt -d cmd) <(printf "")
- diff -au <(gofmt -d pkg) <(printf "")
- for d in $(go list ./...); do go test -v -race "$d"; done
- make coverage
- make test
- os: windows
env:
- ARCH=x86_64
go: 1.11.4
script:
- go build --ldflags="$(go run buildscripts/gen-ldflags.go)" -o %GOPATH%\bin\mc.exe
- for d in $(go list ./...); do go test -v -race "$d"; done
- bash buildscripts/go-coverage.sh
go:
- 1.10.4
addons:
apt:
packages:
- devscripts
script:
- make test GOFLAGS="-race"
- make coverage
- diff -au <(gofmt -d *.go) <(printf "")
- diff -au <(gofmt -d cmd) <(printf "")
- diff -au <(gofmt -d pkg) <(printf "")
before_script:
# Add an IPv6 config - see the corresponding Travis issue
# https://github.com/travis-ci/travis-ci/issues/8361
- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6'; fi
after_success:
- bash <(curl -s https://codecov.io/bash)

View File

@@ -1,19 +1,24 @@
FROM golang:1.10.1-alpine3.7
FROM golang:1.11.4-alpine3.7
MAINTAINER Minio Inc <dev@minio.io>
LABEL maintainer="Minio Inc <dev@minio.io>"
ENV PATH $PATH:$GOPATH/bin
ENV GOPATH /go
ENV CGO_ENABLED 0
WORKDIR /go/src/github.com/minio/
RUN \
apk add --no-cache ca-certificates && \
apk add --no-cache --virtual .build-deps git && \
echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf && \
apk add --no-cache git && \
go get -v -d github.com/minio/mc && \
cd /go/src/github.com/minio/mc && \
go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)" && \
rm -rf /go/pkg /go/src /usr/local/go && apk del .build-deps
go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)"
FROM alpine:3.7
COPY --from=0 /go/bin/mc /usr/bin/mc
RUN \
apk add --no-cache ca-certificates && \
echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf
ENTRYPOINT ["mc"]

View File

@@ -23,8 +23,7 @@ verifiers: getdeps vet fmt lint cyclo deadcode spelling
vet:
@echo "Running $@"
@go tool vet -atomic -bool -copylocks -nilfunc -printf -shadow -rangeloops -unreachable -unsafeptr -unusedresult cmd
@go tool vet -atomic -bool -copylocks -nilfunc -printf -shadow -rangeloops -unreachable -unsafeptr -unusedresult pkg
@go vet github.com/minio/mc/...
fmt:
@echo "Running $@"
@@ -58,7 +57,7 @@ spelling:
check: test
test: verifiers build
@echo "Running unit tests"
@go test $(GOFLAGS) -tags kqueue ./...
@go test -tags kqueue ./...
@echo "Running functional tests"
@(env bash $(PWD)/functional-tests.sh)
@@ -69,7 +68,7 @@ coverage: build
# Builds minio locally.
build: checks
@echo "Building minio binary to './mc'"
@CGO_ENABLED=0 go build -tags kqueue --ldflags $(BUILD_LDFLAGS) -o $(PWD)/mc
@GO_FLAGS="" CGO_ENABLED=0 go build -tags kqueue --ldflags $(BUILD_LDFLAGS) -o $(PWD)/mc
pkg-add:
@echo "Adding new package $(PKG)"
@@ -95,6 +94,7 @@ install: build
clean:
@echo "Cleaning up all the generated files"
@find . -name '*.test' | xargs rm -fv
@find . -name '*~' | xargs rm -fv
@rm -rvf mc
@rm -rvf build
@rm -rvf release

View File

@@ -1,55 +0,0 @@
# version format
version: "{build}"
# Operating system (build VM template)
os: Windows Server 2012 R2
# Platform.
platform: x64
clone_folder: c:\gopath\src\github.com\minio\mc
# Environment variables
environment:
GOPATH: c:\gopath
GOROOT: c:\go110
# scripts that run after cloning repository
install:
- set PATH=%GOPATH%\bin;%GOROOT%\bin;%PATH%
- go version
- go env
- python --version
# To run your custom scripts instead of automatic MSBuild
build_script:
# Compile
# We need to disable firewall - https://github.com/appveyor/ci/issues/1579#issuecomment-309830648
- ps: Disable-NetFirewallRule -DisplayName 'File and Printer Sharing (SMB-Out)'
- appveyor AddCompilationMessage "Starting Compile"
- cd c:\gopath\src\github.com\minio\mc
- go run buildscripts/gen-ldflags.go > temp.txt
- set /p BUILD_LDFLAGS=<temp.txt
- go build -ldflags="%BUILD_LDFLAGS%" -o %GOPATH%\bin\mc.exe
- appveyor AddCompilationMessage "Compile Success"
# To run your custom scripts instead of automatic tests
test_script:
# Unit tests
- ps: Add-AppveyorTest "Unit Tests" -Outcome Running
- mkdir build\coverage
- for /f "" %%G in ('go list github.com/minio/mc/...') do ( go test -v -race %%G )
- go test -v -coverprofile=build\coverage\coverage.txt -covermode=atomic github.com/minio/mc/cmd
- ps: Update-AppveyorTest "Unit Tests" -Outcome Passed
after_test:
- go tool cover -html=build\coverage\coverage.txt -o build\coverage\coverage.html
- ps: Push-AppveyorArtifact build\coverage\coverage.txt
- ps: Push-AppveyorArtifact build\coverage\coverage.html
# Upload coverage report.
- "SET PATH=C:\\Python34;C:\\Python34\\Scripts;%PATH%"
- pip install codecov
- codecov -X gcov -f "build\coverage\coverage.txt"
# to disable deployment
deploy: off

View File

@@ -19,52 +19,53 @@ package cmd
import "testing"
// Tests valid host URL functionality.
func TestparseEnvURLStr(t *testing.T) {
func TestParseEnvURLStr(t *testing.T) {
testCases := []struct {
hostURL string
accessKey string
secretKey string
url string
hostname string
port string
}{
{
hostURL: "https://minio:minio1#23@localhost:9000",
accessKey: "minio",
secretKey: "minio#123",
url: "https://localhost:9000",
secretKey: "minio1#23",
hostname: "localhost",
port: "9000",
},
{
hostURL: "https://minio:minio123@localhost:9000",
accessKey: "minio",
secretKey: "minio123",
url: "https://localhost:9000",
},
{
hostURL: "http://minio:minio1#23@localhost:9000",
accessKey: "minio",
secretKey: "minio#123",
url: "http://localhost:9000",
hostname: "localhost",
port: "9000",
},
{
hostURL: "https://localhost:9000",
accessKey: "",
secretKey: "",
url: "https://localhost:9000",
hostname: "localhost",
port: "9000",
},
}
for _, testCase := range testCases {
for i, testCase := range testCases {
url, ak, sk, err := parseEnvURLStr(testCase.hostURL)
if testCase.accessKey != sk {
t.Fatalf("Expected %s, got %s", testCase.accessKey, ak)
if testCase.accessKey != ak {
t.Fatalf("Test %d: Expected %s, got %s", i+1, testCase.accessKey, ak)
}
if testCase.secretKey != sk {
t.Fatalf("Expected %s, got %s", testCase.secretKey, sk)
t.Fatalf("Test %d: Expected %s, got %s", i+1, testCase.secretKey, sk)
}
if testCase.url != url.Hostname() {
t.Fatalf("Expected %s, got %s", testCase.url, url.Hostname())
if testCase.hostname != url.Hostname() {
t.Fatalf("Test %d: Expected %s, got %s", i+1, testCase.hostname, url.Hostname())
}
if testCase.port != url.Port() {
t.Fatalf("Test %d: Expected %s, got %s", i+1, testCase.port, url.Port())
}
if err != nil {
t.Fatalf("Expected test to pass. Failed with err %s", err)
t.Fatalf("Test %d: Expected test to pass. Failed with err %s", i+1, err)
}
}
}