summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/data/distros.yml109
-rw-r--r--.github/labeler.yml127
-rw-r--r--.github/workflows/build.yml5
-rw-r--r--.github/workflows/generate-integrations.yml98
-rw-r--r--.github/workflows/review.yml2
5 files changed, 242 insertions, 99 deletions
diff --git a/.github/data/distros.yml b/.github/data/distros.yml
index 8376b1f03..827378502 100644
--- a/.github/data/distros.yml
+++ b/.github/data/distros.yml
@@ -20,6 +20,8 @@ include:
- &alpine
distro: alpine
version: edge
+ support_type: Community
+ notes: ''
eol_check: false
env_prep: |
apk add -U bash
@@ -28,17 +30,30 @@ include:
test:
ebpf-core: true
- <<: *alpine
+ version: "3.18"
+ support_type: Core
+ notes: ''
+ eol_check: true
+ - <<: *alpine
version: "3.17"
+ support_type: Intermediate
+ notes: ''
eol_check: true
- <<: *alpine
version: "3.16"
+ support_type: Intermediate
+ notes: ''
eol_check: true
- <<: *alpine
version: "3.15"
+ support_type: Intermediate
+ notes: ''
eol_check: true
- distro: archlinux
version: latest
+ support_type: Intermediate
+ notes: ''
eol_check: false
env_prep: |
pacman --noconfirm -Syu && pacman --noconfirm -Sy grep libffi
@@ -48,6 +63,8 @@ include:
- &alma
distro: almalinux
version: "9"
+ support_type: Core
+ notes: ''
jsonc_removal: |
dnf remove -y json-c-devel
eol_check: true
@@ -74,6 +91,8 @@ include:
- &amzn
distro: amazonlinux
version: "2"
+ support_type: Core
+ notes: ''
eol_check: 'amazon-linux'
packages: &amzn_packages
type: rpm
@@ -92,6 +111,8 @@ include:
- distro: centos
version: "7"
+ support_type: Core
+ notes: ''
eol_check: false
packages:
type: rpm
@@ -107,6 +128,8 @@ include:
- &debian
distro: debian
version: "12"
+ support_type: Core
+ notes: ''
base_image: debian:bookworm
eol_check: true
env_prep: |
@@ -143,6 +166,8 @@ include:
- &fedora
distro: fedora
version: "38"
+ support_type: Core
+ notes: ''
eol_check: true
jsonc_removal: |
dnf remove -y json-c-devel
@@ -164,27 +189,25 @@ include:
- &opensuse
distro: opensuse
- version: "tumbleweed"
+ version: "15.5"
+ support_type: Core
+ notes: ''
eol_check: true
- base_image: opensuse/tumbleweed
+ base_image: opensuse/leap:15.5
jsonc_removal: |
zypper rm -y libjson-c-devel
packages: &opensuse_packages
type: rpm
- repo_distro: opensuse/tumbleweed
+ repo_distro: opensuse/leap:15.4
arches:
- x86_64
- aarch64
test:
ebpf-core: true
- <<: *opensuse
- version: "15.5"
- base_image: opensuse/leap:15.5
- packages:
- <<: *opensuse_packages
- repo_distro: opensuse/15.5
- - <<: *opensuse
version: "15.4"
+ support_type: Core
+ notes: ''
base_image: opensuse/leap:15.4
packages:
<<: *opensuse_packages
@@ -193,6 +216,8 @@ include:
- &oracle
distro: oraclelinux
version: "8"
+ support_type: Core
+ notes: ''
eol_check: true
jsonc_removal: |
dnf remove -y json-c-devel
@@ -212,7 +237,9 @@ include:
- &ubuntu
distro: ubuntu
- version: "22.10"
+ version: "22.04"
+ support_type: Core
+ notes: ''
eol_check: true
env_prep: |
rm -f /etc/apt/apt.conf.d/docker && apt-get update
@@ -220,7 +247,7 @@ include:
apt-get remove -y libjson-c-dev
packages: &ubuntu_packages
type: deb
- repo_distro: ubuntu/kinetic
+ repo_distro: ubuntu/jammy
arches:
- amd64
- armhf
@@ -233,12 +260,62 @@ include:
<<: *ubuntu_packages
repo_distro: ubuntu/lunar
- <<: *ubuntu
- version: "22.04"
- packages:
- <<: *ubuntu_packages
- repo_distro: ubuntu/jammy
- - <<: *ubuntu
version: "20.04"
packages:
<<: *ubuntu_packages
repo_distro: ubuntu/focal
+no_include: # Info for platforms not covered in CI
+ - distro: docker
+ version: "19.03 or newer"
+ support_type: Core
+ notes: ''
+ packages:
+ arches:
+ - linux/i386
+ - linux/amd64
+ - linux/arm/v7
+ - linux/arm64
+ - linux/ppc64le
+
+ - distro: clearlinux
+ version: latest
+ support_type: Community
+ notes: ''
+
+ - &rhel
+ distro: rhel
+ version: "9.x"
+ support_type: Core
+ notes: ''
+ packages:
+ arches:
+ - x86_64
+ - aarch64
+ - <<: *rhel
+ version: "8.x"
+ - <<: *rhel
+ version: "7.x"
+ packages:
+ arches:
+ - x86_64
+
+ - &freebsd
+ distro: freebsd
+ version: 13-STABLE
+ support_type: Community
+ notes: ''
+
+ - &macos
+ distro: macos
+ version: '13'
+ support_type: Community
+ notes: ''
+ - <<: *macos
+ version: '12'
+ - <<: *macos
+ version: '11'
+
+ - distro: gentoo
+ version: latest
+ support_type: Community
+ notes: ''
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 44c493b10..1dd4d472a 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -11,8 +11,7 @@
# Please keep the labels sorted and deduplicated.
area/ACLK:
- - aclk/*
- - aclk/**/*
+ - aclk/**
- database/sqlite/sqlite_aclk*
- mqtt_websockets
@@ -20,169 +19,137 @@ area/claim:
- claim/*
area/exporting:
- - exporting/*
- - exporting/**/*
+ - exporting/**
area/build:
- - build/*
- - build/**/*
- - build_external/*
- - build_external/**/*
+ - build/**
+ - build_external/**
- CMakeLists.txt
- configure.ac
- Makefile.am
- "**/Makefile.am"
area/ci:
- - .github/*
- - .github/**/*
+ - .github/**
area/daemon:
- - daemon/*
- - daemon/**/*
+ - daemon/**
area/database:
- - database/*
- - database/**/*
+ - database/**
area/docs:
- "*.md"
- "**/*.md"
- "**/*.mdx"
- - diagrams/*
- - diagrams/**/*
+ - diagrams/**
# -----------------collectors----------------------
area/collectors:
- - collectors/*
- - collectors/**/*
+ - collectors/**
collectors/plugins.d:
- - collectors/plugins.d/*
- - collectors/plugins.d/**/*
+ - collectors/plugins.d/**
collectors/apps:
- - collectors/apps.plugin/*
- - collectors/apps.plugin/**/*
+ - collectors/apps.plugin/**
collectors/cgroups:
- - collectors/cgroups.plugin/*
- - collectors/cgroups.plugin/**/*
+ - collectors/cgroups.plugin/**
collectors/charts.d:
- - collectors/charts.d.plugin/*
- - collectors/charts.d.plugin/**/*
+ - collectors/charts.d.plugin/**
collectors/cups:
- - collectors/cups.plugin/*
- - collectors/cups.plugin/**/*
+ - collectors/cups.plugin/**
collectors/debugfs:
- - collectors/debugfs.plugin/*
- - collectors/debugfs.plugin/**/*
+ - collectors/debugfs.plugin/**
collectors/diskspace:
- - collectors/diskspace.plugin/*
- - collectors/diskspace.plugin/**/*
+ - collectors/diskspace.plugin/**
collectors/ebpf:
- - collectors/ebpf.plugin/*
- - collectors/ebpf.plugin/**/*
+ - collectors/ebpf.plugin/**
collectors/freebsd:
- - collectors/freebsd.plugin/*
- - collectors/freebsd.plugin/**/*
+ - collectors/freebsd.plugin/**
collectors/freeipmi:
- - collectors/freeipmi.plugin/*
- - collectors/freeipmi.plugin/**/*
+ - collectors/freeipmi.plugin/**
collectors/idlejitter:
- - collectors/idlejitter.plugin/*
- - collectors/idlejitter.plugin/**/*
+ - collectors/idlejitter.plugin/**
collectors/ioping:
- - collectors/ioping.plugin/*
- - collectors/ioping.plugin/**/*
+ - collectors/ioping.plugin/**
collectors/macos:
- - collectors/macos.plugin/*
- - collectors/macos.plugin/**/*
+ - collectors/macos.plugin/**
collectors/nfacct:
- - collectors/nfacct.plugin/*
- - collectors/nfacct.plugin/**/*
+ - collectors/nfacct.plugin/**
collectors/perf:
- - collectors/perf.plugin/*
- - collectors/perf.plugin/**/*
+ - collectors/perf.plugin/**
collectors/proc:
- - collectors/proc.plugin/*
- - collectors/proc.plugin/**/*
+ - collectors/proc.plugin/**
collectors/python.d:
- - collectors/python.d.plugin/*
- - collectors/python.d.plugin/**/*
+ - collectors/python.d.plugin/**
collectors/slabinfo:
- - collectors/slabinfo.plugin/*
- - collectors/slabinfo.plugin/**/*
+ - collectors/slabinfo.plugin/**
collectors/statsd:
- - collectors/statsd.plugin/*
- - collectors/statsd.plugin/**/*
+ - collectors/statsd.plugin/**
+
+collectors/systemd-journal:
+ - collectors/systemd-journal.plugin/**
collectors/tc:
- - collectors/tc.plugin/*
- - collectors/tc.plugin/**/*
+ - collectors/tc.plugin/**
collectors/timex:
- - collectors/timex.plugin/*
- - collectors/timex.plugin/**/*
+ - collectors/timex.plugin/**
collectors/xenstat:
- - collectors/xenstat.plugin/*
- - collectors/xenstat.plugin/**/*
+ - collectors/xenstat.plugin/**
# ----------------/collectors----------------------
area/health:
- - health/*
- - health/**/*
+ - health/**
+
+area/metadata:
+ - "**/*metadata.yaml"
+ - integrations/**
area/ml:
- - ml/*
- - ml/**/*
+ - ml/**
area/packaging:
- - contrib/*
- - contrib/**/*
- - packaging/*
- - packaging/**/*
- - system/*
- - system/**/*
+ - contrib/**
+ - packaging/**
+ - system/**
- Dockerfile*
- netdata-installer.sh
- netdata.spec.in
area/registry:
- - registry/*
- - registry/**/*
+ - registry/**
area/streaming:
- - streaming/*
- - streaming/**/*
+ - streaming/**
area/tests:
- - tests/*
- - tests/**/*
+ - tests/**
- daemon/unit_test*
- coverity-scan.sh
- cppcheck.sh
- netdata.cppcheck
area/web:
- - web/*
- - web/**/*
+ - web/**
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 114eb2c53..012f75ac5 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -519,6 +519,7 @@ jobs:
mv ../static-archive/* . || exit 1
ln -s ${{ needs.build-dist.outputs.distfile }} netdata-latest.tar.gz || exit 1
cp ../packaging/version ./latest-version.txt || exit 1
+ cp ../integrations/integrations.js ./integrations.js || exit 1
sha256sum -b ./* > sha256sums.txt || exit 1
cat sha256sums.txt
- name: Store Artifacts
@@ -753,7 +754,7 @@ jobs:
with:
allowUpdates: false
artifactErrorsFailBuild: true
- artifacts: 'final-artifacts/sha256sums.txt,final-artifacts/netdata-*.tar.gz,final-artifacts/netdata-*.gz.run'
+ artifacts: 'final-artifacts/sha256sums.txt,final-artifacts/netdata-*.tar.gz,final-artifacts/netdata-*.gz.run,final-artifacts/integrations.js'
owner: netdata
repo: netdata-nightlies
body: Netdata nightly build for ${{ steps.version.outputs.date }}.
@@ -823,7 +824,7 @@ jobs:
with:
allowUpdates: false
artifactErrorsFailBuild: true
- artifacts: 'final-artifacts/sha256sums.txt,final-artifacts/netdata-*.tar.gz,final-artifacts/netdata-*.gz.run'
+ artifacts: 'final-artifacts/sha256sums.txt,final-artifacts/netdata-*.tar.gz,final-artifacts/netdata-*.gz.run,final-artifacts/integrations.js'
draft: true
tag: ${{ needs.normalize-tag.outputs.tag }}
token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }}
diff --git a/.github/workflows/generate-integrations.yml b/.github/workflows/generate-integrations.yml
new file mode 100644
index 000000000..599cefbc0
--- /dev/null
+++ b/.github/workflows/generate-integrations.yml
@@ -0,0 +1,98 @@
+---
+# CI workflow used to regenerate `integrations/integrations.js` when
+# relevant source files are changed.
+name: Generate Integrations
+on:
+ push:
+ branches:
+ - master
+ paths: # If any of these files change, we need to regenerate integrations.js.
+ - 'collectors/**/metadata.yaml'
+ - 'exporting/**/metadata.yaml'
+ - 'health/notifications/**/metadata.yaml'
+ - 'integrations/templates/**'
+ - 'integrations/categories.yaml'
+ - 'integrations/deploy.yaml'
+ - 'integrations/cloud-notifications/metadata.yaml'
+ - 'integrations/gen_integrations.py'
+ - 'packaging/go.d.version'
+ workflow_dispatch: null
+concurrency: # This keeps multiple instances of the job from running concurrently for the same ref.
+ group: integrations-${{ github.ref }}
+ cancel-in-progress: true
+jobs:
+ generate-integrations:
+ name: Generate Integrations
+ runs-on: ubuntu-latest
+ if: github.repository == 'netdata/netdata'
+ steps:
+ - name: Checkout Agent
+ id: checkout-agent
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
+ submodules: recursive
+ - name: Get Go Ref
+ id: get-go-ref
+ run: echo "go_ref=$(cat packaging/go.d.version)" >> "${GITHUB_ENV}"
+ - name: Checkout Go
+ id: checkout-go
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
+ path: go.d.plugin
+ repository: netdata/go.d.plugin
+ ref: ${{ env.go_ref }}
+ - name: Prepare Dependencies
+ id: prep-deps
+ run: |
+ sudo apt-get install python3-venv
+ python3 -m venv ./virtualenv
+ source ./virtualenv/bin/activate
+ pip install jsonschema referencing jinja2 ruamel.yaml
+ - name: Generate Integrations
+ id: generate
+ run: |
+ source ./virtualenv/bin/activate
+ python3 integrations/gen_integrations.py
+ - name: Clean Up Temporary Data
+ id: clean
+ run: rm -rf go.d.plugin virtualenv
+ - name: Create PR
+ id: create-pr
+ uses: peter-evans/create-pull-request@v5
+ with:
+ token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }}
+ commit-message: Regenerate integrations.js
+ branch: integrations-regen
+ title: Regenerate integrations.js
+ body: |
+ Regenerate `integrations/integrations.js` based on the
+ latest code.
+
+ This PR was auto-generated by
+ `.github/workflows/generate-integrations.yml`.
+ - name: Failure Notification
+ uses: rtCamp/action-slack-notify@v2
+ env:
+ SLACK_COLOR: 'danger'
+ SLACK_FOOTER: ''
+ SLACK_ICON_EMOJI: ':github-actions:'
+ SLACK_TITLE: 'Integrations regeneration failed:'
+ SLACK_USERNAME: 'GitHub Actions'
+ SLACK_MESSAGE: |-
+ ${{ github.repository }}: Failed to create PR rebuilding integrations.js
+ Checkout Agent: ${{ steps.checkout-agent.outcome }}
+ Get Go Ref: ${{ steps.get-go-ref.outcome }}
+ Checkout Go: ${{ steps.checkout-go.outcome }}
+ Prepare Dependencies: ${{ steps.prep-deps.outcome }}
+ Generate Integrations: ${{ steps.generate.outcome }}
+ Clean Up Temporary Data: ${{ steps.clean.outcome }}
+ Create PR: ${{ steps.create-pr.outcome }}
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
+ if: >-
+ ${{
+ failure()
+ && startsWith(github.ref, 'refs/heads/master')
+ && github.repository == 'netdata/netdata'
+ }}
diff --git a/.github/workflows/review.yml b/.github/workflows/review.yml
index 6a580afa6..7e76717ed 100644
--- a/.github/workflows/review.yml
+++ b/.github/workflows/review.yml
@@ -54,7 +54,7 @@ jobs:
run: |
if [ "${{ contains(github.event.pull_request.labels.*.name, 'run-ci/eslint') }}" = "true" ]; then
echo "run=true" >> "${GITHUB_OUTPUT}"
- elif git diff --name-only origin/${{ github.base_ref }} HEAD | grep -v "web/gui/v1" | grep -v "web/gui/v2" | grep -Eq '.*\.js|node\.d\.plugin\.in' ; then
+ elif git diff --name-only origin/${{ github.base_ref }} HEAD | grep -v "web/gui/v1" | grep -v "web/gui/v2" | grep -v "integrations/" | grep -Eq '.*\.js' ; then
echo "run=true" >> "${GITHUB_OUTPUT}"
echo 'JS files have changed, need to run ESLint.'
else