summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAustin S. Hemmelgarn <austin@netdata.cloud>2020-03-17 07:15:28 -0400
committerGitHub <noreply@github.com>2020-03-17 07:15:28 -0400
commit449f09bdf64a95a238cc43a110beb49c38930049 (patch)
treeb5300bf06f669084417775898ecc51b8fe3676b7
parentafdef8ae1812a22c35a213c8fb402429ea0da9cc (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_test11
-rw-r--r--.github/workflows/build-and-install.yml (renamed from .github/workflows/installer.yml)38
-rw-r--r--.github/workflows/build.yml72
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'