diff options
author | Austin S. Hemmelgarn <austin@netdata.cloud> | 2020-03-17 07:15:28 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-17 07:15:28 -0400 |
commit | 449f09bdf64a95a238cc43a110beb49c38930049 (patch) | |
tree | b5300bf06f669084417775898ecc51b8fe3676b7 | |
parent | afdef8ae1812a22c35a213c8fb402429ea0da9cc (diff) |
General cleanup of GitHub Actions workflows. (#8383)
* Consolidate GHA workflows.
This removes the installer workflow, which is duplicating checks that
are already implicitly done in the build workflow, and then updates the
build workflow so that it is appropriately named and does both a plain
build and one using the installer.
* Fix handling of Debian Jessie.
* Split install-required-packages to a separate chekc step.
This uses a new Dockerfile to build a base docker image for testing and
check the install-required-packages.sh script at the same time. This
should speed up the multiple build tests significantly.
* Reenable CentOS 8 build checks.
* Create dedicated directory for GHA dockerfiles.
* Re-enable OpenSUSE build tests.
* Remove build checks for distros that have no upstream support.
* Rename workflow file.
-rw-r--r-- | .github/dockerfiles/Dockerfile.build_test | 11 | ||||
-rw-r--r-- | .github/workflows/build-and-install.yml (renamed from .github/workflows/installer.yml) | 38 | ||||
-rw-r--r-- | .github/workflows/build.yml | 72 |
3 files changed, 34 insertions, 87 deletions
diff --git a/.github/dockerfiles/Dockerfile.build_test b/.github/dockerfiles/Dockerfile.build_test new file mode 100644 index 0000000000..1dc3e303d6 --- /dev/null +++ b/.github/dockerfiles/Dockerfile.build_test @@ -0,0 +1,11 @@ +ARG BASE + +FROM ${BASE} + +ARG PRE +ENV PRE=${PRE} + +COPY . /netdata + +RUN /bin/sh /netdata/prep-cmd.sh +RUN /netdata/packaging/installer/install-required-packages.sh --dont-wait --non-interactive netdata-all diff --git a/.github/workflows/installer.yml b/.github/workflows/build-and-install.yml index b14536a8f1..3bbc99d335 100644 --- a/.github/workflows/installer.yml +++ b/.github/workflows/build-and-install.yml @@ -1,20 +1,17 @@ --- -name: Installer +name: Builder on: push: branches: - master - paths: - - 'packaging/installer/install-required-packages.sh' pull_request: - paths: - - 'packaging/installer/install-required-packages.sh' jobs: - install-required-packages: - name: Required Packages + build: + name: Build & Install strategy: matrix: distro: + - 'alpine:edge' - 'alpine:3.11' - 'alpine:3.10' - 'alpine:3.9' @@ -22,22 +19,22 @@ jobs: - 'centos:8' - 'centos:7' - 'centos:6' + - 'debian:bullseye' - 'debian:buster' - - 'debian:jessie' - 'debian:stretch' + - 'debian:jessie' - 'fedora:31' - 'fedora:30' - - 'fedora:29' - 'opensuse/leap:15.2' - 'opensuse/leap:15.1' - - 'opensuse/leap:15.0' - 'opensuse/tumbleweed:latest' - 'ubuntu:20.04' - 'ubuntu:19.10' - - 'ubuntu:19.04' - 'ubuntu:18.04' - 'ubuntu:16.04' include: + - distro: 'alpine:edge' + pre: 'apk add -U bash' - distro: 'alpine:3.11' pre: 'apk add -U bash' - distro: 'alpine:3.10' @@ -48,12 +45,16 @@ jobs: - distro: 'archlinux:latest' pre: 'pacman --noconfirm -Sy grep' - - distro: 'debian:buster' + - distro: 'debian:bullseye' pre: 'apt-get update' - - distro: 'debian:jessie' + - distro: 'debian:buster' pre: 'apt-get update' - distro: 'debian:stretch' pre: 'apt-get update' + - distro: 'debian:jessie' + pre: > + echo "deb http://archive.debian.org/debian/ jessie-backports main contrib non-free" >> /etc/apt/sources.list.d/99-archived.list && + apt-get update -o Acquire::Check-Valid-Until=false - distro: 'ubuntu:20.04' pre: 'apt-get update' @@ -69,8 +70,15 @@ jobs: steps: - name: Git clone repository uses: actions/checkout@v2 - - name: Test installed-required-packages.sh on ${{ matrix.distro }} + - name: install-required-packages.sh on ${{ matrix.distro }} env: PRE: ${{ matrix.pre }} run: | - docker run --rm -e PRE -v $PWD:/netdata -w /netdata ${{ matrix.distro }} /bin/sh -c '[ -n "${PRE}" ] && ${PRE}; ./packaging/installer/install-required-packages.sh --dont-wait --non-interactive' + echo $PRE > ./prep-cmd.sh + docker build . -f .github/dockerfiles/Dockerfile.build_test -t build_test --build-arg BASE=${{ matrix.distro }} + - name: Regular build on ${{ matrix.distro }} + run: | + docker run --rm -e PRE -w /netdata build_test /bin/sh -c 'autoreconf -ivf && ./configure && make -j2' + - name: netdata-installer on ${{ matrix.distro }} + run: | + docker run --rm -e PRE -w /netdata build_test /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index de5e347073..0000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,72 +0,0 @@ ---- -name: Builder -on: - push: - branches: - - master - pull_request: -jobs: - build: - name: Build - strategy: - matrix: - distro: - - 'alpine:3.11' - - 'alpine:3.10' - - 'alpine:3.9' - - 'archlinux:latest' - #- 'centos:8' - - 'centos:7' - - 'centos:6' - - 'debian:bullseye' - - 'debian:buster' - - 'debian:stretch' - - 'fedora:31' - - 'fedora:30' - - 'fedora:29' - #- 'opensuse/leap:15.2' - #- 'opensuse/leap:15.1' - #- 'opensuse/leap:15.0' - #- 'opensuse/tumbleweed:latest' - - 'ubuntu:20.04' - - 'ubuntu:19.10' - - 'ubuntu:19.04' - - 'ubuntu:18.04' - - 'ubuntu:16.04' - include: - - distro: 'alpine:3.11' - pre: 'apk add -U bash' - - distro: 'alpine:3.10' - pre: 'apk add -U bash' - - distro: 'alpine:3.9' - pre: 'apk add -U bash' - - - distro: 'archlinux:latest' - pre: 'pacman --noconfirm -Sy grep' - - - distro: 'debian:bullseye' - pre: 'apt-get update' - - distro: 'debian:buster' - pre: 'apt-get update' - - distro: 'debian:stretch' - pre: 'apt-get update' - - - distro: 'ubuntu:20.04' - pre: 'apt-get update' - - distro: 'ubuntu:19.10' - pre: 'apt-get update' - - distro: 'ubuntu:19.04' - pre: 'apt-get update' - - distro: 'ubuntu:18.04' - pre: 'apt-get update' - - distro: 'ubuntu:16.04' - pre: 'apt-get update' - runs-on: ubuntu-latest - steps: - - name: Git clone repository - uses: actions/checkout@v2 - - name: Build on ${{ matrix.distro }} - env: - PRE: ${{ matrix.pre }} - run: | - docker run --rm -e PRE -v $PWD:/netdata -w /netdata ${{ matrix.distro }} /bin/sh -c '[ -n "${PRE}" ] && ${PRE}; ./packaging/installer/install-required-packages.sh --dont-wait --non-interactive all && ./netdata-installer.sh -u --dont-wait --dont-start-it --disable-go' |