build-and-install.yml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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.11'
  28. - 'alpine:3.10'
  29. - 'alpine:3.9'
  30. - 'archlinux:latest'
  31. #- 'centos:8'
  32. - 'centos:7'
  33. - 'clearlinux:latest'
  34. - 'debian:bullseye'
  35. - 'debian:buster'
  36. - 'debian:stretch'
  37. - 'debian:jessie'
  38. - 'fedora:32'
  39. - 'fedora:31'
  40. - 'opensuse/leap:15.2'
  41. - 'opensuse/leap:15.1'
  42. - 'opensuse/tumbleweed:latest'
  43. - 'ubuntu:20.04'
  44. - 'ubuntu:19.10'
  45. - 'ubuntu:18.04'
  46. - 'ubuntu:16.04'
  47. include:
  48. - distro: 'alpine:edge'
  49. pre: 'apk add -U bash'
  50. rmjsonc: 'apk del json-c-dev'
  51. - distro: 'alpine:3.11'
  52. pre: 'apk add -U bash'
  53. rmjsonc: 'apk del json-c-dev'
  54. - distro: 'alpine:3.10'
  55. pre: 'apk add -U bash'
  56. rmjsonc: 'apk del json-c-dev'
  57. - distro: 'alpine:3.9'
  58. pre: 'apk add -U bash'
  59. rmjsonc: 'apk del json-c-dev'
  60. - distro: 'archlinux:latest'
  61. pre: 'pacman --noconfirm -Sy grep libffi'
  62. #- distro: 'centos:8'
  63. #rmjsonc: 'dnf remove -y json-c-devel'
  64. - distro: 'debian:bullseye'
  65. pre: 'apt-get update'
  66. rmjsonc: 'apt-get remove -y libjson-c-dev'
  67. - distro: 'debian:buster'
  68. pre: 'apt-get update'
  69. rmjsonc: 'apt-get remove -y libjson-c-dev'
  70. - distro: 'debian:stretch'
  71. pre: 'apt-get update'
  72. rmjsonc: 'apt-get remove -y libjson-c-dev'
  73. - distro: 'fedora:32'
  74. rmjsonc: 'dnf remove -y json-c-devel'
  75. - distro: 'fedora:31'
  76. rmjsonc: 'dnf remove -y json-c-devel'
  77. - distro: 'opensuse/leap:15.2'
  78. rmjsonc: 'zypper rm -y libjson-c-devel'
  79. - distro: 'opensuse/leap:15.1'
  80. rmjsonc: 'zypper rm -y libjson-c-devel'
  81. - distro: 'opensuse/tumbleweed:latest'
  82. rmjsonc: 'zypper rm -y libjson-c-devel'
  83. - distro: 'ubuntu:20.04'
  84. pre: 'apt-get update'
  85. rmjsonc: 'apt-get remove -y libjson-c-dev'
  86. - distro: 'ubuntu:19.10'
  87. pre: 'apt-get update'
  88. rmjsonc: 'apt-get remove -y libjson-c-dev'
  89. - distro: 'ubuntu:18.04'
  90. pre: 'apt-get update'
  91. rmjsonc: 'apt-get remove -y libjson-c-dev'
  92. - distro: 'ubuntu:16.04'
  93. pre: 'apt-get update'
  94. rmjsonc: 'apt-get remove -y libjson-c-dev'
  95. runs-on: ubuntu-latest
  96. steps:
  97. - name: Git clone repository
  98. uses: actions/checkout@v2
  99. - name: install-required-packages.sh on ${{ matrix.distro }}
  100. env:
  101. PRE: ${{ matrix.pre }}
  102. RMJSONC: ${{ matrix.rmjsonc }}
  103. run: |
  104. echo $PRE > ./prep-cmd.sh
  105. echo $RMJSONC > ./rmjsonc.sh
  106. docker build . -f .github/dockerfiles/Dockerfile.build_test -t test --build-arg BASE=${{ matrix.distro }}
  107. - name: Regular build on ${{ matrix.distro }}
  108. run: |
  109. docker run -w /netdata test /bin/sh -c 'autoreconf -ivf && ./configure && make -j2'
  110. - name: netdata-installer on ${{ matrix.distro }}, disable cloud
  111. run: |
  112. docker run -w /netdata test /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --disable-cloud'
  113. - name: netdata-installer on ${{ matrix.distro }}, require cloud
  114. run: |
  115. docker run -w /netdata test /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --require-cloud'
  116. - name: netdata-installer on ${{ matrix.distro }}, require cloud, no JSON-C
  117. if: matrix.rmjsonc != ''
  118. run: |
  119. docker run -w /netdata test \
  120. /bin/sh -c '/netdata/rmjsonc.sh && ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud'