.travis.yml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. # Globals
  2. language: go
  3. go:
  4. - 1.16.x
  5. env:
  6. global:
  7. - VERSION=$(echo ${TRAVIS_BRANCH} | sed "s/\//_/g")
  8. - OUTPUT="bettercap"
  9. cache:
  10. apt: true
  11. # Includes
  12. linux_deps: &linux_deps
  13. os: linux
  14. dist: bionic
  15. addons:
  16. apt:
  17. packages:
  18. - p7zip-full
  19. - libpcap-dev
  20. - libnetfilter-queue-dev
  21. - libusb-1.0-0-dev
  22. update: true
  23. finish: &finish
  24. after_success:
  25. - file "${OUTPUT}"
  26. - openssl dgst -sha256 "${OUTPUT}" | tee bettercap_${TARGET_OS}_${TARGET_ARCH}_${VERSION}.sha256
  27. - 7z a "bettercap_${TARGET_OS}_${TARGET_ARCH}_${VERSION}.zip" "${OUTPUT}" "bettercap_${TARGET_OS}_${TARGET_ARCH}_${VERSION}.sha256"
  28. - ls -la bettercap*
  29. cross_deps: &cross_deps
  30. <<: *linux_deps
  31. before_install:
  32. - wget --show-progress -qcO "qemu.deb" "https://github.com/bettercap/buildutils/raw/main/qemu-user-static_5.2_dfsg-9_amd64.deb"
  33. - sudo dpkg -i "qemu.deb"
  34. normal_install: &normal_install
  35. install:
  36. - make -e TARGET="${OUTPUT}"
  37. <<: *finish
  38. cross_install: &cross_install
  39. install:
  40. - sudo builder/arm_builder.sh bettercap make -e TARGET="${OUTPUT}"
  41. <<: *finish
  42. # Tasks
  43. matrix:
  44. include:
  45. - name: Linux - amd64
  46. if: tag IS present
  47. arch: amd64
  48. env:
  49. - TARGET_OS=linux
  50. - TARGET_ARCH=amd64
  51. <<: *linux_deps
  52. <<: *normal_install
  53. - name: Linux - aarch64
  54. if: tag IS present
  55. arch: arm64
  56. env:
  57. - TARGET_OS=linux
  58. - TARGET_ARCH=aarch64
  59. - GEM_HOME=~/.ruby
  60. - PATH=$PATH:~/.ruby/bin
  61. <<: *linux_deps
  62. <<: *normal_install
  63. before_install:
  64. - mkdir -p ~/.ruby
  65. - name: Linux - armhf
  66. if: tag IS present
  67. language: minimal
  68. arch: amd64
  69. env:
  70. - TARGET_OS=linux
  71. - TARGET_ARCH=armhf
  72. <<: *cross_deps
  73. <<: *cross_install
  74. - name: OSX - amd64
  75. if: tag IS present
  76. os: osx
  77. osx_image: xcode12.5
  78. arch: amd64
  79. addons:
  80. homebrew:
  81. packages:
  82. - libpcap
  83. - libusb
  84. - p7zip
  85. update: true
  86. env:
  87. - TARGET_OS=darwin
  88. - TARGET_ARCH=amd64
  89. - PATH="/usr/local/opt/libpcap/bin:$PATH"
  90. - LDFLAGS="-L/usr/local/opt/libpcap/lib $LDFLAGS"
  91. - CPPFLAGS="-I/usr/local/opt/libpcap/include $CPPFLAGS"
  92. - PKG_CONFIG_PATH="/usr/local/opt/libpcap/lib/pkgconfig:$PKG_CONFIG_PATH"
  93. <<: *normal_install
  94. - name: Windows - amd64
  95. if: tag IS present
  96. os: windows
  97. arch: amd64
  98. env:
  99. - TARGET_OS=windows
  100. - TARGET_ARCH=amd64
  101. - PKG_CONFIG_PATH="c:/pkg-config"
  102. - OUTPUT=bettercap.exe
  103. - CGO_CFLAGS="-I/c/winpcap/WpdPack/Include -I/c/libusb/include/libusb-1.0"
  104. - CGO_LDFLAGS="-L/c/winpcap/WpdPack/Lib/x64 -L/c/libusb/MinGW64/static"
  105. before_install:
  106. - choco install openssl.light -y
  107. - choco install make -y
  108. - choco install 7zip -y
  109. - choco install pkgconfiglite -y
  110. - mkdir /c/pkg-config
  111. - choco install zadig -y
  112. - curl -L "https://github.com/libusb/libusb/releases/download/v1.0.24/libusb-1.0.24.7z" -o "/c/libusb.7z"
  113. - 7z x -y "/c/libusb.7z" -o"/c/libusb"
  114. - cp builder/libusb.pc /c/pkg-config/libusb.pc
  115. - cp builder/libusb.pc /c/pkg-config/libusb-1.0.pc
  116. - choco install winpcap -y
  117. - curl -L "https://www.winpcap.org/install/bin/WpdPack_4_1_2.zip" -o "c:/wpcap-sdk.zip"
  118. - 7z x -y "/c/wpcap-sdk.zip" -o"/c/winpcap"
  119. <<: *normal_install
  120. - name: Linux - tests
  121. if: tag IS blank
  122. os: linux
  123. arch: amd64
  124. allow_failures:
  125. - go: master
  126. fast_finish: true
  127. <<: *linux_deps
  128. script:
  129. - env GO111MODULE=on make test
  130. - name: OSX - tests
  131. if: tag IS blank
  132. os: osx
  133. osx_image: xcode12.5
  134. arch: amd64
  135. allow_failures:
  136. - go: master
  137. fast_finish: true
  138. addons:
  139. homebrew:
  140. packages:
  141. - libpcap
  142. - libusb
  143. - p7zip
  144. update: true
  145. env:
  146. - TARGET_OS=darwin
  147. - TARGET_ARCH=amd64
  148. - PATH="/usr/local/opt/libpcap/bin:$PATH"
  149. - LDFLAGS="-L/usr/local/opt/libpcap/lib $LDFLAGS"
  150. - CPPFLAGS="-I/usr/local/opt/libpcap/include $CPPFLAGS"
  151. - PKG_CONFIG_PATH="/usr/local/opt/libpcap/lib/pkgconfig:$PKG_CONFIG_PATH"
  152. script:
  153. - env GO111MODULE=on make test
  154. deploy:
  155. provider: releases
  156. api_key:
  157. secure: gaQDeYOe/8lL3++jok73kSNtJVyj5Dk8RdxerjSa3hsVrL5IljsNsGGXocesCQ4ubFrnOO26RmO1FxMKmqYBpewRwQ6GKqZjc7IbwR9Cy0c0AyRRULnCsXue3NxIQBobqAwKtaaqDPHZcX1eOVgDnrheMpT5nt9YN2Xyv9zdFAmjfhUxv8K3nyv9eOMHYy0TmcKanQSXcYTHnUONt4Af5XA2NZGTtLUB+FAEf93vLqyqmmkX0EJciYu3HSZmCPFLLACi1WDSvt+e4TlozrutMpgm3JNzZ3eg6IsesRzxy/s2HeOnVJLMCadGjqap98xfSY6V00cUdCny+n8xfDgCzMljM0bEMDUhIs97AFdLXJZKPRGrNSmnurIcJ+NaVrFS5BMiLwQ2J6WiRvDaCWROVd+Vml/bWWZIUsMxVapEN5vbtw8R/gSVQyZnZUXLrArIBQxenSFlMcWDi+VMF38GrQgAB/ddlMZqWjVubpWOSN45Eity0SsLAgsAuNjH1YCeCr0zj1sG08NPsnTPSKr+661iuOTpsdgu/4crF6qcFcl/kvJsw6tyFPVLO5yzbX9q4O778vXRduzPuBeD63eFuHD8pwceGxWWxN9vnQtX6OqRKmEsrLP7aL9dkI2zgp7TOj058hNQefQ5FD25yfKNCUfp/tnxa6XrkrPzWq/SX7c=
  158. skip_cleanup: true
  159. file_glob: true
  160. file:
  161. - bettercap_*.zip
  162. - bettercap_*.sha256
  163. on:
  164. tags: true
  165. repo: bettercap/bettercap
  166. branches:
  167. only:
  168. - "/^v[0-9]+\\.[0-9]+\\.[0-9]+[A-Za-z0-9]+?$/"