summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/CODEOWNERS14
-rw-r--r--.github/data/distros.yml26
-rw-r--r--.github/labeler.yml8
-rwxr-xr-x.github/scripts/build-artifacts.sh1
-rwxr-xr-x.github/scripts/build-dist.sh1
-rwxr-xr-x.github/scripts/get-static-cache-key.sh15
-rwxr-xr-x.github/scripts/pkg-test.sh10
-rwxr-xr-x.github/scripts/run-updater-check.sh3
-rwxr-xr-x.github/scripts/run_install_with_dist_file.sh2
-rw-r--r--.github/workflows/build.yml53
-rw-r--r--.github/workflows/checks.yml4
-rw-r--r--.github/workflows/docker.yml18
-rw-r--r--.github/workflows/packaging.yml16
-rw-r--r--.github/workflows/tests.yml2
14 files changed, 106 insertions, 67 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index fb371e4f..b0a6db16 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -10,19 +10,17 @@
aclk/ @stelfrag @underhood
build/ @Ferroin @iigorkarpov @maneamarius
contrib/debian @Ferroin @iigorkarpov @maneamarius
-collectors/ @vlvkobal @surajnpn
+collectors/ @vlvkobal
collectors/ebpf.plugin/ @thiagoftsm @vlvkobal
-collectors/charts.d.plugin/ @ilyam8 @surajnpn @Ferroin
-collectors/freebsd.plugin/ @vlvkobal @thiagoftsm @surajnpn
-collectors/macos.plugin/ @vlvkobal @thiagoftsm @surajnpn
-collectors/node.d.plugin/ @jacekkolasa
-collectors/node.d.plugin/snmp/ @jacekkolasa
+collectors/charts.d.plugin/ @ilyam8 @Ferroin
+collectors/freebsd.plugin/ @vlvkobal @thiagoftsm
+collectors/macos.plugin/ @vlvkobal @thiagoftsm
collectors/python.d.plugin/ @ilyam8
collectors/cups.plugin/ @simonnagl @vlvkobal @thiagoftsm
exporting/ @vlvkobal @thiagoftsm
daemon/ @thiagoftsm @vkalintiris
database/ @thiagoftsm @vkalintiris
-docs/ @DShreve2 @kickoke
+docs/ @DShreve2
health/ @thiagoftsm @vlvkobal @vkalintiris
health/health.d/ @thiagoftsm @vlvkobal
health/notifications/ @Ferroin @thiagoftsm
@@ -38,7 +36,7 @@ web/gui/ @jacekkolasa
# Ownership by filetype (overwrites ownership by directory)
*.am @Ferroin @iigorkarpov @maneamarius
-*.md @DShreve2 @kickoke
+*.md @DShreve2
Dockerfile* @Ferroin @iigorkarpov @maneamarius
# Ownership of specific files
diff --git a/.github/data/distros.yml b/.github/data/distros.yml
index 8d58f4d2..133cdbd1 100644
--- a/.github/data/distros.yml
+++ b/.github/data/distros.yml
@@ -14,30 +14,37 @@ include:
jsonc_removal: |
apk del json-c-dev
- <<: *alpine
+ version: "3.16"
+ - <<: *alpine
version: "3.15"
- <<: *alpine
version: "3.14"
- <<: *alpine
version: "3.13"
- - <<: *alpine
- version: "3.12"
- distro: archlinux
version: latest
env_prep: |
pacman --noconfirm -Syu && pacman --noconfirm -Sy grep libffi
- - distro: rockylinux
- version: "8"
- base_image: rockylinux/rockylinux
+ - &alma
+ distro: almalinux
+ version: "9"
+ base_image: almalinux
jsonc_removal: |
dnf remove -y json-c-devel
- packages:
+ packages: &alma_packages
type: rpm
- repo_distro: el/8
+ repo_distro: el/9
arches:
- amd64
- arm64
+ - <<: *alma
+ version: "8"
+ packages:
+ <<: *alma_packages
+ repo_distro: el/8
+
- distro: centos
version: "7"
packages:
@@ -89,11 +96,6 @@ include:
packages:
<<: *fedora_packages
repo_distro: fedora/35
- - <<: *fedora
- version: "34"
- packages:
- <<: *fedora_packages
- repo_distro: fedora/34
- &opensuse
distro: opensuse
diff --git a/.github/labeler.yml b/.github/labeler.yml
index d576b937..c7232507 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -10,9 +10,10 @@
#
# Please keep the labels sorted and deduplicated.
-ACLK:
+area/ACLK:
- aclk/*
- aclk/**/*
+ - database/sqlite/sqlite_aclk*
- mqtt_websockets
area/claim:
@@ -47,6 +48,7 @@ area/database:
- database/**/*
area/docs:
+ - "*.md"
- "**/*.md"
- "**/*.mdx"
- diagrams/*
@@ -114,10 +116,6 @@ collectors/nfacct:
- collectors/nfacct.plugin/*
- collectors/nfacct.plugin/**/*
-collectors/node.d:
- - collectors/node.d.plugin/*
- - collectors/node.d.plugin/**/*
-
collectors/perf:
- collectors/perf.plugin/*
- collectors/perf.plugin/**/*
diff --git a/.github/scripts/build-artifacts.sh b/.github/scripts/build-artifacts.sh
index e635765b..569c79a5 100755
--- a/.github/scripts/build-artifacts.sh
+++ b/.github/scripts/build-artifacts.sh
@@ -33,6 +33,7 @@ build_dist() {
--with-zlib \
--with-math \
--with-user=netdata \
+ --disable-dependency-tracking \
CFLAGS=-O2
make dist
mv "${BASENAME}.tar.gz" artifacts/
diff --git a/.github/scripts/build-dist.sh b/.github/scripts/build-dist.sh
index f7e27324..027b6214 100755
--- a/.github/scripts/build-dist.sh
+++ b/.github/scripts/build-dist.sh
@@ -32,6 +32,7 @@ build_dist() {
--with-zlib \
--with-math \
--with-user=netdata \
+ --disable-dependency-tracking \
CFLAGS=-O2
make dist
mv "${BASENAME}.tar.gz" artifacts/
diff --git a/.github/scripts/get-static-cache-key.sh b/.github/scripts/get-static-cache-key.sh
new file mode 100755
index 00000000..d9fa2859
--- /dev/null
+++ b/.github/scripts/get-static-cache-key.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+arch="${1}"
+platform="$(packaging/makeself/uname2platform.sh "${arch}")"
+
+docker pull --platform "${platform}" netdata/static-builder
+
+# shellcheck disable=SC2046
+cat $(find packaging/makeself/jobs -type f ! -regex '.*\(netdata\|-makeself\).*') > /tmp/static-cache-key-data
+
+docker run -it --rm --platform "${platform}" netdata/static-builder sh -c 'apk list -I 2>/dev/null' >> /tmp/static-cache-key-data
+
+h="$(sha256sum /tmp/static-cache-key-data | cut -f 1 -d ' ')"
+
+echo "::set-output name=key::static-${arch}-${h}"
diff --git a/.github/scripts/pkg-test.sh b/.github/scripts/pkg-test.sh
index 148ecd62..179c0c41 100755
--- a/.github/scripts/pkg-test.sh
+++ b/.github/scripts/pkg-test.sh
@@ -7,7 +7,7 @@ install_debian_like() {
apt-get update
# Install Netdata
- apt-get install -y /netdata/artifacts/netdata_"${VERSION}"_*.deb || exit 1
+ apt-get install -y /netdata/artifacts/netdata_"${VERSION}"*_*.deb || exit 1
# Install testing tools
apt-get install -y --no-install-recommends curl netcat jq || exit 1
@@ -36,6 +36,10 @@ install_centos() {
pkg_version="$(echo "${VERSION}" | tr - .)"
+ if [ "${PKGMGR}" = "dnf" ]; then
+ opts="--allowerasing"
+ fi
+
# Install EPEL (needed for `jq`
"$PKGMGR" install -y epel-release || exit 1
@@ -43,7 +47,7 @@ install_centos() {
"$PKGMGR" install -y /netdata/artifacts/netdata-"${pkg_version}"-*.rpm
# Install testing tools
- "$PKGMGR" install -y curl nc jq || exit 1
+ "$PKGMGR" install -y ${opts} curl nc jq || exit 1
}
install_suse_like() {
@@ -101,7 +105,7 @@ case "${DISTRO}" in
fedora | oraclelinux)
install_fedora_like
;;
- centos | rockylinux)
+ centos | rockylinux | almalinux)
install_centos
;;
opensuse)
diff --git a/.github/scripts/run-updater-check.sh b/.github/scripts/run-updater-check.sh
index 264ed616..d8961f8b 100755
--- a/.github/scripts/run-updater-check.sh
+++ b/.github/scripts/run-updater-check.sh
@@ -2,6 +2,9 @@
echo ">>> Installing Netdata..."
/netdata/packaging/installer/kickstart.sh --dont-wait --build-only --disable-telemetry || exit 1
+echo "::group::Environment File Contents"
+cat /etc/netdata/.environment
+echo "::endgroup::"
echo ">>> Updating Netdata..."
export NETDATA_NIGHTLIES_BASEURL="http://localhost:8080/artifacts/" # Pull the tarball from the local web server.
/netdata/packaging/installer/netdata-updater.sh --not-running-from-cron --no-updater-self-update || exit 1
diff --git a/.github/scripts/run_install_with_dist_file.sh b/.github/scripts/run_install_with_dist_file.sh
index 83559f26..d59e8b13 100755
--- a/.github/scripts/run_install_with_dist_file.sh
+++ b/.github/scripts/run_install_with_dist_file.sh
@@ -33,7 +33,7 @@ docker run \
-v "${PWD}:/netdata" \
-w /netdata \
"ubuntu:latest" \
- /bin/bash -c "./install-required-packages.sh --dont-wait --non-interactive netdata && apt install wget && ./netdata-installer.sh --dont-wait --require-cloud --disable-telemetry --install /tmp && echo \"Validating netdata instance is running\" && wget -O - 'http://127.0.0.1:19999/api/v1/info' | grep version"
+ /bin/bash -c "./install-required-packages.sh --dont-wait --non-interactive netdata && apt install wget && ./netdata-installer.sh --dont-wait --require-cloud --disable-telemetry --install /tmp --one-time-build && echo \"Validating netdata instance is running\" && wget -O - 'http://127.0.0.1:19999/api/v1/info' | grep version"
popd || exit 1
echo "All Done!"
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index a50f9df5..16196342 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -88,10 +88,10 @@ jobs:
strategy:
matrix:
arch:
- - 'x86_64'
- - 'armv7l'
- - 'aarch64'
- - 'ppc64le'
+ - x86_64
+ - armv7l
+ - aarch64
+ - ppc64le
steps:
- name: Checkout
id: checkout
@@ -104,9 +104,26 @@ jobs:
if: github.event_name == 'workflow_dispatch' && github.event.inputs.type != 'nightly'
run: |
sed -i 's/^RELEASE_CHANNEL="nightly" *#/RELEASE_CHANNEL="stable" #/' netdata-installer.sh packaging/makeself/install-or-update.sh
+ - name: Get Cache Key
+ id: cache-key
+ run: .github/scripts/get-static-cache-key.sh ${{ matrix.arch }}
+ - name: Cache
+ id: cache
+ uses: actions/cache@v3
+ with:
+ path: artifacts/cache
+ key: ${{ steps.cache-key.outputs.key }}
- name: Build
- id: build
+ if: github.event_name != 'workflow_dispatch' # Don’t use retries on PRs.
run: .github/scripts/build-static.sh ${{ matrix.arch }}
+ - name: Build
+ if: github.event_name == 'workflow_dispatch'
+ id: build
+ uses: nick-fields/retry@v2
+ with:
+ timeout_minutes: 180
+ retries: 3
+ command: .github/scripts/build-static.sh ${{ matrix.arch }}
- name: Store
id: store
uses: actions/upload-artifact@v3
@@ -210,10 +227,10 @@ jobs:
uses: actions/checkout@v3
- name: Setup Buildx
id: buildx
- uses: docker/setup-buildx-action@v1
+ uses: docker/setup-buildx-action@v2
- name: Build test environment
id: build1
- uses: docker/build-push-action@v2
+ uses: docker/build-push-action@v3
continue-on-error: true # We retry 3 times at 5 minute intervals if there is a failure here.
with:
push: false
@@ -226,12 +243,12 @@ jobs:
outputs: type=oci,dest=/tmp/image.tar
tags: test:${{ matrix.artifact_key }}
- name: Retry delay
- if: ${{ steps.build1.outcome }} == 'failure'
+ if: ${{ steps.build1.outcome == 'failure' }}
run: sleep "${RETRY_DELAY}"
- name: Build test environment (attempt 2)
- if: ${{ steps.build1.outcome }} == 'failure'
+ if: ${{ steps.build1.outcome == 'failure' }}
id: build2
- uses: docker/build-push-action@v2
+ uses: docker/build-push-action@v3
continue-on-error: true # We retry 3 times at 5 minute intervals if there is a failure here.
with:
push: false
@@ -244,12 +261,12 @@ jobs:
outputs: type=oci,dest=/tmp/image.tar
tags: test:${{ matrix.artifact_key }}
- name: Retry delay
- if: ${{ steps.build1.outcome }} == 'failure' && ${{ steps.build2.outcome }} == 'failure'
+ if: ${{ steps.build1.outcome == 'failure' && steps.build2.outcome == 'failure' }}
run: sleep "${RETRY_DELAY}"
- name: Build test environment (attempt 3)
- if: ${{ steps.build1.outcome }} == 'failure' && ${{ steps.build2.outcome }} == 'failure'
+ if: ${{ steps.build1.outcome == 'failure' && steps.build2.outcome == 'failure' }}
id: build3
- uses: docker/build-push-action@v2
+ uses: docker/build-push-action@v3
with:
push: false
load: false
@@ -321,23 +338,23 @@ jobs:
id: build-basic
run: |
docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \
- /bin/sh -c 'autoreconf -ivf && ./configure && make -j2'
+ /bin/sh -c 'autoreconf -ivf && ./configure --disable-dependency-tracking && make -j2'
- name: netdata-installer on ${{ matrix.distro }}, disable cloud
id: build-no-cloud
run: |
docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \
- /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --disable-cloud'
+ /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --disable-cloud --one-time-build'
- name: netdata-installer on ${{ matrix.distro }}, require cloud
id: build-cloud
run: |
docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \
- /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --require-cloud'
+ /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --require-cloud --one-time-build'
- name: netdata-installer on ${{ matrix.distro }}, require cloud, no JSON-C
id: build-no-jsonc
if: matrix.jsonc_removal != ''
run: |
docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \
- /bin/sh -c '/rmjsonc.sh && ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud'
+ /bin/sh -c '/rmjsonc.sh && ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud --one-time-build'
- name: Failure Notification
uses: rtCamp/action-slack-notify@v2
env:
@@ -627,7 +644,7 @@ jobs:
export_default_credentials: true
- name: Upload Artifacts
id: upload
- uses: google-github-actions/upload-cloud-storage@v0.9.0
+ uses: google-github-actions/upload-cloud-storage@v0.10.2
with:
destination: ${{ secrets.GCP_NIGHTLY_STORAGE_BUCKET }}
gzip: false
diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml
index 5f9a9c8c..65ad6acb 100644
--- a/.github/workflows/checks.yml
+++ b/.github/workflows/checks.yml
@@ -27,7 +27,7 @@ jobs:
apk del openssl openssl-dev;
apk add libressl libressl-dev;
autoreconf -ivf;
- ./configure;
+ ./configure --disable-dependency-tracking;
make;'
clang-checks:
name: Clang
@@ -51,7 +51,7 @@ jobs:
- name: Prepare environment
run: ./packaging/installer/install-required-packages.sh --dont-wait --non-interactive netdata
- name: Build netdata
- run: ./netdata-installer.sh --dont-start-it --disable-telemetry --dont-wait --install /tmp/install
+ run: ./netdata-installer.sh --dont-start-it --disable-telemetry --dont-wait --install /tmp/install --one-time-build
- name: Check that repo is clean
run: |
git status --porcelain=v1 > /tmp/porcelain
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 10d7093a..b1df95c3 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -28,10 +28,10 @@ jobs:
submodules: recursive
- name: Setup Buildx
id: prepare
- uses: docker/setup-buildx-action@v1
+ uses: docker/setup-buildx-action@v2
- name: Test Build
id: build
- uses: docker/build-push-action@v2
+ uses: docker/build-push-action@v3
with:
load: true
push: false
@@ -82,13 +82,13 @@ jobs:
- name: Setup QEMU
id: qemu
if: matrix.platforms != 'linux/i386'
- uses: docker/setup-qemu-action@v1
+ uses: docker/setup-qemu-action@v2
- name: Setup Buildx
id: buildx
- uses: docker/setup-buildx-action@v1
+ uses: docker/setup-buildx-action@v2
- name: Build
id: build
- uses: docker/build-push-action@v2
+ uses: docker/build-push-action@v3
with:
platforms: ${{ matrix.platforms }}
load: false
@@ -162,19 +162,19 @@ jobs:
run: echo "OFFICIAL_IMAGE=true" >> "${GITHUB_ENV}"
- name: Setup QEMU
id: qemu
- uses: docker/setup-qemu-action@v1
+ uses: docker/setup-qemu-action@v2
- name: Setup Buildx
id: buildx
- uses: docker/setup-buildx-action@v1
+ uses: docker/setup-buildx-action@v2
- name: Docker Hub Login
id: login
- uses: docker/login-action@v1
+ uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Docker Build
id: build
- uses: docker/build-push-action@v2
+ uses: docker/build-push-action@v3
with:
platforms: linux/amd64,linux/i386,linux/arm/v7,linux/arm64,linux/ppc64le
push: true
diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml
index dbf334d5..d793d48a 100644
--- a/.github/workflows/packaging.yml
+++ b/.github/workflows/packaging.yml
@@ -176,7 +176,7 @@ jobs:
- name: Setup QEMU
id: qemu
if: matrix.platform != 'linux/amd64' && matrix.platform != 'linux/i386'
- uses: docker/setup-qemu-action@v1
+ uses: docker/setup-qemu-action@v2
- name: Prepare Docker Environment
id: docker-config
shell: bash
@@ -199,6 +199,13 @@ jobs:
run: |
docker run --security-opt seccomp=unconfined -e DISABLE_TELEMETRY=1 -e VERSION=${{ needs.version-check.outputs.version }} \
--platform=${{ matrix.platform }} -v "$PWD":/netdata netdata/package-builders:${{ matrix.distro }}${{ matrix.version }}
+ - name: Save Packages
+ id: artifacts
+ continue-on-error: true
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}-packages
+ path: ${{ github.workspace }}/artifacts/*
- name: Test Packages
id: test
shell: bash
@@ -207,13 +214,6 @@ jobs:
-e VERSION=${{ needs.version-check.outputs.version }} -e DISTRO_VERSION=${{ matrix.version }} \
--platform=${{ matrix.platform }} -v "$PWD":/netdata ${{ matrix.base_image }}:${{ matrix.version }} \
/netdata/.github/scripts/pkg-test.sh
- - name: Save Packages
- id: artifacts
- continue-on-error: true
- uses: actions/upload-artifact@v3
- with:
- name: ${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}-packages
- path: ${{ github.workspace }}/artifacts/*
- name: Upload to PackageCloud
id: upload
if: github.event_name == 'workflow_dispatch'
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 7e53c497..6272a6d6 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -57,7 +57,7 @@ jobs:
- name: Configure
run: |
autoreconf -ivf
- ./configure --disable-ml
+ ./configure --disable-ml --disable-dependency-tracking
# XXX: Work-around for bug with libbson-1.0 in Ubuntu 18.04
# See: https://bugs.launchpad.net/ubuntu/+source/libmongoc/+bug/1790771
# https://jira.mongodb.org/browse/CDRIVER-2818