netdata/.github/workflows/build-and-install.yml

207 lines
7.3 KiB
YAML

---
name: Builder
on:
push:
branches:
- master
pull_request:
jobs:
static-build:
name: Build (x86_64)
runs-on: ubuntu-latest
steps:
- name: Git clone repository
uses: actions/checkout@v2
- run: |
git fetch --prune --unshallow --tags
- name: Build
run: |
.github/scripts/build-static-x86_64.sh
source-build:
name: Build & Install
strategy:
fail-fast: false
matrix:
distro:
- 'alpine:edge'
- 'alpine:3.11'
- 'alpine:3.10'
- 'alpine:3.9'
- 'archlinux:latest'
#- 'centos:8'
- 'centos:7'
- 'clearlinux:latest'
- 'debian:bullseye'
- 'debian:buster'
- 'debian:stretch'
- 'debian:jessie'
- 'fedora:32'
- 'fedora:31'
- 'opensuse/leap:15.2'
- 'opensuse/leap:15.1'
- 'opensuse/tumbleweed:latest'
- 'ubuntu:20.04'
- 'ubuntu:19.10'
- 'ubuntu:18.04'
- 'ubuntu:16.04'
include:
- distro: 'alpine:edge'
pre: 'apk add -U bash'
rmjsonc: 'apk del json-c-dev'
- distro: 'alpine:3.11'
pre: 'apk add -U bash'
rmjsonc: 'apk del json-c-dev'
- distro: 'alpine:3.10'
pre: 'apk add -U bash'
rmjsonc: 'apk del json-c-dev'
- distro: 'alpine:3.9'
pre: 'apk add -U bash'
rmjsonc: 'apk del json-c-dev'
- distro: 'archlinux:latest'
pre: 'pacman --noconfirm -Syu && pacman --noconfirm -Sy grep libffi'
#- distro: 'centos:8'
#rmjsonc: 'dnf remove -y json-c-devel'
- distro: 'debian:bullseye'
pre: 'apt-get update'
rmjsonc: 'apt-get remove -y libjson-c-dev'
- distro: 'debian:buster'
pre: 'apt-get update'
rmjsonc: 'apt-get remove -y libjson-c-dev'
- distro: 'debian:stretch'
pre: 'apt-get update'
rmjsonc: 'apt-get remove -y libjson-c-dev'
- distro: 'fedora:32'
rmjsonc: 'dnf remove -y json-c-devel'
- distro: 'fedora:31'
rmjsonc: 'dnf remove -y json-c-devel'
- distro: 'opensuse/leap:15.2'
rmjsonc: 'zypper rm -y libjson-c-devel'
- distro: 'opensuse/leap:15.1'
rmjsonc: 'zypper rm -y libjson-c-devel'
- distro: 'opensuse/tumbleweed:latest'
rmjsonc: 'zypper rm -y libjson-c-devel'
- distro: 'ubuntu:20.04'
pre: 'apt-get update'
rmjsonc: 'apt-get remove -y libjson-c-dev'
- distro: 'ubuntu:19.10'
pre: 'apt-get update'
rmjsonc: 'apt-get remove -y libjson-c-dev'
- distro: 'ubuntu:18.04'
pre: 'apt-get update'
rmjsonc: 'apt-get remove -y libjson-c-dev'
- distro: 'ubuntu:16.04'
pre: 'apt-get update'
rmjsonc: 'apt-get remove -y libjson-c-dev'
runs-on: ubuntu-latest
steps:
- name: Git clone repository
uses: actions/checkout@v2
- name: install-required-packages.sh on ${{ matrix.distro }}
env:
PRE: ${{ matrix.pre }}
RMJSONC: ${{ matrix.rmjsonc }}
run: |
echo $PRE > ./prep-cmd.sh
echo $RMJSONC > ./rmjsonc.sh && chmod +x ./rmjsonc.sh
docker build . -f .github/dockerfiles/Dockerfile.build_test -t test --build-arg BASE=${{ matrix.distro }}
- name: Regular build on ${{ matrix.distro }}
run: |
docker run -w /netdata test /bin/sh -c 'autoreconf -ivf && ./configure && make -j2'
- name: netdata-installer on ${{ matrix.distro }}, disable cloud
run: |
docker run -w /netdata test /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --disable-cloud'
- name: netdata-installer on ${{ matrix.distro }}, require cloud
run: |
docker run -w /netdata test /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --require-cloud'
- name: netdata-installer on ${{ matrix.distro }}, require cloud, no JSON-C
if: matrix.rmjsonc != ''
run: |
docker run -w /netdata test \
/bin/sh -c '/netdata/rmjsonc.sh && ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud'
aws-kinesis-build:
name: With AWS Kinesis SDK
strategy:
fail-fast: false
matrix:
distro:
# XXX: CentOS 8.x is broken (libjudy)
# - 'centos:8'
- 'debian:buster'
- 'fedora:32'
- 'ubuntu:20.04'
include:
#- distro: 'centos:8'
# pre: >-
# yum -y update &&
# yum -y groupinstall 'Development Tools' &&
# yum -y install libcurl-devel openssl-devel libuuid-devel
# build_kinesis: >-
# git clone https://github.com/aws/aws-sdk-cpp.git &&
# cmake -DCMAKE_INSTALL_PREFIX=/usr
# -DBUILD_ONLY=kinesis
# ./aws-sdk-cpp &&
# make &&
# make install
- distro: 'debian:buster'
pre: >-
apt-get update &&
apt-get install -y build-essential &&
apt-get install -y libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
build_kinesis: >-
git clone https://github.com/aws/aws-sdk-cpp.git &&
cmake -DCMAKE_INSTALL_PREFIX=/usr
-DBUILD_ONLY=kinesis
./aws-sdk-cpp &&
make &&
make install
- distro: 'fedora:32'
pre: >-
dnf -y update &&
dnf -y groupinstall 'Development Tools' &&
dnf -y install libcurl-devel openssl-devel libuuid-devel
build_kinesis: >-
git clone https://github.com/aws/aws-sdk-cpp.git &&
cmake -DCMAKE_INSTALL_PREFIX=/usr
-DBUILD_ONLY=kinesis
./aws-sdk-cpp &&
make &&
make install
- distro: 'ubuntu:20.04'
pre: >-
apt-get update &&
apt-get install -y build-essential &&
apt-get install -y libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
build_kinesis: >-
git clone https://github.com/aws/aws-sdk-cpp.git &&
cmake -DCMAKE_INSTALL_PREFIX=/usr
-DBUILD_ONLY=kinesis
./aws-sdk-cpp &&
make &&
make install
runs-on: ubuntu-latest
steps:
- name: Git clone repository
uses: actions/checkout@v2
- name: install-required-packages.sh on ${{ matrix.distro }}
env:
PRE: ${{ matrix.pre }}
BUILD_KINESIS: ${{ matrix.build_kinesis }}
run: |
echo $PRE > ./prep-cmd.sh
echo $BUILD_KINESIS > ./build-kinesis.sh && chmod +x ./build-kinesis.sh
docker build . -f .github/dockerfiles/Dockerfile.build_test -t test --build-arg BASE=${{ matrix.distro }}
- name: Build on ${{ matrix.distro }}
env:
RUNCMD: >-
./build-kinesis.sh &&
./netdata-installer.sh --dont-wait --dont-start-it --enable-backend-kinesis
run: |
docker run -w /netdata test \
/bin/sh -c "$RUNCMD"