diff options
Diffstat (limited to '.github')
| -rwxr-xr-x | .github/mock.sh | 26 | ||||
| -rwxr-xr-x | .github/prepare_debian.sh | 4 | ||||
| -rw-r--r-- | .github/workflows/test-next.yml | 78 | ||||
| -rw-r--r-- | .github/workflows/test.yml | 1 |
4 files changed, 100 insertions, 9 deletions
diff --git a/.github/mock.sh b/.github/mock.sh index 7fbe6903..87543ce8 100755 --- a/.github/mock.sh +++ b/.github/mock.sh | |||
| @@ -2,6 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | set -x | 3 | set -x |
| 4 | 4 | ||
| 5 | set -euo pipefail | ||
| 6 | |||
| 5 | export DEBIAN_FRONTEND=noninteractive | 7 | export DEBIAN_FRONTEND=noninteractive |
| 6 | 8 | ||
| 7 | BASE_PATH="/src" | 9 | BASE_PATH="/src" |
| @@ -18,7 +20,11 @@ SPEC_FILE="${SPEC_DIR}monitoring-plugins.spec" | |||
| 18 | cd ${BASE_PATH} | 20 | cd ${BASE_PATH} |
| 19 | 21 | ||
| 20 | dnf -y --setopt="tsflags=nodocs" update && \ | 22 | dnf -y --setopt="tsflags=nodocs" update && \ |
| 21 | if [ ${distro_id} != "fedora" ]; then dnf -y --setopt="tsflags=nodocs" install epel-release; else platform_id="$(echo ${platform_id} | sed s/^f/fc/)"; fi && \ | 23 | if [ "${distro_id}" != "fedora" ]; then |
| 24 | dnf -y --setopt="tsflags=nodocs" install epel-release; | ||
| 25 | else | ||
| 26 | platform_id="$(echo "${platform_id}" | sed s/^f/fc/)"; | ||
| 27 | fi && \ | ||
| 22 | case ${distro_id} in | 28 | case ${distro_id} in |
| 23 | ol) | 29 | ol) |
| 24 | case ${platform_id} in | 30 | case ${platform_id} in |
| @@ -32,19 +38,27 @@ dnf -y --setopt="tsflags=nodocs" update && \ | |||
| 32 | ;; | 38 | ;; |
| 33 | esac | 39 | esac |
| 34 | dnf -y --setopt="tsflags=nodocs" install mock rpm-build git-core && \ | 40 | dnf -y --setopt="tsflags=nodocs" install mock rpm-build git-core && \ |
| 35 | usermod -a -G mock $(whoami) | 41 | usermod -a -G mock "$(whoami)" |
| 42 | |||
| 36 | SRC_RPM="monitoring-plugins-*-1.${platform_id}.src.rpm" | 43 | SRC_RPM="monitoring-plugins-*-1.${platform_id}.src.rpm" |
| 44 | |||
| 37 | if command -v git > /dev/null 2>&1; then | 45 | if command -v git > /dev/null 2>&1; then |
| 38 | git config --global --add safe.directory ${BASE_PATH} | 46 | git config --global --add safe.directory ${BASE_PATH} |
| 39 | SHA="$(git rev-parse HEAD)" | 47 | SHA="$(git rev-parse HEAD)" |
| 40 | sed "s/^%global commit.*/%global commit ${SHA}/" ${SPEC_FILE} > ${SPEC_DIR}monitoring-plugins-git.spec | 48 | sed "s/^%global commit.*/%global commit ${SHA}/" ${SPEC_FILE} > ${SPEC_DIR}monitoring-plugins-git.spec |
| 41 | sed -i "s/^%global fromgit.*/%global fromgit 1/" ${SPEC_DIR}monitoring-plugins-git.spec | 49 | sed -i "s/^%global fromgit.*/%global fromgit 1/" ${SPEC_DIR}monitoring-plugins-git.spec |
| 42 | SPEC_FILE="${SPEC_DIR}monitoring-plugins-git.spec" | 50 | SPEC_FILE="${SPEC_DIR}monitoring-plugins-git.spec" |
| 43 | SRC_RPM="monitoring-plugins-*git.$(echo ${SHA:0:7})*.${platform_id}.src.rpm" | 51 | SRC_RPM="monitoring-plugins-*git.${SHA:0:7}*.${platform_id}.src.rpm" |
| 44 | fi | 52 | fi |
| 53 | |||
| 45 | mkdir -p "${SRCRPM_DIR}" "${RPM_DIR}" | 54 | mkdir -p "${SRCRPM_DIR}" "${RPM_DIR}" |
| 46 | #rpmbuild --undefine=_disable_source_fetch --define "_sourcedir ${SOURCE_DIR}" -ba ${SPEC_FILE} | 55 | #rpmbuild --undefine=_disable_source_fetch --define "_sourcedir ${SOURCE_DIR}" -ba ${SPEC_FILE} |
| 47 | dnf -y --setopt="tsflags=nodocs" install rpmdevtools && spectool -g -C ${SOURCE_DIR} ${SPEC_FILE} && \ | 56 | dnf -y --setopt="tsflags=nodocs" install rpmdevtools && \ |
| 48 | mock --dnf --clean --spec ${SPEC_FILE} --sources=${SOURCE_DIR} --result=${SRCRPM_DIR} --build || { cat ${SRCRPM_DIR}/{root,build}.log; exit 1; } | 57 | spectool -g -C ${SOURCE_DIR} ${SPEC_FILE} && \ |
| 49 | mock --dnf --clean --sources=${SOURCE_DIR} --result=${RPM_DIR} --rebuild ${SRCRPM_DIR}/${SRC_RPM} || { cat ${RPM_DIR}/{root,build}.log; exit 1; } | 58 | { mock --dnf --clean --spec ${SPEC_FILE} --sources=${SOURCE_DIR} --result=${SRCRPM_DIR} --build || \ |
| 59 | { cat ${SRCRPM_DIR}/{root,build}.log; exit 1; } } | ||
| 60 | |||
| 61 | mock --dnf --clean --sources=${SOURCE_DIR} --result=${RPM_DIR} --rebuild "${SRCRPM_DIR}"/${SRC_RPM} || \ | ||
| 62 | { cat ${RPM_DIR}/{root,build}.log; exit 1; } | ||
| 63 | |||
| 50 | ls -la ${SOURCE_DIR} ${SRCRPM_DIR} ${RPM_DIR} | 64 | ls -la ${SOURCE_DIR} ${SRCRPM_DIR} ${RPM_DIR} |
diff --git a/.github/prepare_debian.sh b/.github/prepare_debian.sh index 3f4674a2..3640e500 100755 --- a/.github/prepare_debian.sh +++ b/.github/prepare_debian.sh | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | 2 | ||
| 3 | set -x | 3 | set -x |
| 4 | set -e | 4 | set -euo pipefail |
| 5 | 5 | ||
| 6 | export DEBIAN_FRONTEND=noninteractive | 6 | export DEBIAN_FRONTEND=noninteractive |
| 7 | 7 | ||
| @@ -127,5 +127,5 @@ sed "/NP_HOST_TLS_CERT/s/.*/'NP_HOST_TLS_CERT' => '$(hostname)',/" -i /src/.gith | |||
| 127 | 127 | ||
| 128 | # create some test files to lower inodes | 128 | # create some test files to lower inodes |
| 129 | for i in $(seq 10); do | 129 | for i in $(seq 10); do |
| 130 | touch /media/ramdisk2/test.$1 | 130 | touch /media/ramdisk2/test.$i |
| 131 | done | 131 | done |
diff --git a/.github/workflows/test-next.yml b/.github/workflows/test-next.yml new file mode 100644 index 00000000..81240759 --- /dev/null +++ b/.github/workflows/test-next.yml | |||
| @@ -0,0 +1,78 @@ | |||
| 1 | --- | ||
| 2 | name: Tests Debian:Testing and Fedora:Rawhide | ||
| 3 | |||
| 4 | on: | ||
| 5 | workflow_dispatch: {} | ||
| 6 | push: | ||
| 7 | branches-ignore: | ||
| 8 | - '*' | ||
| 9 | schedule: | ||
| 10 | # Run every week on Monday at 9:00 AM (UTC) | ||
| 11 | - cron: '0 9 * * 1' | ||
| 12 | |||
| 13 | jobs: | ||
| 14 | full-test: | ||
| 15 | name: Running unit and integrationt tests | ||
| 16 | runs-on: ubuntu-latest | ||
| 17 | strategy: | ||
| 18 | fail-fast: false | ||
| 19 | matrix: | ||
| 20 | distro: | ||
| 21 | - 'debian:testing' | ||
| 22 | include: | ||
| 23 | - distro: 'debian:testing' | ||
| 24 | prepare: .github/prepare_debian.sh | ||
| 25 | steps: | ||
| 26 | - name: Git clone repository | ||
| 27 | uses: actions/checkout@v4 | ||
| 28 | - name: Run the tests on ${{ matrix.distro }} | ||
| 29 | run: | | ||
| 30 | docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 tmp-vol | ||
| 31 | docker run \ | ||
| 32 | -e NPTEST_ACCEPTDEFAULT=1 \ | ||
| 33 | -e NPTEST_CACHE="/src/.github/NPTest.cache" \ | ||
| 34 | -w /src -v ${PWD}:/src \ | ||
| 35 | --tmpfs /media/ramdisk1 \ | ||
| 36 | -v /var/run/utmp:/var/run/utmp \ | ||
| 37 | --mount source=tmp-vol,destination=/src,target=/media/ramdisk2 \ | ||
| 38 | ${{ matrix.distro }} \ | ||
| 39 | /bin/sh -c '${{ matrix.prepare }} && \ | ||
| 40 | tools/setup && \ | ||
| 41 | ./configure --enable-libtap --with-ipv6=no && \ | ||
| 42 | make && \ | ||
| 43 | make test && \ | ||
| 44 | make dist && \ | ||
| 45 | tar zxf monitoring-plugins-*.tar.gz && \ | ||
| 46 | cd monitoring-plugins-*/ && \ | ||
| 47 | ./configure && \ | ||
| 48 | make' | ||
| 49 | docker container prune -f | ||
| 50 | docker volume prune -f | ||
| 51 | |||
| 52 | build-test: | ||
| 53 | name: Running rpm build test on ${{ matrix.distro }} | ||
| 54 | runs-on: ubuntu-latest | ||
| 55 | strategy: | ||
| 56 | fail-fast: false | ||
| 57 | matrix: | ||
| 58 | include: | ||
| 59 | - {"distro": "fedora:rawhide", "build": ".github/mock.sh"} | ||
| 60 | steps: | ||
| 61 | - name: Git clone repository | ||
| 62 | uses: actions/checkout@v4 | ||
| 63 | - name: Run the tests on ${{ matrix.distro }} | ||
| 64 | run: | | ||
| 65 | docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 tmp-vol | ||
| 66 | docker run \ | ||
| 67 | --privileged=true \ | ||
| 68 | -e NPTEST_ACCEPTDEFAULT=1 \ | ||
| 69 | -e NPTEST_CACHE="/src/.github/NPTest.cache" \ | ||
| 70 | -w /src -v ${PWD}:/src \ | ||
| 71 | --tmpfs /media/ramdisk1 \ | ||
| 72 | -v /var/run/utmp:/var/run/utmp \ | ||
| 73 | --mount source=tmp-vol,destination=/src,target=/media/ramdisk2 \ | ||
| 74 | ${{ matrix.distro }} \ | ||
| 75 | /bin/sh -c '${{ matrix.build }} && \ | ||
| 76 | ls -la' | ||
| 77 | docker container prune -f | ||
| 78 | docker volume prune -f | ||
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 33220d6d..77ca6585 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml | |||
| @@ -54,7 +54,6 @@ jobs: | |||
| 54 | matrix: | 54 | matrix: |
| 55 | include: | 55 | include: |
| 56 | - {"distro": "fedora:latest", "build": ".github/mock.sh"} | 56 | - {"distro": "fedora:latest", "build": ".github/mock.sh"} |
| 57 | - {"distro": "fedora:rawhide", "build": ".github/mock.sh"} | ||
| 58 | - {"distro": "rockylinux:8", "build": ".github/mock.sh"} | 57 | - {"distro": "rockylinux:8", "build": ".github/mock.sh"} |
| 59 | - {"distro": "almalinux:9", "build": ".github/mock.sh"} | 58 | - {"distro": "almalinux:9", "build": ".github/mock.sh"} |
| 60 | # - {"distro": "oraclelinux:9", "build": ".github/mock.sh"} | 59 | # - {"distro": "oraclelinux:9", "build": ".github/mock.sh"} |
