mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-03-16 04:33:01 +01:00
* Conslidate DLC tests into existing CI rows rather than having unique ones * Add dlc to 2.12.12 ci row name
200 lines
8.3 KiB
YAML
200 lines
8.3 KiB
YAML
language: scala
|
|
os: linux
|
|
dist: xenial
|
|
|
|
jobs:
|
|
include:
|
|
# compile website, to check for documentation regressions for docs only PRs
|
|
- stage: docs
|
|
name: Compile Website
|
|
env:
|
|
- TEST_COMMAND="docs/mdoc"
|
|
scala: 2.13.3
|
|
|
|
- stage: trivial
|
|
os: linux
|
|
name: "Compile & Formatting Check"
|
|
env:
|
|
- TEST_COMMAND="test:compile scalafmtCheck test:scalafmtCheck"
|
|
scala: 2.12.12
|
|
|
|
- stage: compile
|
|
os: linux
|
|
name: "Compile & Formatting Check"
|
|
env:
|
|
- TEST_COMMAND="test:compile scalafmtCheck test:scalafmtCheck"
|
|
scala: 2.12.12
|
|
|
|
# compile website, to check for documentation regressions
|
|
- stage: test
|
|
name: Compile website
|
|
env:
|
|
- TEST_COMMAND="docs/mdoc"
|
|
scala: 2.13.3
|
|
|
|
- stage: test
|
|
name: Linux 2.13.3 bitcoind and eclair rpc tests
|
|
os: linux
|
|
env:
|
|
- TEST_COMMAND="bitcoindRpcTest/test bitcoindRpc/coverageReport bitcoindRpc/coverageAggregate bitcoindRpc/coveralls eclairRpcTest/test eclairRpc/coverageReport eclairRpc/coverageAggregate eclairRpc/coveralls"
|
|
scala: 2.13.3
|
|
|
|
- stage: test
|
|
name: Linux 2.12.12 bitcoind and eclair rpc tests
|
|
os: linux
|
|
env:
|
|
- TEST_COMMAND="bitcoindRpcTest/test bitcoindRpc/coverageReport bitcoindRpc/coverageAggregate bitcoindRpc/coveralls eclairRpcTest/test eclairRpc/coverageReport eclairRpc/coverageAggregate eclairRpc/coveralls"
|
|
scala: 2.12.12
|
|
|
|
- stage: test
|
|
name: Linux 2.13.3 App, Chain, Node, and Core Tests
|
|
os: linux
|
|
env:
|
|
- TEST_COMMAND="chainTest/test chain/coverageReport chain/coverageAggregate chain/coveralls nodeTest/test node/coverageReport node/coverageAggregate node/coveralls cryptoTest/test crypto/coverageReport crypto/coverageAggregate crypto/coveralls coreTest/test core/coverageReport core/coverageAggregate core/coveralls secp256k1jni/test zmq/test zmq/coverageReport zmq/coverageAggregate zmq/coveralls appCommonsTest/test appServerTest/test"
|
|
scala: 2.13.3
|
|
|
|
- stage: test
|
|
name: Linux 2.12.12 App, Chain, Node, and Core Tests
|
|
os: linux
|
|
env:
|
|
- TEST_COMMAND="chainTest/test chain/coverageReport chain/coverageAggregate chain/coveralls nodeTest/test node/coverageReport node/coverageAggregate node/coveralls cryptoTest/test crypto/coverageReport crypto/coverageAggregate crypto/coveralls coreTest/test core/coverageReport core/coverageAggregate core/coveralls secp256k1jni/test zmq/test zmq/coverageReport zmq/coverageAggregate zmq/coveralls appCommonsTest/test appServerTest/test"
|
|
scala: 2.12.12
|
|
- stage: test
|
|
name: Linux 2.13.3 KeyManager Wallet, dlc tests
|
|
os: linux
|
|
env:
|
|
- TEST_COMMAND="keyManagerTest/test keyManager/coverageReport keyManager/coverageAggregate keyManager/coveralls walletTest/test wallet/coverageReport wallet/coverageAggregate wallet/coveralls dlcOracleTest/test dlcOracle/coverageReport dlcOracle/coverageAggregate dlcOracle/coveralls"
|
|
scala: 2.13.3
|
|
|
|
- stage: test
|
|
name: Linux 2.12.12 KeyManager, Wallet, dlc tests
|
|
os: linux
|
|
env:
|
|
- TEST_COMMAND="keyManagerTest/test keyManager/coverageReport keyManager/coverageAggregate keyManager/coveralls walletTest/test wallet/coverageReport wallet/coverageAggregate wallet/coveralls dlcOracleTest/test dlcOracle/coverageReport dlcOracle/coverageAggregate dlcOracle/coveralls"
|
|
scala: 2.12.12
|
|
|
|
- stage: test
|
|
os: linux
|
|
name: "Secp256k1 Disabled Core Test"
|
|
env:
|
|
- DISABLE_SECP256K1="true"
|
|
- TEST_COMMAND="coreTest/test cryptoTest/test"
|
|
scala: 2.13.3
|
|
|
|
- stage: test
|
|
os: linux
|
|
name: "PostgreSQL tests"
|
|
env:
|
|
- PG_ENABLED="1"
|
|
- TEST_COMMAND="dbCommonsTest/test chainTest/test nodeTest/test walletTest/test"
|
|
scala: 2.13.3
|
|
|
|
- stage: test
|
|
os: osx
|
|
name: "macOS bitcoind and eclair tests"
|
|
env:
|
|
- TEST_COMMAND="cryptoTest/test coreTest/test appCommonsTest/test bitcoindRpcTest/test bitcoindRpc/coverageReport bitcoindRpc/coverageAggregate bitcoindRpc/coveralls eclairRpcTest/test eclairRpc/coverageReport eclairRpc/coverageAggregate eclairRpc/coveralls"
|
|
scala: 2.13.3
|
|
|
|
# skip all test tagged as UsesExperimentalBitcoind
|
|
# TODO remove this condition once we have a neutrino enabled bitcoind binary for OSX
|
|
- stage: test
|
|
os: osx
|
|
name: "macOS wallet, node, dlc tests"
|
|
env:
|
|
- TEST_COMMAND="walletTest/test wallet/coverageReport wallet/coverageAggregate wallet/coveralls nodeTest/test node/coverageReport node/coverageAggregate node/coveralls dlcOracleTest/test dlcOracle/coverageReport dlcOracle/coveralls"
|
|
scala: 2.13.3
|
|
# Release snapshots/versions of all libraries
|
|
# run ci-release only if previous stages passed
|
|
- stage: release
|
|
jdk: openjdk8
|
|
name: Publish library
|
|
script: sbt ci-release
|
|
|
|
# run website push only if website compilation passed
|
|
# we use custom sbt task that first compiles Scaladocs
|
|
# and then calls the docusaurusPublishGhpages task
|
|
- script: sbt docs/publishWebsite
|
|
name: Publish website
|
|
|
|
# These directories are cached to S3 at the end of the build
|
|
# https://www.scala-sbt.org/1.x/docs/Travis-CI-with-sbt.html#Caching
|
|
cache:
|
|
directories:
|
|
- $HOME/.ivy2/cache
|
|
- $HOME/.sbt
|
|
- $HOME/.m2
|
|
- $HOME/.bitcoin-s/binaries/
|
|
- $HOME/build/bitcoin-s/bitcoin-s/app/server/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/app/server-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/app-commons/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/app-commons-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/bitcoind-rpc/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/bitcoind-rpc-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/chain/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/chain-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/core/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/core-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/crypto/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/crypto-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/db-commons/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/db-commons-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/eclair-rpc/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/eclair-rpc-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/fee-provider/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/fee-provider-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/key-manager/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/key-manager-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/node/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/node-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/secp256k1jni/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/testkit/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/wallet/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/wallet-test/target
|
|
- $HOME/build/bitcoin-s/bitcoin-s/zmq/target
|
|
|
|
# https://www.scala-sbt.org/1.x/docs/Travis-CI-with-sbt.html#Caching
|
|
before_cache:
|
|
# Cleanup the cached directories to avoid unnecessary cache updates
|
|
- rm -fv $HOME/.ivy2/.sbt.ivy.lock
|
|
- find $HOME/.ivy2/cache -name "ivydata-*.properties" -print -delete
|
|
- find $HOME/.sbt -name "*.lock" -print -delete
|
|
|
|
before_script:
|
|
- git fetch --tags
|
|
- git submodule sync
|
|
|
|
stages:
|
|
- name: docs
|
|
if:
|
|
commit_message =~ /(?i)^docs:/ AND
|
|
commit_message !~ /(?i)^trivial:/ AND NOT
|
|
((branch = master AND type = push) OR (tag IS present))
|
|
|
|
- name: trivial
|
|
if:
|
|
commit_message =~ /(?i)^trivial:/ AND
|
|
commit_message !~ /(?i)^docs:/ AND NOT
|
|
((branch = master AND type = push) OR (tag IS present))
|
|
# don't run tests on merge builds, just publish library
|
|
# and website
|
|
- name: compile
|
|
if:
|
|
commit_message !~ /(?i)^docs:/ AND
|
|
commit_message !~ /(?i)^trivial:/ AND NOT
|
|
((branch = master AND type = push) OR (tag IS present))
|
|
# don't run tests on merge builds, just publish library
|
|
# and website
|
|
- name: test
|
|
if:
|
|
commit_message !~ /(?i)^docs:/ AND
|
|
commit_message !~ /(?i)^trivial:/ AND NOT
|
|
((branch = master AND type = push) OR (tag IS present))
|
|
# don't run tests on merge builds, just publish library
|
|
# and website
|
|
- name: release
|
|
if: ((branch = master AND type = push) OR (tag IS present)) AND NOT fork
|
|
|
|
script:
|
|
# Modify PATH to include binaries we are about to download
|
|
- sbt ++$TRAVIS_SCALA_VERSION downloadBitcoind downloadEclair coverage $TEST_COMMAND
|