.travis.yml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. language: rust
  2. cache: cargo
  3. rust:
  4. - 1.43.0
  5. matrix:
  6. include:
  7. - os: linux
  8. env: TARGET=x86_64-unknown-linux-gnu
  9. - os: linux
  10. env: TARGET=arm-unknown-linux-gnueabihf
  11. services: docker
  12. - os: osx
  13. env: TARGET=x86_64-apple-darwin
  14. - os: linux
  15. env: TARGET=wasm-blob
  16. services: docker
  17. before_install:
  18. - rustup default stable
  19. - rustup update nightly
  20. - rustup target add wasm32-unknown-unknown --toolchain nightly
  21. - rustup component add rustfmt
  22. - rustup component add clippy
  23. - cargo fmt --all -- --check
  24. install:
  25. - |
  26. if [ "$TARGET" = "arm-unknown-linux-gnueabihf" ]
  27. then
  28. docker pull joystream/rust-raspberry
  29. fi
  30. script:
  31. - |
  32. if [ "$TARGET" = "arm-unknown-linux-gnueabihf" ]
  33. then
  34. docker run -u root \
  35. --volume ${TRAVIS_BUILD_DIR}:/home/cross/project \
  36. joystream/rust-raspberry \
  37. test --release
  38. docker run -u root \
  39. --volume ${TRAVIS_BUILD_DIR}:/home/cross/project \
  40. joystream/rust-raspberry \
  41. build --release
  42. sudo chmod a+r ${TRAVIS_BUILD_DIR}/target/${TARGET}/release/joystream-node
  43. elif [ "$TARGET" = "wasm-blob" ]
  44. then
  45. docker build --tag joystream/node \
  46. --file ./devops/dockerfiles/node-and-runtime/Dockerfile \
  47. .
  48. docker create --name temp-container-joystream-node joystream/node
  49. docker cp temp-container-joystream-node:/joystream/runtime.compact.wasm joystream_runtime.wasm
  50. docker rm temp-container-joystream-node
  51. else
  52. cargo test --release --verbose --all --target=${TARGET}
  53. BUILD_DUMMY_WASM_BINARY=1 cargo clippy --release --target=${TARGET} -- -D warnings
  54. cargo build --release --target=${TARGET}
  55. fi
  56. before_deploy:
  57. - |
  58. if [ "$TARGET" = "wasm-blob" ]
  59. then
  60. export ASSET="joystream_runtime.wasm"
  61. else
  62. cp ./target/${TARGET}/release/joystream-node .
  63. if [ "$TARGET" = "arm-unknown-linux-gnueabihf" ]
  64. then
  65. export FILENAME="joystream-node-armv7-linux-gnueabihf"
  66. else
  67. export FILENAME=`./joystream-node --version | sed -e "s/ /-/g"`
  68. fi
  69. tar -cf ${FILENAME}.tar ./joystream-node
  70. gzip ${FILENAME}.tar
  71. export ASSET=${FILENAME}.tar.gz
  72. fi
  73. deploy:
  74. - provider: releases
  75. api_key:
  76. secure: FfxZGQexxAGT0Skbctl1FuqmEvNHejPDPtNG8Du1ACSGjS7Y+M6o/aPqE6HL158AmddOgndsIPR+HM7VfMDAUMkLTbOhv3nMpDBZu1h25vwk+jHOM65tm5LWUu/ROWBpaAQiG7NKrvtfkNfbNBSETsEbWBt/DPrhlIfSbgsXBFDiid7uRrCiwvDUJ097/EUOJ9OVUrk+O4ebSzfIfKPGPtRU2rQQ0eNX7yX3TCm3jbQm/kplkQNRL9mnAJNxtKuvuko4LqZ6jN4XLoLTHUMjO7E0r6wXVB4GVjA4HA214eLlQD6BhgTbWMDxKgWyuKzPG+2GLKyluSSn0RurSl8tYryXKxKxuN3H1FX9r23a8AzGtpRACJtIePC2YmPuQRSnz2Bw8jlSP2WPLJtXGD036J/wVMj6W9TROm7IBigiC7QlqAqCYNByOnoKyhRCgYyAJZb0Jpa3qWaFhA6b6gCGhyH85QCcrc0q6JAB3oqH8Wfm/K2HVzBobmKaSFu5DpwInNnUXnLWGVzhSt3oCq6ld773izReGdLJtLC2vaJ9rZVaVw29s9M662EEuAGgaVLO/sinZJFeIIaCF4i4zUXwXSLIdfKXGOR0ZibkyT2FS6qPGvl/lLN5IREzD7v/rV8htGMLmw4jpPLNskvRjCHX42ewRRYdMvZzQQOAvSlWcsw=
  77. file: ${ASSET}
  78. on:
  79. tags: true
  80. repo: Joystream/joystream
  81. draft: true
  82. overwrite: true
  83. skip_cleanup: true
  84. - provider: releases
  85. api_key:
  86. secure: FfxZGQexxAGT0Skbctl1FuqmEvNHejPDPtNG8Du1ACSGjS7Y+M6o/aPqE6HL158AmddOgndsIPR+HM7VfMDAUMkLTbOhv3nMpDBZu1h25vwk+jHOM65tm5LWUu/ROWBpaAQiG7NKrvtfkNfbNBSETsEbWBt/DPrhlIfSbgsXBFDiid7uRrCiwvDUJ097/EUOJ9OVUrk+O4ebSzfIfKPGPtRU2rQQ0eNX7yX3TCm3jbQm/kplkQNRL9mnAJNxtKuvuko4LqZ6jN4XLoLTHUMjO7E0r6wXVB4GVjA4HA214eLlQD6BhgTbWMDxKgWyuKzPG+2GLKyluSSn0RurSl8tYryXKxKxuN3H1FX9r23a8AzGtpRACJtIePC2YmPuQRSnz2Bw8jlSP2WPLJtXGD036J/wVMj6W9TROm7IBigiC7QlqAqCYNByOnoKyhRCgYyAJZb0Jpa3qWaFhA6b6gCGhyH85QCcrc0q6JAB3oqH8Wfm/K2HVzBobmKaSFu5DpwInNnUXnLWGVzhSt3oCq6ld773izReGdLJtLC2vaJ9rZVaVw29s9M662EEuAGgaVLO/sinZJFeIIaCF4i4zUXwXSLIdfKXGOR0ZibkyT2FS6qPGvl/lLN5IREzD7v/rV8htGMLmw4jpPLNskvRjCHX42ewRRYdMvZzQQOAvSlWcsw=
  87. file: ${ASSET}
  88. on:
  89. branch: development
  90. repo: Joystream/joystream
  91. draft: true
  92. prerelease: true
  93. overwrite: true
  94. skip_cleanup: true