diff options
| author | Sven Nierlein <sven@nierlein.de> | 2021-04-13 09:15:12 +0200 |
|---|---|---|
| committer | Sven Nierlein <sven@nierlein.de> | 2021-04-30 09:56:52 +0200 |
| commit | fc71e3f9304ed51f3fd7ca544f38a30a590c8ba5 (patch) | |
| tree | 3697fee9f0e6b4cafb53dd8d743ac7f40dfa2198 | |
| parent | 444a3579b2168eda949943a060bddff9ec95fd99 (diff) | |
| download | monitoring-plugins-fc71e3f9304ed51f3fd7ca544f38a30a590c8ba5.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.sh | 99 | ||||
| -rw-r--r-- | .github/workflows/test.yml | 77 | ||||
| -rw-r--r-- | .travis.yml | 98 |
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 | |||
| 3 | set -x | ||
| 4 | set -e | ||
| 5 | |||
| 6 | export DEBIAN_FRONTEND=noninteractive | ||
| 7 | |||
| 8 | apt-get update | ||
| 9 | apt-get -y install software-properties-common | ||
| 10 | if [ $(lsb_release -is) = "Debian" ]; then | ||
| 11 | apt-add-repository non-free | ||
| 12 | apt-get update | ||
| 13 | fi | ||
| 14 | apt-get -y install perl autotools-dev libdbi-dev libldap2-dev libpq-dev libradcli-dev libnet-snmp-perl procps | ||
| 15 | apt-get -y install libdbi0-dev libdbd-sqlite3 libssl-dev dnsutils snmp-mibs-downloader libsnmp-perl snmpd | ||
| 16 | apt-get -y install fping snmp netcat smbclient vsftpd apache2 ssl-cert postfix libhttp-daemon-ssl-perl | ||
| 17 | apt-get -y install libdbd-sybase-perl libnet-dns-perl | ||
| 18 | apt-get -y install slapd ldap-utils | ||
| 19 | apt-get -y install gcc make autoconf automake gettext | ||
| 20 | apt-get -y install faketime | ||
| 21 | apt-get -y install libmonitoring-plugin-perl | ||
| 22 | apt-get -y install libcurl4-openssl-dev | ||
| 23 | apt-get -y install liburiparser-dev | ||
| 24 | apt-get -y install squid | ||
| 25 | apt-get -y install openssh-server | ||
| 26 | apt-get -y install mariadb-server mariadb-client libmariadb-dev | ||
| 27 | apt-get -y install cron iputils-ping | ||
| 28 | apt-get -y install iproute2 | ||
| 29 | |||
| 30 | # remove ipv6 interface from hosts | ||
| 31 | if [ $(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 | ||
| 34 | fi | ||
| 35 | |||
| 36 | ip addr show | ||
| 37 | |||
| 38 | cat /etc/hosts | ||
| 39 | |||
| 40 | |||
| 41 | # apache | ||
| 42 | a2enmod ssl | ||
| 43 | a2ensite default-ssl | ||
| 44 | make-ssl-cert generate-default-snakeoil --force-overwrite | ||
| 45 | service apache2 start | ||
| 46 | |||
| 47 | # squid | ||
| 48 | cp tools/squid.conf /etc/squid/squid.conf | ||
| 49 | service squid start | ||
| 50 | |||
| 51 | # mariadb | ||
| 52 | service mariadb start | ||
| 53 | mysql -e "create database IF NOT EXISTS test;" -uroot | ||
| 54 | |||
| 55 | # ldap | ||
| 56 | sed -e 's/cn=admin,dc=nodomain/'$(/usr/sbin/slapcat|grep ^dn:|awk '{print $2}')'/' -i .github/NPTest.cache | ||
| 57 | service slapd start | ||
| 58 | |||
| 59 | # sshd | ||
| 60 | ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa | ||
| 61 | cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys | ||
| 62 | service ssh start | ||
| 63 | sleep 1 | ||
| 64 | ssh-keyscan localhost >> ~/.ssh/known_hosts | ||
| 65 | touch ~/.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 & ) | ||
| 69 | sleep 1 | ||
| 70 | who | ||
| 71 | ssh root@localhost "top -b -n 1" | ||
| 72 | |||
| 73 | # snmpd | ||
| 74 | for 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 | ||
| 79 | done | ||
| 80 | mkdir -p /var/lib/snmp/mib_indexes | ||
| 81 | sed -e 's/^agentaddress.*/agentaddress 127.0.0.1/' -i /etc/snmp/snmpd.conf | ||
| 82 | service snmpd start | ||
| 83 | |||
| 84 | # start cron, will be used by check_nagios | ||
| 85 | cron | ||
| 86 | |||
| 87 | # start postfix | ||
| 88 | service postfix start | ||
| 89 | |||
| 90 | # start ftpd | ||
| 91 | service vsftpd start | ||
| 92 | |||
| 93 | # hostname | ||
| 94 | sed "/NP_HOST_TLS_CERT/s/.*/'NP_HOST_TLS_CERT' => '$(hostname)',/" -i /src/.github/NPTest.cache | ||
| 95 | |||
| 96 | # create some test files to lower inodes | ||
| 97 | for i in $(seq 10); do | ||
| 98 | touch /media/ramdisk2/test.$1 | ||
| 99 | done | ||
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 @@ | |||
| 1 | name: Test | ||
| 2 | |||
| 3 | on: | ||
| 4 | push: | ||
| 5 | branches: | ||
| 6 | - '*' | ||
| 7 | pull_request: | ||
| 8 | |||
| 9 | jobs: | ||
| 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 @@ | |||
| 1 | sudo: required | ||
| 2 | dist: xenial | ||
| 3 | language: c | ||
| 4 | |||
| 5 | env: | ||
| 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 | |||
| 11 | matrix: | ||
| 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 | |||
| 31 | before_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 | |||
| 45 | install: | ||
| 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 | |||
| 68 | before_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 | |||
| 87 | script: | ||
| 88 | - if [ "$COVERITY_SCAN_BRANCH" != 1 ]; then make test; fi | ||
| 89 | |||
| 90 | notifications: | ||
| 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 | ||
