sudo: required language: go go_import_path: github.com/XinFinOrg/XDPoSChain env: global: - GOPROXY=https://proxy.golang.org - GO111MODULE=on jobs: include: - stage: Lint sudo: false go: '1.12.x' git: submodules: false script: - go run build/ci.go lint - stage: Build and test go: '1.12.x' script: - sudo modprobe fuse - sudo chmod 666 /dev/fuse - sudo chown root:$USER /etc/fuse.conf - go run build/ci.go install - while sleep 540; do echo "[ still running ]"; done & - go run build/ci.go test -coverage - kill %1 after_success: - bash <(curl -s https://codecov.io/bash) - go: '1.11.x' script: - sudo modprobe fuse - sudo chmod 666 /dev/fuse - sudo chown root:$USER /etc/fuse.conf - go run build/ci.go install - while sleep 540; do echo "[ still running ]"; done & - go run build/ci.go test -coverage - kill %1 - stage: Github release go: '1.12.x' script: - GOARCH=amd64 GOOS=linux go build -o ./build/bin/XDC-linux-amd64 -v ./cmd/XDC deploy: provider: releases api_key: $GITHUB_TOKEN overwrite: true file_glob: true file: build/bin/XDC-* skip_cleanup: true on: tags: true - stage: Build and push image services: - docker install: skip before_script: - docker build -t XDPoSChain/XDPoSChain . - docker build -t XDPoSChain/node -f Dockerfile.node . script: - echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_USERNAME" --password-stdin - docker tag XDPoSChain/XDPoSChain XDPoSChain/XDPoSChain:latest - docker push XDPoSChain/XDPoSChain:latest - docker tag XDPoSChain/XDPoSChain XDPoSChain/XDPoSChain:$TRAVIS_BUILD_ID - docker push XDPoSChain/XDPoSChain:$TRAVIS_BUILD_ID - docker tag XDPoSChain/node XDPoSChain/node:latest - docker push XDPoSChain/node:latest - docker tag XDPoSChain/node XDPoSChain/node:$TRAVIS_BUILD_ID - docker push XDPoSChain/node:$TRAVIS_BUILD_ID - stage: Build and push image (tagged) services: - docker install: skip before_script: - docker build -t XDPoSChain/XDPoSChain . - docker build -t XDPoSChain/XDPoSChain -f Dockerfile.node . script: - echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_USERNAME" --password-stdin - docker tag XDPoSChain/XDPoSChain XDPoSChain/XDPoSChain:latest - docker push XDPoSChain/XDPoSChain:latest - docker tag XDPoSChain/XDPoSChain XDPoSChain/XDPoSChain:$TRAVIS_TAG - docker push XDPoSChain/XDPoSChain:$TRAVIS_TAG - docker tag XDPoSChain/XDPoSChain XDPoSChain/node:latest - docker push XDPoSChain/node:latest - docker tag XDPoSChain/node XDPoSChain/node:$TRAVIS_TAG - docker push XDPoSChain/node:$TRAVIS_TAG stages: - name: Lint - name: Build and test - name: Github release if: type != pull_request AND branch =~ ^v AND tag IS present AND repo = XDPoSChain/XDPoSChain - name: Build and push image if: type != pull_request AND branch = master AND tag IS blank AND repo = XDPoSChain/XDPoSChain - name: Build and push image (tagged) if: type != pull_request AND branch =~ ^v AND tag IS present AND repo = XDPoSChain/XDPoSChain notifications: slack: rooms: secure: on_success: change on_failure: always