summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Nierlein <sven@nierlein.de>2021-04-13 09:15:12 +0200
committerSven Nierlein <sven@nierlein.de>2021-04-30 09:56:52 +0200
commitfc71e3f9304ed51f3fd7ca544f38a30a590c8ba5 (patch)
tree3697fee9f0e6b4cafb53dd8d743ac7f40dfa2198
parent444a3579b2168eda949943a060bddff9ec95fd99 (diff)
downloadmonitoring-plugins-fc71e3f.tar.gz
migrate travis ci to github actions
-rw-r--r--.github/NPTest.cache (renamed from plugins/t/NPTest.cache.travis)8
-rwxr-xr-x.github/prepare_debian.sh99
-rw-r--r--.github/workflows/test.yml77
-rw-r--r--.travis.yml98
4 files changed, 180 insertions, 102 deletions
diff --git a/plugins/t/NPTest.cache.travis b/.github/NPTest.cache
index 9b9f8059..232305a7 100644
--- a/plugins/t/NPTest.cache.travis
+++ b/.github/NPTest.cache
@@ -11,7 +11,7 @@
11 'NP_HOSTNAME_VALID_IP' => '130.133.8.40', 11 'NP_HOSTNAME_VALID_IP' => '130.133.8.40',
12 'NP_HOSTNAME_VALID' => 'monitoring-plugins.org', 12 'NP_HOSTNAME_VALID' => 'monitoring-plugins.org',
13 'NP_HOSTNAME_VALID_REVERSE' => 'orwell.monitoring-plugins.org.', 13 'NP_HOSTNAME_VALID_REVERSE' => 'orwell.monitoring-plugins.org.',
14 'NP_HOST_NONRESPONSIVE' => '10.0.0.1', 14 'NP_HOST_NONRESPONSIVE' => '192.168.1.2',
15 'NP_HOST_RESPONSIVE' => 'localhost', 15 'NP_HOST_RESPONSIVE' => 'localhost',
16 'NP_HOST_SMB' => '', 16 'NP_HOST_SMB' => '',
17 'NP_HOST_SNMP' => '', 17 'NP_HOST_SNMP' => '',
@@ -27,12 +27,12 @@
27 'NP_HOST_TCP_SMTP' => 'localhost', 27 'NP_HOST_TCP_SMTP' => 'localhost',
28 'NP_HOST_TCP_SMTP_NOTLS' => '', 28 'NP_HOST_TCP_SMTP_NOTLS' => '',
29 'NP_HOST_TCP_SMTP_TLS' => '', 29 'NP_HOST_TCP_SMTP_TLS' => '',
30 'NP_HOST_TLS_CERT' => 'localhost, 30 'NP_HOST_TLS_CERT' => 'localhost',
31 'NP_HOST_TLS_HTTP' => 'localhost', 31 'NP_HOST_TLS_HTTP' => 'localhost',
32 'NP_HOST_UDP_TIME' => 'none', 32 'NP_HOST_UDP_TIME' => 'none',
33 'NP_INTERNET_ACCESS' => 'yes', 33 'NP_INTERNET_ACCESS' => 'yes',
34 'NP_LDAP_BASE_DN' => 'cn=admin,dc=nodomain', 34 'NP_LDAP_BASE_DN' => 'dc=nodomain',
35 'NP_MOUNTPOINT2_VALID' => '/media/ramdisk', 35 'NP_MOUNTPOINT2_VALID' => '/media/ramdisk1',
36 'NP_MOUNTPOINT_VALID' => '/', 36 'NP_MOUNTPOINT_VALID' => '/',
37 'NP_MYSQL_LOGIN_DETAILS' => '-u root -d test', 37 'NP_MYSQL_LOGIN_DETAILS' => '-u root -d test',
38 'NP_MYSQL_SERVER' => 'localhost', 38 'NP_MYSQL_SERVER' => 'localhost',
diff --git a/.github/prepare_debian.sh b/.github/prepare_debian.sh
new file mode 100755
index 00000000..40053206
--- /dev/null
+++ b/.github/prepare_debian.sh
@@ -0,0 +1,99 @@
1#!/bin/bash
2
3set -x
4set -e
5
6export DEBIAN_FRONTEND=noninteractive
7
8apt-get update
9apt-get -y install software-properties-common
10if [ $(lsb_release -is) = "Debian" ]; then
11 apt-add-repository non-free
12 apt-get update
13fi
14apt-get -y install perl autotools-dev libdbi-dev libldap2-dev libpq-dev libradcli-dev libnet-snmp-perl procps
15apt-get -y install libdbi0-dev libdbd-sqlite3 libssl-dev dnsutils snmp-mibs-downloader libsnmp-perl snmpd
16apt-get -y install fping snmp netcat smbclient vsftpd apache2 ssl-cert postfix libhttp-daemon-ssl-perl
17apt-get -y install libdbd-sybase-perl libnet-dns-perl
18apt-get -y install slapd ldap-utils
19apt-get -y install gcc make autoconf automake gettext
20apt-get -y install faketime
21apt-get -y install libmonitoring-plugin-perl
22apt-get -y install libcurl4-openssl-dev
23apt-get -y install liburiparser-dev
24apt-get -y install squid
25apt-get -y install openssh-server
26apt-get -y install mariadb-server mariadb-client libmariadb-dev
27apt-get -y install cron iputils-ping
28apt-get -y install iproute2
29
30# remove ipv6 interface from hosts
31if [ $(ip addr show | grep "inet6 ::1" | wc -l) -eq "0" ]; then
32 sed '/^::1/d' /etc/hosts > /tmp/hosts
33 cp -f /tmp/hosts /etc/hosts
34fi
35
36ip addr show
37
38cat /etc/hosts
39
40
41# apache
42a2enmod ssl
43a2ensite default-ssl
44make-ssl-cert generate-default-snakeoil --force-overwrite
45service apache2 start
46
47# squid
48cp tools/squid.conf /etc/squid/squid.conf
49service squid start
50
51# mariadb
52service mariadb start
53mysql -e "create database IF NOT EXISTS test;" -uroot
54
55# ldap
56sed -e 's/cn=admin,dc=nodomain/'$(/usr/sbin/slapcat|grep ^dn:|awk '{print $2}')'/' -i .github/NPTest.cache
57service slapd start
58
59# sshd
60ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
61cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
62service ssh start
63sleep 1
64ssh-keyscan localhost >> ~/.ssh/known_hosts
65touch ~/.ssh/config
66
67# start one login session, required for check_users
68( ssh -n -tt root@localhost "top" < /dev/null >/dev/null 2>&1 & )
69sleep 1
70who
71ssh root@localhost "top -b -n 1"
72
73# snmpd
74for DIR in /usr/share/snmp/mibs /usr/share/mibs; do
75 rm -f $DIR/ietf/SNMPv2-PDU \
76 $DIR/ietf/IPSEC-SPD-MIB \
77 $DIR/ietf/IPATM-IPMC-MIB \
78 $DIR/iana/IANA-IPPM-METRICS-REGISTRY-MIB
79done
80mkdir -p /var/lib/snmp/mib_indexes
81sed -e 's/^agentaddress.*/agentaddress 127.0.0.1/' -i /etc/snmp/snmpd.conf
82service snmpd start
83
84# start cron, will be used by check_nagios
85cron
86
87# start postfix
88service postfix start
89
90# start ftpd
91service vsftpd start
92
93# hostname
94sed "/NP_HOST_TLS_CERT/s/.*/'NP_HOST_TLS_CERT' => '$(hostname)',/" -i /src/.github/NPTest.cache
95
96# create some test files to lower inodes
97for i in $(seq 10); do
98 touch /media/ramdisk2/test.$1
99done
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 00000000..4c3497d0
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,77 @@
1name: Test
2
3on:
4 push:
5 branches:
6 - '*'
7 pull_request:
8
9jobs:
10# macos:
11# name: Running tests on ${{ matrix.os }}
12# strategy:
13# fail-fast: false
14# matrix:
15# os:
16# - macos-10.15
17# runs-on: ${{ matrix.os }}
18# steps:
19#
20# - name: Git clone repository
21# uses: actions/checkout@v2
22# #- name: Setup tmate session, see https://github.com/marketplace/actions/debugging-with-tmate
23# # uses: mxschmitt/action-tmate@v3
24# - name: Prepare machine
25# run: |
26# brew install automake
27# - name: Run the tests
28# run: |
29# tools/setup \
30# && ./configure --enable-libtap \
31# && make \
32# && make test
33
34 linux:
35 runs-on: ubuntu-latest
36 name: Running tests on ${{ matrix.distro }}
37 strategy:
38 fail-fast: false
39 matrix:
40 distro:
41 #- 'debian:10'
42 - 'debian:testing'
43 #- 'ubuntu:20.10'
44 #- 'centos:7'
45 #- 'centos:8'
46 include:
47 #- distro: 'debian:10'
48 # prepare: .github/prepare_debian.sh
49 - distro: 'debian:testing'
50 prepare: .github/prepare_debian.sh
51 #- distro: 'ubuntu:20.10'
52 # prepare: .github/prepare_debian.sh
53 #- distro: 'centos:7'
54 # prepare: .github/prepare_centos.sh
55 #- distro: 'centos:8'
56 # prepare: .github/prepare_centos.sh
57 steps:
58 - name: Git clone repository
59 uses: actions/checkout@v2
60 #- name: Setup tmate session, see https://github.com/marketplace/actions/debugging-with-tmate
61 # uses: mxschmitt/action-tmate@v3
62 - name: Run the tests on ${{ matrix.distro }}
63 run: |
64 docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 tmp-vol
65 docker run \
66 -e NPTEST_ACCEPTDEFAULT=1 \
67 -e NPTEST_CACHE="/src/.github/NPTest.cache" \
68 -w /src -v ${PWD}:/src \
69 --tmpfs /media/ramdisk1 \
70 --mount source=tmp-vol,destination=/src,target=/media/ramdisk2 \
71 ${{ matrix.distro }} \
72 /bin/sh -c '${{ matrix.prepare }} && \
73 tools/setup && \
74 ./configure --enable-libtap && \
75 make && \
76 make test'
77 docker volume rm tmp-vol
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 3d9fe64e..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,98 +0,0 @@
1sudo: required
2dist: xenial
3language: c
4
5env:
6 global:
7 # This is the encrypted COVERITY_SCAN_TOKEN, created via the "travis
8 # encrypt" command using the project repository's public key.
9 - secure: "ggJ9c/VfKcwtrwz/My+ne4My7D8g3qi3vz5Hh+yLiri0+oIXCy313ZD6ssIEY/5beQZEOnuHhBgBJd/Y3clSQNc2M9fRNc+wxOkIO992lgnY0MZJN3y9MLfpqUbTClhU9Fst0qXQqGpI6UI8yz1tj7yKi7DPrycJLRrjMpyTfyo="
10
11matrix:
12 include:
13 - compiler: "gcc"
14 os: linux
15 env:
16 - PLATFORM=linux BITS=64 HOST=x86_64
17 addons:
18 coverity_scan:
19 project:
20 name: "monitoring-plugins/monitoring-plugins"
21 description: "Monitoring Plugins"
22 notification_email: team@monitoring-plugins.org
23 build_command_prepend: tools/setup && ./configure
24 build_command: make
25 branch_pattern: coverity.*
26 - compiler: "clang"
27 os: linux
28 env:
29 - PLATFORM=linux BITS=64 HOST=x86_64
30
31before_install:
32 # Trusty related fixed
33 # multiverse is no on trusty activated (https://github.com/travis-ci/travis-ci/issues/4979)
34 - sudo apt-get install -qq --no-install-recommends software-properties-common
35 - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ trusty multiverse" && sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ trusty-updates multiverse"
36 # /etc/hosts has IPv6 hosts (https://github.com/travis-ci/travis-ci/issues/4978)
37 - sudo [ $(ip addr show | grep "inet6 ::1" | wc -l) -eq "0" ] || sudo sed -i '/^::1/d' /etc/hosts
38 # Trusty has running ntpd on localhost, but we don't like that for our tests
39 - "sudo killall -9 ntpd ||:"
40 # Trusty has no swap, lets create some
41 - sudo fallocate -l 20M /swapfile; sudo chmod 600 /swapfile; sudo mkswap /swapfile; sudo swapon /swapfile
42 - sudo apt-get update -qq
43 - sudo apt-get purge -qq gawk
44
45install:
46 - sudo apt-get install -qq --no-install-recommends perl autotools-dev libdbi-dev libldap2-dev libpq-dev libmysqlclient-dev libradcli-dev libkrb5-dev libnet-snmp-perl procps
47 - sudo apt-get install -qq --no-install-recommends libdbi0-dev libdbd-sqlite3 libssl-dev dnsutils snmp-mibs-downloader libsnmp-perl snmpd
48 - sudo apt-get install -qq --no-install-recommends fping snmp netcat smbclient fping pure-ftpd apache2 ssl-cert postfix libhttp-daemon-ssl-perl
49 - sudo apt-get install -qq --no-install-recommends libdbd-sybase-perl libnet-dns-perl
50 - sudo apt-get install -qq --no-install-recommends slapd ldap-utils
51 - sudo apt-get install -qq --no-install-recommends autoconf automake
52 - sudo apt-get install -qq --no-install-recommends faketime
53 - sudo apt-get install -qq --no-install-recommends libmonitoring-plugin-perl
54 - sudo apt-get install -qq --no-install-recommends libcurl4-openssl-dev
55 - sudo apt-get install -qq --no-install-recommends liburiparser-dev
56 - sudo apt-get install -qq --no-install-recommends squid
57 # Trusty related dependencies (not yet provided)
58 - test "$(dpkg -l | grep -E "mysql-(client|server)-[0-9].[0-9]" | grep -c ^ii)" -gt 0 || sudo apt-get install -qq --no-install-recommends mariadb-client mariadb-server
59 # enable ssl apache
60 - sudo a2enmod ssl
61 - sudo a2ensite default-ssl
62 - sudo make-ssl-cert generate-default-snakeoil --force-overwrite
63 - sudo service apache2 reload
64 - sudo cp tools/squid.conf /etc/squid/squid.conf
65 - sudo service squid reload
66 - sudo service mysql restart
67
68before_script:
69 # ensure we have a test database in place for tests
70 - mysql -e "create database IF NOT EXISTS test;" -uroot
71 # Detect LDAP configuration (seems volatile on trusty env)
72 - sed -e 's/cn=admin,dc=nodomain/'$(sudo /usr/sbin/slapcat|grep ^dn:|grep cn=|awk '{print $2}')'/' -i plugins/t/NPTest.cache.travis
73 - tools/setup
74 - ./configure --enable-libtap
75 - make
76 - export NPTEST_ACCEPTDEFAULT=1
77 - export NPTEST_CACHE="$(pwd)/plugins/t/NPTest.cache.travis"
78 - ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
79 - cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
80 - ssh-keyscan localhost >> ~/.ssh/known_hosts
81 - touch ~/.ssh/config
82 - sudo rm -f /usr/share/mibs/ietf/SNMPv2-PDU /usr/share/mibs/ietf/IPSEC-SPD-MIB /usr/share/mibs/ietf/IPATM-IPMC-MIB /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
83 - sudo mkdir -p /var/lib/snmp/mib_indexes
84 - sudo mkdir /media/ramdisk && sudo chmod 777 /media/ramdisk && sudo mount -t tmpfs -o size=20% none /media/ramdisk
85 - sed "/NP_HOST_TLS_CERT/s/.*/'NP_HOST_TLS_CERT' => '$(hostname)',/" -i $NPTEST_CACHE
86
87script:
88 - if [ "$COVERITY_SCAN_BRANCH" != 1 ]; then make test; fi
89
90notifications:
91 irc:
92 channels:
93 - "chat.freenode.net#Monitoring-Plugins"
94 on_success: change
95 on_failure: always
96 skip_join: true
97 email:
98 # - team@monitoring-plugins.org