From d7579e42495e2ad83a48d1cea258c6b708aea603 Mon Sep 17 00:00:00 2001 From: Sven Nierlein Date: Wed, 2 Oct 2024 11:42:22 +0200 Subject: add new github test workflow for debian:testing and fedora:rawhide this workflow runs scheduled once a week, so it does not prevent PRs from being merged but still allows us to notice if anything will go wrong with the next release. Remove rawhide test from the mandatory tests like we did with debian testing already. --- .github/workflows/test-next.yml | 77 +++++++++++++++++++++++++++++++++++++++++ .github/workflows/test.yml | 1 - 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/test-next.yml (limited to '.github') diff --git a/.github/workflows/test-next.yml b/.github/workflows/test-next.yml new file mode 100644 index 00000000..083bc1e4 --- /dev/null +++ b/.github/workflows/test-next.yml @@ -0,0 +1,77 @@ +--- +name: Tests Debian:Testing and Fedora:Rawhide + +on: + push: + branches-ignore: + - '*' + schedule: + # Run every week on Monday at 9:00 AM (UTC) + - cron: '0 9 * * 1' + +jobs: + full-test: + name: Running unit and integrationt tests + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + distro: + - 'debian:testing' + include: + - distro: 'debian:testing' + prepare: .github/prepare_debian.sh + steps: + - name: Git clone repository + uses: actions/checkout@v4 + - name: Run the tests on ${{ matrix.distro }} + run: | + docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 tmp-vol + docker run \ + -e NPTEST_ACCEPTDEFAULT=1 \ + -e NPTEST_CACHE="/src/.github/NPTest.cache" \ + -w /src -v ${PWD}:/src \ + --tmpfs /media/ramdisk1 \ + -v /var/run/utmp:/var/run/utmp \ + --mount source=tmp-vol,destination=/src,target=/media/ramdisk2 \ + ${{ matrix.distro }} \ + /bin/sh -c '${{ matrix.prepare }} && \ + tools/setup && \ + ./configure --enable-libtap --with-ipv6=no && \ + make && \ + make test && \ + make dist && \ + tar zxf monitoring-plugins-*.tar.gz && \ + cd monitoring-plugins-*/ && \ + ./configure && \ + make' + docker container prune -f + docker volume prune -f + + build-test: + name: Running rpm build test on ${{ matrix.distro }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - {"distro": "fedora:rawhide", "build": ".github/mock.sh"} + steps: + - name: Git clone repository + uses: actions/checkout@v4 + - name: Run the tests on ${{ matrix.distro }} + run: | + docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 tmp-vol + docker run \ + --privileged=true \ + -e NPTEST_ACCEPTDEFAULT=1 \ + -e NPTEST_CACHE="/src/.github/NPTest.cache" \ + -w /src -v ${PWD}:/src \ + --tmpfs /media/ramdisk1 \ + -v /var/run/utmp:/var/run/utmp \ + --mount source=tmp-vol,destination=/src,target=/media/ramdisk2 \ + ${{ matrix.distro }} \ + /bin/sh -c '${{ matrix.build }} && \ + ls -la' + docker container prune -f + 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: matrix: include: - {"distro": "fedora:latest", "build": ".github/mock.sh"} - - {"distro": "fedora:rawhide", "build": ".github/mock.sh"} - {"distro": "rockylinux:8", "build": ".github/mock.sh"} - {"distro": "almalinux:9", "build": ".github/mock.sh"} # - {"distro": "oraclelinux:9", "build": ".github/mock.sh"} -- cgit v1.2.3-74-g34f1 From 2558e488f35334d75f662cb94dc2122f68c7740a Mon Sep 17 00:00:00 2001 From: Sven Nierlein Date: Wed, 2 Oct 2024 20:59:31 +0200 Subject: add manual workflow trigger --- .github/workflows/test-next.yml | 1 + 1 file changed, 1 insertion(+) (limited to '.github') diff --git a/.github/workflows/test-next.yml b/.github/workflows/test-next.yml index 083bc1e4..81240759 100644 --- a/.github/workflows/test-next.yml +++ b/.github/workflows/test-next.yml @@ -2,6 +2,7 @@ name: Tests Debian:Testing and Fedora:Rawhide on: + workflow_dispatch: {} push: branches-ignore: - '*' -- cgit v1.2.3-74-g34f1 From 903773eb9c3cc2079187dc99c7b48662148ff679 Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Fri, 25 Oct 2024 12:02:14 +0200 Subject: Add sanity options to test prepare scripts --- .github/mock.sh | 2 ++ .github/prepare_debian.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to '.github') diff --git a/.github/mock.sh b/.github/mock.sh index 7fbe6903..8da147ec 100755 --- a/.github/mock.sh +++ b/.github/mock.sh @@ -2,6 +2,8 @@ set -x +set -euo pipefail + export DEBIAN_FRONTEND=noninteractive BASE_PATH="/src" diff --git a/.github/prepare_debian.sh b/.github/prepare_debian.sh index 3f4674a2..c38d241e 100755 --- a/.github/prepare_debian.sh +++ b/.github/prepare_debian.sh @@ -1,7 +1,7 @@ #!/bin/bash set -x -set -e +set -euo pipefail export DEBIAN_FRONTEND=noninteractive -- cgit v1.2.3-74-g34f1 From d996f6560065950393c186cb6c39d94ea9025ac1 Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Fri, 25 Oct 2024 12:21:16 +0200 Subject: github/mock.sh: Improve readability and generel shellcheck stuff --- .github/mock.sh | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to '.github') diff --git a/.github/mock.sh b/.github/mock.sh index 8da147ec..0b913644 100755 --- a/.github/mock.sh +++ b/.github/mock.sh @@ -20,7 +20,11 @@ SPEC_FILE="${SPEC_DIR}monitoring-plugins.spec" cd ${BASE_PATH} dnf -y --setopt="tsflags=nodocs" update && \ - if [ ${distro_id} != "fedora" ]; then dnf -y --setopt="tsflags=nodocs" install epel-release; else platform_id="$(echo ${platform_id} | sed s/^f/fc/)"; fi && \ + if [ "${distro_id}" != "fedora" ]; then + dnf -y --setopt="tsflags=nodocs" install epel-release; + else + platform_id="$(echo "${platform_id}" | sed s/^f/fc/)"; + fi && \ case ${distro_id} in ol) case ${platform_id} in @@ -34,19 +38,27 @@ dnf -y --setopt="tsflags=nodocs" update && \ ;; esac dnf -y --setopt="tsflags=nodocs" install mock rpm-build git-core && \ - usermod -a -G mock $(whoami) + usermod -a -G mock "$(whoami)" + SRC_RPM="monitoring-plugins-*-1.${platform_id}.src.rpm" + if command -v git > /dev/null 2>&1; then git config --global --add safe.directory ${BASE_PATH} SHA="$(git rev-parse HEAD)" sed "s/^%global commit.*/%global commit ${SHA}/" ${SPEC_FILE} > ${SPEC_DIR}monitoring-plugins-git.spec sed -i "s/^%global fromgit.*/%global fromgit 1/" ${SPEC_DIR}monitoring-plugins-git.spec SPEC_FILE="${SPEC_DIR}monitoring-plugins-git.spec" - SRC_RPM="monitoring-plugins-*git.$(echo ${SHA:0:7})*.${platform_id}.src.rpm" + SRC_RPM="monitoring-plugins-*git.${SHA:0:7}*.${platform_id}.src.rpm" fi + mkdir -p "${SRCRPM_DIR}" "${RPM_DIR}" #rpmbuild --undefine=_disable_source_fetch --define "_sourcedir ${SOURCE_DIR}" -ba ${SPEC_FILE} -dnf -y --setopt="tsflags=nodocs" install rpmdevtools && spectool -g -C ${SOURCE_DIR} ${SPEC_FILE} && \ -mock --dnf --clean --spec ${SPEC_FILE} --sources=${SOURCE_DIR} --result=${SRCRPM_DIR} --build || { cat ${SRCRPM_DIR}/{root,build}.log; exit 1; } -mock --dnf --clean --sources=${SOURCE_DIR} --result=${RPM_DIR} --rebuild ${SRCRPM_DIR}/${SRC_RPM} || { cat ${RPM_DIR}/{root,build}.log; exit 1; } +dnf -y --setopt="tsflags=nodocs" install rpmdevtools && \ + spectool -g -C ${SOURCE_DIR} ${SPEC_FILE} && \ + { mock --dnf --clean --spec ${SPEC_FILE} --sources=${SOURCE_DIR} --result=${SRCRPM_DIR} --build || \ + { cat ${SRCRPM_DIR}/{root,build}.log; exit 1; } } + +mock --dnf --clean --sources=${SOURCE_DIR} --result=${RPM_DIR} --rebuild "${SRCRPM_DIR}/${SRC_RPM}" || \ + { cat ${RPM_DIR}/{root,build}.log; exit 1; } + ls -la ${SOURCE_DIR} ${SRCRPM_DIR} ${RPM_DIR} -- cgit v1.2.3-74-g34f1 From 78246e904ddfc9c0a88e9f47797dc38c1693abbb Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Fri, 25 Oct 2024 12:30:19 +0200 Subject: prepare_debian.sh: Fix typo --- .github/prepare_debian.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github') diff --git a/.github/prepare_debian.sh b/.github/prepare_debian.sh index c38d241e..3640e500 100755 --- a/.github/prepare_debian.sh +++ b/.github/prepare_debian.sh @@ -127,5 +127,5 @@ sed "/NP_HOST_TLS_CERT/s/.*/'NP_HOST_TLS_CERT' => '$(hostname)',/" -i /src/.gith # create some test files to lower inodes for i in $(seq 10); do - touch /media/ramdisk2/test.$1 + touch /media/ramdisk2/test.$i done -- cgit v1.2.3-74-g34f1 From 54162dbaf689d560656e3eb6c3313840ebc0513a Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Fri, 25 Oct 2024 12:52:32 +0200 Subject: mock.sh: remove some quotting to allow pathname expansion again --- .github/mock.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github') diff --git a/.github/mock.sh b/.github/mock.sh index 0b913644..87543ce8 100755 --- a/.github/mock.sh +++ b/.github/mock.sh @@ -58,7 +58,7 @@ dnf -y --setopt="tsflags=nodocs" install rpmdevtools && \ { mock --dnf --clean --spec ${SPEC_FILE} --sources=${SOURCE_DIR} --result=${SRCRPM_DIR} --build || \ { cat ${SRCRPM_DIR}/{root,build}.log; exit 1; } } -mock --dnf --clean --sources=${SOURCE_DIR} --result=${RPM_DIR} --rebuild "${SRCRPM_DIR}/${SRC_RPM}" || \ +mock --dnf --clean --sources=${SOURCE_DIR} --result=${RPM_DIR} --rebuild "${SRCRPM_DIR}"/${SRC_RPM} || \ { cat ${RPM_DIR}/{root,build}.log; exit 1; } ls -la ${SOURCE_DIR} ${SRCRPM_DIR} ${RPM_DIR} -- cgit v1.2.3-74-g34f1