summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/NPTest.cache5
-rw-r--r--.github/dependabot.yml11
-rwxr-xr-x.github/prepare_debian.sh92
-rw-r--r--.github/workflows/codeql-analysis.yml73
-rw-r--r--.github/workflows/test.yml41
5 files changed, 189 insertions, 33 deletions
diff --git a/.github/NPTest.cache b/.github/NPTest.cache
index 232305a..d488d1b 100644
--- a/.github/NPTest.cache
+++ b/.github/NPTest.cache
@@ -25,8 +25,9 @@
25 'NP_HOST_TCP_POP' => 'pop.web.de', 25 'NP_HOST_TCP_POP' => 'pop.web.de',
26 'NP_HOST_TCP_PROXY' => 'localhost', 26 'NP_HOST_TCP_PROXY' => 'localhost',
27 'NP_HOST_TCP_SMTP' => 'localhost', 27 'NP_HOST_TCP_SMTP' => 'localhost',
28 'NP_HOST_TCP_SMTP_NOTLS' => '', 28 'NP_HOST_TCP_SMTP_NOSTARTTLS' => '',
29 'NP_HOST_TCP_SMTP_TLS' => '', 29 'NP_HOST_TCP_SMTP_STARTTLS' => 'localhost',
30 'NP_HOST_TCP_SMTP_TLS' => 'localhost',
30 'NP_HOST_TLS_CERT' => 'localhost', 31 'NP_HOST_TLS_CERT' => 'localhost',
31 'NP_HOST_TLS_HTTP' => 'localhost', 32 'NP_HOST_TLS_HTTP' => 'localhost',
32 'NP_HOST_UDP_TIME' => 'none', 33 'NP_HOST_UDP_TIME' => 'none',
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..0707364
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,11 @@
1---
2version: 2
3updates:
4 - package-ecosystem: github-actions
5 directory: "/"
6 schedule:
7 interval: daily
8 time: "04:00"
9 pull-request-branch-name:
10 separator: "-"
11 open-pull-requests-limit: 10
diff --git a/.github/prepare_debian.sh b/.github/prepare_debian.sh
index 4021c10..dcf778b 100755
--- a/.github/prepare_debian.sh
+++ b/.github/prepare_debian.sh
@@ -5,27 +5,63 @@ set -e
5 5
6export DEBIAN_FRONTEND=noninteractive 6export DEBIAN_FRONTEND=noninteractive
7 7
8apt-get update 8source /etc/os-release
9apt-get -y install software-properties-common 9
10if [ $(lsb_release -is) = "Debian" ]; then 10if [ ${ID} = "debian" ]; then
11 apt-add-repository non-free 11 if [ -f /etc/apt/sources.list.d/debian.sources ]; then
12 apt-get update 12 sed "s/main/non-free contrib/g" /etc/apt/sources.list.d/debian.sources > /etc/apt/sources.list.d/debian-nonfree.sources
13 else
14 apt-get update
15 apt-get -y install software-properties-common
16 apt-add-repository non-free
17 fi
13fi 18fi
14apt-get -y install perl autotools-dev libdbi-dev libldap2-dev libpq-dev libradcli-dev libnet-snmp-perl procps 19apt-get update
15apt-get -y install libdbi0-dev libdbd-sqlite3 libssl-dev dnsutils snmp-mibs-downloader libsnmp-perl snmpd 20apt-get -y install perl \
16apt-get -y install fping snmp netcat-openbsd smbclient vsftpd apache2 ssl-cert postfix libhttp-daemon-ssl-perl 21 autotools-dev \
17apt-get -y install libdbd-sybase-perl libnet-dns-perl 22 libdbi-dev \
18apt-get -y install slapd ldap-utils 23 libldap2-dev \
19apt-get -y install gcc make autoconf automake gettext 24 libpq-dev \
20apt-get -y install faketime 25 libradcli-dev \
21apt-get -y install libmonitoring-plugin-perl 26 libnet-snmp-perl \
22apt-get -y install libcurl4-openssl-dev 27 procps \
23apt-get -y install liburiparser-dev 28 libdbi0-dev \
24apt-get -y install squid 29 libdbd-sqlite3 \
25apt-get -y install openssh-server 30 libssl-dev \
26apt-get -y install mariadb-server mariadb-client libmariadb-dev 31 dnsutils \
27apt-get -y install cron iputils-ping 32 snmp-mibs-downloader \
28apt-get -y install iproute2 33 libsnmp-perl \
34 snmpd \
35 fping \
36 snmp \
37 netcat-openbsd \
38 smbclient \
39 vsftpd \
40 apache2 \
41 ssl-cert \
42 postfix \
43 libhttp-daemon-ssl-perl \
44 libdbd-sybase-perl \
45 libnet-dns-perl \
46 slapd \
47 ldap-utils \
48 gcc \
49 make \
50 autoconf \
51 automake \
52 gettext \
53 faketime \
54 libmonitoring-plugin-perl \
55 libcurl4-openssl-dev \
56 liburiparser-dev \
57 squid \
58 openssh-server \
59 mariadb-server \
60 mariadb-client \
61 libmariadb-dev \
62 cron \
63 iputils-ping \
64 iproute2
29 65
30# remove ipv6 interface from hosts 66# remove ipv6 interface from hosts
31if [ $(ip addr show | grep "inet6 ::1" | wc -l) -eq "0" ]; then 67if [ $(ip addr show | grep "inet6 ::1" | wc -l) -eq "0" ]; then
@@ -37,7 +73,6 @@ ip addr show
37 73
38cat /etc/hosts 74cat /etc/hosts
39 75
40
41# apache 76# apache
42a2enmod ssl 77a2enmod ssl
43a2ensite default-ssl 78a2ensite default-ssl
@@ -53,7 +88,7 @@ cp tools/squid.conf /etc/squid/squid.conf
53service squid start 88service squid start
54 89
55# mariadb 90# mariadb
56service mariadb start 91service mariadb start || service mysql start
57mysql -e "create database IF NOT EXISTS test;" -uroot 92mysql -e "create database IF NOT EXISTS test;" -uroot
58 93
59# ldap 94# ldap
@@ -73,12 +108,7 @@ ssh -tt localhost </dev/null >/dev/null 2>/dev/null &
73disown %1 108disown %1
74 109
75# snmpd 110# snmpd
76for DIR in /usr/share/snmp/mibs /usr/share/mibs; do 111service snmpd stop
77 rm -f $DIR/ietf/SNMPv2-PDU \
78 $DIR/ietf/IPSEC-SPD-MIB \
79 $DIR/ietf/IPATM-IPMC-MIB \
80 $DIR/iana/IANA-IPPM-METRICS-REGISTRY-MIB
81done
82mkdir -p /var/lib/snmp/mib_indexes 112mkdir -p /var/lib/snmp/mib_indexes
83sed -e 's/^agentaddress.*/agentaddress 127.0.0.1/' -i /etc/snmp/snmpd.conf 113sed -e 's/^agentaddress.*/agentaddress 127.0.0.1/' -i /etc/snmp/snmpd.conf
84service snmpd start 114service snmpd start
@@ -86,7 +116,11 @@ service snmpd start
86# start cron, will be used by check_nagios 116# start cron, will be used by check_nagios
87cron 117cron
88 118
89# start postfix 119# postfix
120cat <<EOD >> /etc/postfix/master.cf
121smtps inet n - n - - smtpd
122 -o smtpd_tls_wrappermode=yes
123EOD
90service postfix start 124service postfix start
91 125
92# start ftpd 126# start ftpd
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
new file mode 100644
index 0000000..0317c8c
--- /dev/null
+++ b/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,73 @@
1---
2# For most projects, this workflow file will not need changing; you simply need
3# to commit it to your repository.
4#
5# You may wish to alter this file to override the set of languages analyzed,
6# or to provide custom queries or build logic.
7#
8# ******** NOTE ********
9# We have attempted to detect the languages in your repository. Please check
10# the `language` matrix defined below to confirm you have the correct set of
11# supported CodeQL languages.
12#
13name: "CodeQL"
14
15on:
16 push:
17 branches: [master]
18 pull_request:
19 # The branches below must be a subset of the branches above
20 branches: [master]
21 schedule:
22 - cron: '15 18 * * 0'
23
24jobs:
25 analyze:
26 name: Analyze
27 runs-on: ubuntu-latest
28 permissions:
29 actions: read
30 contents: read
31 security-events: write
32
33 strategy:
34 fail-fast: false
35 matrix:
36 language: ['cpp']
37 # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
38 # Learn more:
39 # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
40
41 steps:
42 - name: Checkout repository
43 uses: actions/checkout@v4
44
45 # Initializes the CodeQL tools for scanning.
46 - name: Initialize CodeQL
47 uses: github/codeql-action/init@v2
48 with:
49 languages: ${{ matrix.language }}
50 # If you wish to specify custom queries, you can do so here or in a config file.
51 # By default, queries listed here will override any specified in a config file.
52 # Prefix the list here with "+" to use these queries and those in the config file.
53 # queries: ./path/to/local/query, your-org/your-repo/queries@main
54
55 - name: Install packages
56 run: |
57 sudo apt update
58 sudo apt-get install -y --no-install-recommends m4 gettext automake autoconf make build-essential
59 sudo apt-get install -y --no-install-recommends perl autotools-dev libdbi-dev libldap2-dev libpq-dev \
60 libmysqlclient-dev libradcli-dev libkrb5-dev libdbi0-dev \
61 libdbd-sqlite3 libssl-dev libcurl4-openssl-dev liburiparser-dev
62
63 - name: Configure build
64 run: |
65 ./tools/setup
66 ./configure --enable-libtap
67
68 - name: Build
69 run: |
70 make
71
72 - name: Perform CodeQL Analysis
73 uses: github/codeql-action/analyze@v2
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 0f93930..77b09f4 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,15 +1,48 @@
1---
1name: Test 2name: Test
2 3
3on: 4on:
4 push: 5 push:
5 branches: 6 branches:
6 - '*' 7 - '*'
8 # Run test for any PRs
7 pull_request: 9 pull_request:
8 10
9jobs: 11jobs:
12 codespell:
13 name: codespell
14 strategy:
15 fail-fast: false
16 runs-on: ubuntu-latest
17 steps:
18 - name: Checkout
19 uses: actions/checkout@v4
20 - name: Codespell
21 uses: codespell-project/actions-codespell@v2
22 with:
23 skip: "./.git,./.gitignore,./ABOUT-NLS,*.po,./gl,./po,./tools/squid.conf,./build-aux/ltmain.sh"
24 ignore_words_list: allright,gord,didi,hda,nd,alis,clen,scrit,ser,fot,te,parm,isnt,consol,oneliners
25 check_filenames: true
26 check_hidden: true
27# super-linter:
28# name: super-linter
29# strategy:
30# fail-fast: false
31# runs-on: ubuntu-latest
32# steps:
33# - name: Checkout
34# uses: actions/checkout@v4
35# - name: Lint Code Base
36# uses: github/super-linter@v5.0.0
37# env:
38# DEFAULT_BRANCH: master
39# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
10# macos: 40# macos:
11# ... 41# ...
12 linux: 42 linux:
43 needs:
44 - codespell
45# - super-linter
13 runs-on: ubuntu-latest 46 runs-on: ubuntu-latest
14 name: Running tests on ${{ matrix.distro }} 47 name: Running tests on ${{ matrix.distro }}
15 strategy: 48 strategy:
@@ -24,7 +57,7 @@ jobs:
24 #... 57 #...
25 steps: 58 steps:
26 - name: Git clone repository 59 - name: Git clone repository
27 uses: actions/checkout@v2 60 uses: actions/checkout@v4
28 #- name: Setup tmate session, see https://github.com/marketplace/actions/debugging-with-tmate 61 #- name: Setup tmate session, see https://github.com/marketplace/actions/debugging-with-tmate
29 # uses: mxschmitt/action-tmate@v3 62 # uses: mxschmitt/action-tmate@v3
30 - name: Run the tests on ${{ matrix.distro }} 63 - name: Run the tests on ${{ matrix.distro }}
@@ -40,7 +73,11 @@ jobs:
40 ${{ matrix.distro }} \ 73 ${{ matrix.distro }} \
41 /bin/sh -c '${{ matrix.prepare }} && \ 74 /bin/sh -c '${{ matrix.prepare }} && \
42 tools/setup && \ 75 tools/setup && \
43 ./configure --enable-libtap --with-ipv6=no && \ 76 ./configure --enable-libtap --with-ipv6=no && \
77 set -x && \
78 tmp_dir=$(mktemp -d -t test-XXXX) && cp -a po/ $tmp_dir/ && \
79 cd po && make update-po && cd .. && \
80 diff -Nur $tmp_dir/po/*.po po/*.po | tee -a /tmp/po.diff && diff -Nur $tmp_dir/po/*.pot po/*.pot | tee -a /tmp/po.diff && if [ $(wc -l /tmp/po.diff | cut -f 1 -d" ") -gt 0 ]; then echo "Error: Translations needs to be updated with make update-po!" && exit 1; fi && \
44 make && \ 81 make && \
45 make test' 82 make test'
46 docker container prune -f 83 docker container prune -f