diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..f2f655a3e3d067292983b50115a2c0c198326228 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +## Build +/build/ +/ccache/ + +## Snapshot Artifacts +/*.git/ +/*.tar* +/*.version + +## Editors +*~ +.*.sw[op] diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e313faea733ddc87b41ffa5ed0c2abf207beaecd..52e7fb72b30bb9c7af6ad7d64c0478c883d5c40e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,7 +6,7 @@ stages: variables: DOCKER_IMAGE_BASE: registry.icinga.com/build-docker ICINGA_BUILD_TYPE: snapshot - #ICINGA_BUILD_UPSTREAM_BRANCH: + ICINGA_BUILD_UPSTREAM_BRANCH: snapshot/nightly .build: &build stage: build @@ -42,25 +42,8 @@ variables: - tags ################################### -# EPEL +# Centos ################################### -build/centos/8: - <<: *build - variables: - DOCKER_IMAGE: centos/8 - -test/centos/8: - <<: *test - variables: - DOCKER_IMAGE: centos/8 - dependencies: - - build/centos/8 - -upload/epel/8: - <<: *upload - dependencies: - - build/centos/8 - build/centos/7: <<: *build variables: @@ -73,7 +56,7 @@ test/centos/7: dependencies: - build/centos/7 -upload/epel/7: +upload/centos/7: <<: *upload dependencies: - build/centos/7 @@ -81,93 +64,75 @@ upload/epel/7: ################################### # Fedora ################################### -build/fedora/34: +build/fedora/36: <<: *build variables: - DOCKER_IMAGE: fedora/34 + DOCKER_IMAGE: fedora/36 + RPM_BUILD_NCPUS: '1' -test/fedora/34: +test/fedora/36: <<: *test variables: - DOCKER_IMAGE: fedora/34 + DOCKER_IMAGE: fedora/36 dependencies: - - build/fedora/34 + - build/fedora/36 -upload/fedora/34: +upload/fedora/36: <<: *upload dependencies: - - build/fedora/34 + - build/fedora/36 -build/fedora/33: +build/fedora/35: <<: *build variables: - DOCKER_IMAGE: fedora/33 + DOCKER_IMAGE: fedora/35 + RPM_BUILD_NCPUS: '1' -test/fedora/33: +test/fedora/35: <<: *test variables: - DOCKER_IMAGE: fedora/33 + DOCKER_IMAGE: fedora/35 dependencies: - - build/fedora/33 + - build/fedora/35 -upload/fedora/33: +upload/fedora/35: <<: *upload dependencies: - - build/fedora/33 + - build/fedora/35 ################################### -# SLES +# openSUSE ################################### -build/sles/15.2: - <<: *build - variables: - DOCKER_IMAGE: sles/15.2 - -test/sles/15.2: - <<: *test - variables: - DOCKER_IMAGE: sles/15.2 - dependencies: - - build/sles/15.2 - -upload/SUSE/15.2: - <<: *upload - dependencies: - - build/sles/15.2 - -build/sles/12.5: +build/opensuse/15.4: <<: *build variables: - DOCKER_IMAGE: sles/12.5 + DOCKER_IMAGE: opensuse/15.4 -test/sles/12.5: +test/opensuse/15.4: <<: *test variables: - DOCKER_IMAGE: sles/12.5 + DOCKER_IMAGE: opensuse/15.4 dependencies: - - build/sles/12.5 + - build/opensuse/15.4 -upload/SUSE/12.5: +upload/openSUSE/15.4: <<: *upload dependencies: - - build/sles/12.5 + - build/opensuse/15.4 -################################### -# openSUSE -################################### -build/opensuse/15.2: +build/opensuse/15.3: <<: *build variables: - DOCKER_IMAGE: opensuse/15.2 + DOCKER_IMAGE: opensuse/15.3 -test/opensuse/15.2: +test/opensuse/15.3: <<: *test variables: - DOCKER_IMAGE: opensuse/15.2 + DOCKER_IMAGE: opensuse/15.3 dependencies: - - build/opensuse/15.2 + - build/opensuse/15.3 -upload/openSUSE/15.2: +upload/openSUSE/15.3: <<: *upload dependencies: - - build/opensuse/15.2 + - build/opensuse/15.3 diff --git a/get_snapshot b/get_snapshot new file mode 100755 index 0000000000000000000000000000000000000000..f22a8df76e431cbfe3eb1ac66b34d08feb04d0c7 --- /dev/null +++ b/get_snapshot @@ -0,0 +1,87 @@ +#!/bin/bash +# Copyright (c) 2017 Icinga Development Team +# Licensed as GPL-2.0+ + +set -e + +while getopts ":p:U:b:" opt +do + case "$opt" in + p) + PROJECT="$OPTARG" + ;; + U) + UPSTREAM_GIT_URL="$OPTARG" + ;; + b) + UPSTREAM_GIT_BRANCH="$OPTARG" + ;; + \?) + echo "Unknown argument: $OPTARG" >&2 + exit 1 + ;; + esac +done + +: ${PROJECT:=icinga-php-library} +: ${UPSTREAM_GIT_URL:=https://github.com/Icinga/$PROJECT.git} +: ${UPSTREAM_GIT_BRANCH:=snapshot/nightly} + +set -x + +if [ -z "$UPSTREAM_GIT_NOREPO" ]; then + if [ -d "${PROJECT}.git/" ]; then + cd "${PROJECT}.git" + if [ ! -d .git ]; then + echo "This is not a GIT repository: $(pwd)" >&2 + exit 1 + fi + if [ -z "$UPSTREAM_GIT_NOUPDATE" ]; then + if [ "$(git config remote.origin.url)" != "${UPSTREAM_GIT_URL}" ]; then + git remote set-url origin "${UPSTREAM_GIT_URL}" + fi + git fetch origin -p + git checkout -f "${UPSTREAM_GIT_BRANCH}" + git reset --hard "origin/${UPSTREAM_GIT_BRANCH}" + fi + git clean -fdx + elif [ -z "$UPSTREAM_GIT_NOUPDATE" ]; then + git clone -b "${UPSTREAM_GIT_BRANCH}" "${UPSTREAM_GIT_URL}" "${PROJECT}.git/" + cd "${PROJECT}.git" + else + echo "Missing '${PROJECT}.git' directory!" >&2 + exit 1 + fi +fi + +git_version=$(git describe --tags "${UPSTREAM_GIT_BRANCH}") +git_commit=$(git rev-parse "${UPSTREAM_GIT_BRANCH}") +package_version=$(echo "$git_version" | sed -e 's/^v//' -e 's/-/./g') +prefix="${PROJECT}-${package_version}" +tarball="${prefix}.orig.tar" + +git archive --format=tar --prefix="${prefix}/" -o "../${tarball}" "${UPSTREAM_GIT_BRANCH}" + +cd ../ + +# create files with the properly set versions for snapshot +rm -rf "${prefix:?}/" + +mkdir -p "${prefix:?}/" +echo "${package_version}" > "${prefix:?}/VERSION" + +# add to tarball and remove tmpdir +tar --append -f "${tarball}" "${prefix}"/ +rm -rf "${prefix:?}/" + +# pack tarball +gzip -vf9 "${tarball}" +sha256sum "${tarball}.gz" + +# store package version for build scripts +printf '%s\t%s\t%s\t%s' \ + "${package_version}" \ + "${git_commit}" \ + "$(basename "${tarball}.gz")" \ + "${UPSTREAM_GIT_BRANCH}" \ + > "${PROJECT}.version" diff --git a/icinga-php-library.spec b/icinga-php-library.spec index 7e91a2921d56756bceef8f681c5e308fc3d749e7..8b222995ac25325d839e36fcd5fa7d374849699a 100644 --- a/icinga-php-library.spec +++ b/icinga-php-library.spec @@ -4,7 +4,7 @@ %global module_name icinga-php-library Name: %{module_name} -Version: 0.6.0 +Version: 0.9.1 Release: %{revision}%{?dist} Summary: Icinga PHP Library for Icinga Web 2 Group: Applications/System @@ -13,9 +13,35 @@ URL: https://icinga.com Source0: https://github.com/Icinga/%{module_name}/archive/v%{version}.tar.gz BuildArch: noarch +# Define php runtime identifier +%if 0%{?fedora} || 0%{?rhel} || 0%{?amzn} +%if 0%{?rhel} == 7 +%define php_scl rh-php73 +%endif + +%if 0%{?php_scl:1} +%define php_scl_prefix %{php_scl}- +%endif + +%define php %{?php_scl_prefix}php +%endif + +%if 0%{?suse_version} +%define php php +%endif + %global basedir %{_datadir}/icinga-php/ipl Requires: icinga-php-common +Requires: icinga-php-thirdparty + +# php extension requirements +Requires: %{php}-intl +%{?rhel:Requires: %{php}-pdo} +%{?suse_version:Requires: %{php}-gettext %{php}-json %{php}-openssl} +%if 0%{?rhel} >= 8 || 0%{?fedora} >= 30 +Requires: %{php}-json +%endif %description This project bundles all Icinga PHP libraries into one @@ -42,5 +68,23 @@ rm -rf %{buildroot} %{basedir} %changelog +* Wed Jul 06 2022 Johannes Meyer - 0.9.1-1 +- Release 0.9.1 + +* Thu Jun 30 2022 Henrik Triem - 0.9.0-1 +- Release 0.9.0 + +* Tue Apr 26 2022 Johannes Meyer - 0.8.1-1 +- Release 0.8.1 + +* Wed Mar 23 2022 Johannes Meyer - 0.8.0-1 +- Release 0.8.0 + +* Wed Nov 10 2021 Johannes Meyer - 0.7.0-1 +- Release 0.7.0 + +* Tue Jul 27 2021 Johannes Meyer - 0.6.1-1 +- Release 0.6.1 + * Thu Jul 08 2021 Henrik Triem - 0.6.0-1 - Release 0.6.0 diff --git a/testing/live_test.sh b/testing/live_test.sh new file mode 100755 index 0000000000000000000000000000000000000000..0c19e06f3f4236504bb2a1393f0ee0b64ff03956 --- /dev/null +++ b/testing/live_test.sh @@ -0,0 +1,8 @@ +#!/bin/bash +# this script runs in the rpm_test environment + +PACKAGES=( icinga-php-library ) + +icinga-build-rpm-install "${PACKAGES[@]}" + +bash