build-and-install.yml 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. ---
  2. name: Builder
  3. on:
  4. push:
  5. branches:
  6. - master
  7. pull_request:
  8. jobs:
  9. static-build:
  10. name: Build (x86_64)
  11. runs-on: ubuntu-latest
  12. steps:
  13. - name: Git clone repository
  14. uses: actions/checkout@v2
  15. - run: |
  16. git fetch --prune --unshallow --tags
  17. - name: Build
  18. run: |
  19. .github/scripts/build-static-x86_64.sh
  20. source-build:
  21. name: Build & Install
  22. strategy:
  23. fail-fast: false
  24. matrix:
  25. distro:
  26. - 'alpine:edge'
  27. - 'alpine:3.12'
  28. - 'alpine:3.11'
  29. - 'alpine:3.10'
  30. - 'alpine:3.9'
  31. - 'archlinux:latest'
  32. - 'centos:8'
  33. - 'centos:7'
  34. - 'clearlinux:latest'
  35. - 'debian:10'
  36. - 'debian:9'
  37. - 'fedora:33'
  38. - 'fedora:32'
  39. - 'opensuse/leap:15.2'
  40. - 'opensuse/leap:15.1'
  41. - 'opensuse/tumbleweed:latest'
  42. - 'ubuntu:20.10'
  43. - 'ubuntu:20.04'
  44. - 'ubuntu:18.04'
  45. - 'ubuntu:16.04'
  46. include:
  47. - distro: 'alpine:edge'
  48. pre: 'apk add -U bash'
  49. rmjsonc: 'apk del json-c-dev'
  50. - distro: 'alpine:3.12'
  51. pre: 'apk add -U bash'
  52. rmjsonc: 'apk del json-c-dev'
  53. - distro: 'alpine:3.11'
  54. pre: 'apk add -U bash'
  55. rmjsonc: 'apk del json-c-dev'
  56. - distro: 'alpine:3.10'
  57. pre: 'apk add -U bash'
  58. rmjsonc: 'apk del json-c-dev'
  59. - distro: 'alpine:3.9'
  60. pre: 'apk add -U bash'
  61. rmjsonc: 'apk del json-c-dev'
  62. - distro: 'archlinux:latest'
  63. pre: 'pacman --noconfirm -Syu && pacman --noconfirm -Sy grep libffi'
  64. - distro: 'centos:8'
  65. rmjsonc: 'dnf remove -y json-c-devel'
  66. - distro: 'debian:10'
  67. pre: 'apt-get update'
  68. rmjsonc: 'apt-get remove -y libjson-c-dev'
  69. - distro: 'debian:9'
  70. pre: 'apt-get update'
  71. rmjsonc: 'apt-get remove -y libjson-c-dev'
  72. - distro: 'fedora:33'
  73. rmjsonc: 'dnf remove -y json-c-devel'
  74. - distro: 'fedora:32'
  75. rmjsonc: 'dnf remove -y json-c-devel'
  76. - distro: 'opensuse/leap:15.2'
  77. rmjsonc: 'zypper rm -y libjson-c-devel'
  78. - distro: 'opensuse/leap:15.1'
  79. rmjsonc: 'zypper rm -y libjson-c-devel'
  80. - distro: 'opensuse/tumbleweed:latest'
  81. rmjsonc: 'zypper rm -y libjson-c-devel'
  82. - distro: 'ubuntu:20.10'
  83. pre: 'apt-get update'
  84. rmjsonc: 'apt-get remove -y libjson-c-dev'
  85. - distro: 'ubuntu:20.04'
  86. pre: 'apt-get update'
  87. rmjsonc: 'apt-get remove -y libjson-c-dev'
  88. - distro: 'ubuntu:18.04'
  89. pre: 'apt-get update'
  90. rmjsonc: 'apt-get remove -y libjson-c-dev'
  91. - distro: 'ubuntu:16.04'
  92. pre: 'apt-get update'
  93. rmjsonc: 'apt-get remove -y libjson-c-dev'
  94. runs-on: ubuntu-latest
  95. steps:
  96. - name: Git clone repository
  97. uses: actions/checkout@v2
  98. - name: install-required-packages.sh on ${{ matrix.distro }}
  99. env:
  100. PRE: ${{ matrix.pre }}
  101. RMJSONC: ${{ matrix.rmjsonc }}
  102. run: |
  103. echo $PRE > ./prep-cmd.sh
  104. echo $RMJSONC > ./rmjsonc.sh && chmod +x ./rmjsonc.sh
  105. docker build . -f .github/dockerfiles/Dockerfile.build_test -t test --build-arg BASE=${{ matrix.distro }}
  106. - name: Regular build on ${{ matrix.distro }}
  107. run: |
  108. docker run -w /netdata test /bin/sh -c 'autoreconf -ivf && ./configure && make -j2'
  109. - name: netdata-installer on ${{ matrix.distro }}, disable cloud
  110. run: |
  111. docker run -w /netdata test /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --disable-cloud'
  112. - name: netdata-installer on ${{ matrix.distro }}, require cloud
  113. run: |
  114. docker run -w /netdata test /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --require-cloud'
  115. - name: netdata-installer on ${{ matrix.distro }}, require cloud, no JSON-C
  116. if: matrix.rmjsonc != ''
  117. run: |
  118. docker run -w /netdata test \
  119. /bin/sh -c '/netdata/rmjsonc.sh && ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud'
  120. aws-kinesis-build:
  121. name: With AWS Kinesis SDK
  122. strategy:
  123. fail-fast: false
  124. matrix:
  125. distro:
  126. - 'centos:8'
  127. - 'debian:buster'
  128. - 'fedora:32'
  129. - 'ubuntu:20.04'
  130. include:
  131. - distro: 'centos:8'
  132. pre: >-
  133. yum -y update &&
  134. yum -y groupinstall 'Development Tools' &&
  135. yum -y install libcurl-devel openssl-devel libuuid-devel
  136. build_kinesis: >-
  137. git clone https://github.com/aws/aws-sdk-cpp.git &&
  138. cmake -DCMAKE_INSTALL_PREFIX=/usr
  139. -DBUILD_ONLY=kinesis
  140. ./aws-sdk-cpp &&
  141. make &&
  142. make install
  143. - distro: 'debian:buster'
  144. pre: >-
  145. apt-get update &&
  146. DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential &&
  147. DEBIAN_FRONTEND=noninteractive apt-get install -y libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
  148. build_kinesis: >-
  149. git clone https://github.com/aws/aws-sdk-cpp.git &&
  150. cmake -DCMAKE_INSTALL_PREFIX=/usr
  151. -DBUILD_ONLY=kinesis
  152. ./aws-sdk-cpp &&
  153. make &&
  154. make install
  155. - distro: 'fedora:32'
  156. pre: >-
  157. dnf -y update &&
  158. dnf -y groupinstall 'Development Tools' &&
  159. dnf -y install libcurl-devel openssl-devel libuuid-devel
  160. build_kinesis: >-
  161. git clone https://github.com/aws/aws-sdk-cpp.git &&
  162. cmake -DCMAKE_INSTALL_PREFIX=/usr
  163. -DBUILD_ONLY=kinesis
  164. ./aws-sdk-cpp &&
  165. make &&
  166. make install
  167. - distro: 'ubuntu:20.04'
  168. pre: >-
  169. apt-get update &&
  170. DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential &&
  171. DEBIAN_FRONTEND=noninteractive apt-get install -y libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
  172. build_kinesis: >-
  173. git clone https://github.com/aws/aws-sdk-cpp.git &&
  174. cmake -DCMAKE_INSTALL_PREFIX=/usr
  175. -DBUILD_ONLY=kinesis
  176. ./aws-sdk-cpp &&
  177. make &&
  178. make install
  179. runs-on: ubuntu-latest
  180. steps:
  181. - name: Git clone repository
  182. uses: actions/checkout@v2
  183. - name: install-required-packages.sh on ${{ matrix.distro }}
  184. env:
  185. PRE: ${{ matrix.pre }}
  186. BUILD_KINESIS: ${{ matrix.build_kinesis }}
  187. run: |
  188. echo $PRE > ./prep-cmd.sh
  189. echo $BUILD_KINESIS > ./build-kinesis.sh && chmod +x ./build-kinesis.sh
  190. docker build . -f .github/dockerfiles/Dockerfile.build_test -t test --build-arg BASE=${{ matrix.distro }}
  191. - name: Build on ${{ matrix.distro }}
  192. env:
  193. RUNCMD: >-
  194. ./build-kinesis.sh &&
  195. ./netdata-installer.sh --dont-wait --dont-start-it --enable-backend-kinesis
  196. run: |
  197. docker run -w /netdata test \
  198. /bin/sh -c "$RUNCMD"