Skip to content

Commit

Permalink
remove cmake build, add github build and release workflows, add suppo…
Browse files Browse the repository at this point in the history
…rt for el9 (#6)

* remove cmake build, add github build and release workflows, add support for el9
  • Loading branch information
andrea-manzi authored Jun 17, 2024
1 parent da40275 commit a4524d9
Show file tree
Hide file tree
Showing 8 changed files with 268 additions and 85 deletions.
12 changes: 12 additions & 0 deletions .github/linters/.markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"MD013": {
"line_length": 120,
"code_blocks": false,
"tables": false
},
"MD014": false,
"MD024": false,
"MD026": {
"punctuation": ".,:;!"
}
}
28 changes: 28 additions & 0 deletions .github/linters/check-links.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Check links

on: [push, pull_request]

jobs:
markdown-link-check:
name: Check links using markdown-link-check
runs-on: ubuntu-latest

steps:
# Checks out a copy of your repository on the ubuntu-latest machine
- name: Checkout code
uses: actions/checkout@v3
with:
# Make sure the actual branch is checked out when running on PR
ref: ${{ github.event.pull_request.head.sha }}
# Full git history needed to get proper list of changed files
fetch-depth: 0

- name: Check links on new changes
uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
config-file: ".github/linters/mlc_config.json"
check-modified-files-only: "yes"
use-quiet-mode: "yes"
use-verbose-mode: "yes"
base-branch: "master"
79 changes: 79 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
name: Create packages and test installation

on:
pull_request:

jobs:
centos7:
name: Build CentOS 7 RPMs
runs-on: ubuntu-latest
container: quay.io/centos/centos:7
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install build requisites
run: |
yum install -y cmake rpm-build rpmlint make rsync
- name: build rpm
run: |
make rpm
- name: Upload rpms
uses: actions/upload-artifact@v3
with:
name: rpms7
path: |
build/RPMS/noarch/nagios-*.el7.noarch.rpm
build-almalinux9:
name: Build AlmaLinux 9 RPMs
runs-on: ubuntu-latest
container: almalinux:9
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install build requisites
run: |
dnf install -y rpm-build cmake rpmlint make rsync systemd-rpm-macros
- name: build rpm
run: |
make rpm
- name: Upload RPMs
uses: actions/upload-artifact@v3
with:
name: rpms9
path: |
build/RPMS/noarch/nagios-*.el9.noarch.rpm
centos7-install:
name: Install CentOS 7 RPMs
needs: centos7
runs-on: ubuntu-latest
container: quay.io/centos/centos:7
steps:
- uses: actions/download-artifact@v3
with:
name: rpms7
- name: Install generated RPMs
run: |
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y http://repository.egi.eu/sw/production/umd/4/centos7/x86_64/updates/umd-release-4.1.3-1.el7.centos.noarch.rpm
yum localinstall -y nagios-*.rpm
install-almalinux9:
name: Install AlmaLinux 9 RPMs
needs: build-almalinux9
runs-on: ubuntu-latest
container: almalinux:9
steps:
- uses: actions/download-artifact@v3
with:
name: rpms9
- name: Install generated RPMs
run: |
# FIXME: remove external repo when UMD5 is available
dnf install -y epel-release
dnf localinstall -y https://github.com/EGI-Federation/nagios-plugins-srm/raw/master/python3-nap-0.1.21-2.el9.noarch.rpm
dnf localinstall -y nagios-*.rpm
110 changes: 110 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
# When a tag is created
# - create a new release from the tag
# - build and attach packages to the release
name: Create packages and release

on:
push:
tags:
- "v*"

jobs:
centos7:
name: Build centOS 7 RPMs
runs-on: ubuntu-latest
container: centos:7
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: install build requisites
run: |
yum install -y rpm-build rpmlint make rsync
- name: build rpm
run: |
make rpm
rpmlint --file .rpmlint.ini build/RPMS/noarch/*.rpm
- name: Upload rpms
uses: actions/upload-artifact@v3
with:
name: rpms7
path: |
build/RPMS/noarch/nagios-*.el7.x86_64.rpm
build/SRPMS/nagios-*.el7.src.rpm
almalinux9:
name: Build AlmaLinux 9 RPMs
runs-on: ubuntu-latest
container: almalinux:9
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install build requisites
run: |
dnf install -y rpm-build make rsync systemd-rpm-macros
- name: build rpm
run: |
make clean rpm
- name: Upload RPMs
uses: actions/upload-artifact@v4
with:
name: rpms9
path: |
build/RPMS/noarch/nagios-*.el9.x86_64.rpm
build/SRPMS/nagios-*.el9.src.rpm
release7:
name: Upload CentOS 7 release artefacts
needs: centos7
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
with:
name: rpms7

- name: Find package name
id: package_name_centos7
run: |
rpm_path=$(find . -name 'nagios-*.el7.x86_64.rpm')
src_path=$(find . -name 'nagios-*.el7.src.rpm')
echo "rpm_path=${rpm_path}" >> "$GITHUB_OUTPUT"
echo "src_path=${src_path}" >> "$GITHUB_OUTPUT"
- name: Attach CentOS 7 RPMs to the release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
fail_on_unmatched_files: true
files: |
${{ steps.package_name_centos7.outputs.rpm_path }}
${{ steps.package_name_centos7.outputs.src_path }}
release9:
name: Upload AlmaLinux 9 release artefacts
permissions:
contents: write # to upload release asset (softprops/action-gh-release)
needs: almalinux9
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
name: rpms9
- name: Find package name
id: package_name_almalinux9
run: |
rpm_path=$(find . -name 'nagios-*.el9.x86_64.rpm')
src_path=$(find . -name 'nagios-*.el9.src.rpm')
echo "rpm_path=${rpm_path}" >> "$GITHUB_OUTPUT"
echo "src_path=${src_path}" >> "$GITHUB_OUTPUT"
- name: Attach AlmaLinux 9 RPMs to the release
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
fail_on_unmatched_files: true
files: |
${{ steps.package_name_almalinux9.outputs.rpm_path }}
${{ steps.package_name_almalinux9.outputs.src_path }}
17 changes: 0 additions & 17 deletions CMakeLists.txt

This file was deleted.

88 changes: 37 additions & 51 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,55 +1,41 @@
NAME=nagios-plugins-srm
SPEC=../$(NAME).spec
VERSION=${shell grep '^Version:' $(SPEC) | awk '{print $$2}' }
# Leave blank. To be overriden by CI tools.
RELEASE=
NAME= $(shell grep Name: *.spec | sed 's/^[^:]*:[^a-zA-Z]*//')
VERSION= $(shell grep Version: *.spec | sed 's/^[^:]*:[^0-9]*//')
RELEASE= $(shell grep Release: *.spec | cut -d"%" -f1 | sed 's/^[^:]*:[^0-9]*//')
build=$(shell pwd)/build
DATE=$(shell date "+%a, %d %b %Y %T %z")
dist=$(shell rpm --eval '%dist' | sed 's/%dist/.el5/')

default:
@echo "Nothing to do"

install:
@echo installing ...

dist:
@mkdir -p $(build)/$(NAME)-$(VERSION)/
rsync -HaS --exclude ".git" --exclude "$(build)" * $(build)/$(NAME)-$(VERSION)/
cd $(build); tar --gzip -cf $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)/; cd -

sources: dist
cp $(build)/$(NAME)-$(VERSION).tar.gz .

prepare: dist
@mkdir -p $(build)/RPMS/noarch
@mkdir -p $(build)/SRPMS/
@mkdir -p $(build)/SPECS/
@mkdir -p $(build)/SOURCES/
@mkdir -p $(build)/BUILD/
cp $(build)/$(NAME)-$(VERSION).tar.gz $(build)/SOURCES
cp $(NAME).spec $(build)/SPECS

srpm: prepare
rpmbuild -bs --define="dist ${dist}" --define='_topdir ${build}' $(build)/SPECS/$(NAME).spec

CWD=${shell pwd}

RPMBUILD=/tmp/rpmbuild
SRPMS=$(CWD)
RPMS=$(CWD)/out

MOCK_CHROOT=epel-6-x86_64
MOCK_FLAGS=--verbose


RPMDEFINES_SRC=--define='_topdir $(RPMBUILD)' \
--define='_sourcedir $(CWD)' \
--define='_builddir %{_topdir}/BUILD' \
--define='_srcrpmdir $(SRPMS)' \
--define='_rpmdir $(RPMS)'

RPMDEFINES_BIN=--define='_topdir $(RPMBUILD)' \
--define='_sourcedir %{_topdir}/SOURCES' \
--define='_builddir %{_topdir}/BUILD' \
--define='_srcrpmdir $(SRPMS).' \
--define='_rpmdir $(RPMS)'


all: srpm
rpm: srpm
rpmbuild --rebuild --define='_topdir ${build}' --define="dist ${dist}" $(build)/SRPMS/$(NAME)-$(VERSION)-$(RELEASE)${dist}.src.rpm

clean:
rm -fv *.tar.gz
rm -fv *.rpm
rm -fv *.log
rm -rfv out
rm -rfv "$(RPMBUILD)"

dist: clean
tar vczf "$(NAME)-$(VERSION).tar.gz" --exclude="build" --exclude=".github" --exclude=".git" --exclude="*.pyc" --transform="s,^,$(NAME)-$(VERSION)/," ..

$(RPMBUILD):
mkdir -p "$(RPMBUILD)"

override_release: $(SPEC)
$(if $(RELEASE), sed -i "s/Release:.*/Release: $(RELEASE)/g" "$(SPEC)")

srpm: dist $(SPEC) $(RPMBUILD) override_release
/usr/bin/rpmbuild --nodeps -bs $(RPMDEFINES_SRC) $(SPEC)

rpm: srpm
/usr/bin/rpmbuild --rebuild $(RPMDEFINES_BIN) $(NAME)-$(VERSION)-*.src.rpm
rm -f *~ $(NAME)-$(VERSION).tar.gz
rm -rf $(build)

mock: srpm
/usr/bin/mock $(MOCK_FLAGS) -r $(MOCK_CHROOT) $(NAME)-$(VERSION)-*.src.rpm
.PHONY: dist srpm rpm sources clean
8 changes: 2 additions & 6 deletions nagios-plugins-srm.spec
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ Source0: %{name}-%{version}.tar.gz
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch

BuildRequires: cmake
Requires: nagios
Requires: python3
Requires: openldap-clients
Expand All @@ -36,15 +35,12 @@ This package provides the nagios probes for SRM.
%setup -q -n %{name}-%{version}

%build
%cmake . -DCMAKE_INSTALL_PREFIX=/

make %{?_smp_mflags}

%install
rm -rf %{buildroot}
mkdir -p %{buildroot}

make install DESTDIR=%{buildroot}
mkdir -p %{buildroot}%{_libdir}/nagios/plugins/srm
cp --preserve=timestamps plugins/*.py %{buildroot}%{_libdir}/nagios/plugins/srm

%clean
rm -rf %{buildroot}
Expand Down
11 changes: 0 additions & 11 deletions plugins/CMakeLists.txt

This file was deleted.

0 comments on commit a4524d9

Please sign in to comment.