os: linux dist: xenial language: go go: - "1.14" stages: - test - name: deploy if: env(TRAVIS_PULL_REQUEST) IS false AND (branch = master OR tag IS present) install: - go get -u github.com/golang/dep/cmd/dep - dep ensure jobs: include: # Test stage - name: Unit tests stage: test script: - go test -v -race -coverprofile=coverage.txt -covermode=atomic ./... - bash <(curl -s https://codecov.io/bash) - name: FOSSA stage: test before_script: - curl https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | bash script: - fossa init - fossa analyze after_success: - fossa test # Deploy stage - name: Docker image stage: deploy services: - docker script: - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - export DOCKER_TAG="${TRAVIS_TAG:-dev}" - export APP_VERSION="${TRAVIS_TAG:-dev-${TRAVIS_COMMIT:0:7}}" - > env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o release/chrly -ldflags '-extldflags "-static" -X github.com/elyby/chrly/version.version=$APP_VERSION -X github.com/elyby/chrly/version.commit=$TRAVIS_COMMIT' main.go - docker build -t elyby/chrly:$DOCKER_TAG . - docker push elyby/chrly:$DOCKER_TAG - | if [ ! -z ${TRAVIS_TAG+x} ] && [[ "$TRAVIS_TAG" != *"-"* ]]; then docker tag elyby/chrly:$DOCKER_TAG elyby/chrly:latest docker push elyby/chrly:latest fi