github.com/zjj1991/quorum@v0.0.0-20190524123704-ae4b0a1e1a19/.travis.yml (about)

     1  # simplified version of the upstream travis configuration with additional features
     2  # 1. Distribute binaries to bintray from Tag
     3  # 2. Run quorum-acceptance-tests for Pull Requests
     4  
     5  language: go
     6  go_import_path: github.com/ethereum/go-ethereum
     7  go: 1.11.x
     8  sudo: true
     9  branches:
    10    only:
    11      - /.*/ # everything including tags
    12  
    13  env:
    14    global:
    15      - BINTRAY_ORGANIZATION=quorumengineering
    16      - BINTRAY_USER=quorumbot
    17      # Bintray API Key
    18      - secure: "QHiPcd3zQoJEsT3VSpxoLVTYwbiYzS8H18EpY7Tk0EqCIfswS2AvRlyRXUxNvCf9ktzpaeXV4b5cPYJ67dwdp5V/O/ARaK5AL6ZjjrTPR1avPnmz/X2VeQEP0aWk1UGMs1nBUj5rzMbIIxlVhpbiITTLAI4Ao0+xRcBi215mDbv271Z7mACEZfXxjaoJA0/3IkbKz9pu1nC7bTjaaExCDAeLp2p8fHi2YQPnBll/7dkn/m1rnsIY9M3KWNCx6xBmQOr1hulrrB6tZoHwFBoDsVTFJFLckPfrWUZsYUgtfWJMQWc6ntv1gFl0f9x6s5fYEphCU2m1JYjEczlQ03B5ro9EyPGKjO7vQxAaFd5nVd2Xf34ZbssEIyXxlSnP/4Gv1GXl9L9aU1Hth9ckYvT5gYP5t/Nw3CDbKD0HelPBvkf8jZwfdlotzFPS2bOZNdl/rJLWgQrX18a/mC3BH9l4TSRz13tbRfo6YcC3Y/uOvG1n4GxzcVaWojAxn86SkknOczPTf2pk9F3JOcGVSYA2R4kGQAe+ErJH2X5g2sh1D5cCYDjQyl5rzWg6P3eK//HYW+mg2+TQ8k2iQVVSwFwrR0Yn4P+5cRDCW9mjtktgq1rTtslj41gSH49Avqr9oXGM2rqdcJPdN8dnmLMrAtmeSUNMMoexiRMmlF2OQKLrW3k="
    19  
    20  matrix:
    21    include:
    22      #raft consensus
    23      - if: tag IS blank AND type = pull_request
    24        name: acceptance-tests-raft
    25        os: linux
    26        dist: trusty
    27        git:
    28          submodules: false
    29        cache:
    30          directories:
    31            - $HOME/.m2
    32        env:
    33          - TF_VAR_consensus_mechanism=raft
    34        install:
    35          - $TRAVIS_BUILD_DIR/build/travis-install-linux.sh
    36        script:
    37          - $TRAVIS_BUILD_DIR/build/travis-run-acceptance-tests-linux.sh
    38  
    39      #istanbul consensus
    40      - if: tag IS blank AND type = pull_request
    41        name: acceptance-tests-istanbul
    42        os: linux
    43        dist: trusty
    44        git:
    45          submodules: false
    46        cache:
    47          directories:
    48            - $HOME/.m2
    49        env:
    50          - TF_VAR_consensus_mechanism=istanbul
    51        install:
    52          - $TRAVIS_BUILD_DIR/build/travis-install-linux.sh
    53        script:
    54          - $TRAVIS_BUILD_DIR/build/travis-run-acceptance-tests-linux.sh
    55  
    56      #clique consensus
    57      - if: tag IS blank AND type = pull_request
    58        name: acceptance-tests-clique
    59        os: linux
    60        dist: trusty
    61        git:
    62          submodules: false
    63        cache:
    64          directories:
    65            - $HOME/.m2
    66        env:
    67          - TF_VAR_consensus_mechanism=clique
    68        install:
    69          - $TRAVIS_BUILD_DIR/build/travis-install-linux.sh
    70        script:
    71          - $TRAVIS_BUILD_DIR/build/travis-run-acceptance-tests-linux.sh
    72  
    73      - if: tag IS blank
    74        os: linux
    75        dist: xenial
    76        script:
    77          - sudo modprobe fuse
    78          - sudo chmod 666 /dev/fuse
    79          - sudo chown root:$USER /etc/fuse.conf
    80          - go run build/ci.go install
    81          - go run build/ci.go test -coverage $TEST_PACKAGES
    82      - if: tag IS blank
    83        os: osx
    84        osx_image: xcode9.2 # so we don't have to deal with Kernel Extension Consent UI which is never possible in CI
    85        script:
    86          - brew update
    87          - brew install caskroom/cask/brew-cask
    88          - brew cask install osxfuse
    89          - go run build/ci.go install
    90          - go run build/ci.go test -coverage $TEST_PACKAGES
    91  
    92      - if: tag IS present
    93        os: linux
    94        dist: xenial
    95        env: OUTPUT_FILE=geth_${TRAVIS_TAG}_linux_amd64.tar.gz
    96        script:
    97          - build/env.sh go run build/ci.go install ./cmd/geth
    98          - sudo mkdir -p /dist
    99          - cd build/bin
   100          - sudo tar cfvz /dist/${OUTPUT_FILE} geth
   101  
   102      - if: tag IS present
   103        os: osx
   104        osx_image: xcode9.2
   105        env: OUTPUT_FILE=geth_${TRAVIS_TAG}_darwin_amd64.tar.gz
   106        script:
   107          - build/env.sh go run build/ci.go install ./cmd/geth
   108          - sudo mkdir -p /dist
   109          - cd build/bin
   110          - sudo tar cfvz /dist/${OUTPUT_FILE} geth
   111  
   112  before_deploy:
   113    - |
   114      echo "Prepare Bintray descriptor"
   115      export GETH_VERSION=$(cat ${TRAVIS_BUILD_DIR}/VERSION)
   116      export RELEASED_DATE=$(date +'%Y-%m-%d')
   117      sed -e "s/_TRAVIS_TAG_/${TRAVIS_TAG}/g" \
   118          -e "s/_TRAVIS_BUILD_NUMBER_/${TRAVIS_BUILD_NUMBER}/g" \
   119          -e "s/_GETH_VERSION_/${GETH_VERSION}/g" \
   120          -e "s/_RELEASED_DATE_/${RELEASED_DATE}/g" \
   121          -e "s/_TRAVIS_COMMIT_/${TRAVIS_COMMIT}/g" \
   122          -e "s/_TRAVIS_JOB_WEB_URL_/${TRAVIS_JOB_WEB_URL//\//\\/}/g" \
   123          -e "s/_ORGANIZATION_/${BINTRAY_ORGANIZATION}/g" \
   124          ${TRAVIS_BUILD_DIR}/.bintray.json > /tmp/bintray.json
   125  after_deploy:
   126    - |
   127      published=""
   128      while [ "$published" == "" ]; do
   129        echo "Sleep 5s to wait until ${OUTPUT_FILE} is published"
   130        sleep 5
   131        result=$(curl -u ${BINTRAY_USER}:${BINTRAY_API_KEY} "https://api.bintray.com/packages/${BINTRAY_ORGANIZATION}/quorum/geth/versions/${TRAVIS_TAG}/files")
   132        echo "$result"
   133        if [[ "$result" == *"${OUTPUT_FILE}"* ]]; then
   134          published="done"
   135        fi
   136      done
   137    - |
   138      echo "Add ${OUTPUT_FILE} to Download List"
   139      curl -u ${BINTRAY_USER}:${BINTRAY_API_KEY} \
   140          -H "Content-type: application/json" \
   141          -X PUT \
   142          --data "{\"list_in_downloads\": true}" \
   143          https://api.bintray.com/file_metadata/${BINTRAY_ORGANIZATION}/quorum/${TRAVIS_TAG}/${OUTPUT_FILE}
   144  deploy:
   145    provider: bintray
   146    file: /tmp/bintray.json
   147    user: ${BINTRAY_USER}
   148    key: ${BINTRAY_API_KEY}
   149    skip_cleanup: true
   150    on:
   151      tags: true