Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Offline RPM build, el9 enablement #647

Merged
merged 6 commits into from
Sep 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 4 additions & 64 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,82 +14,22 @@ jobs:
matrix:
include:
- name: centos-stream-8
shortcut: cs8
container-name: stream8
# Try to enable CS9 after switch to xmaven is finished
# - name: centos-stream-9
# shortcut: cs9
# container-name: stream9
container-name: el8stream
- name: centos-stream-9
container-name: el9stream

name: ${{ matrix.name }}

env:
ARTIFACTS_DIR: exported-artifacts

container:
image: quay.io/centos/centos:${{ matrix.container-name }}
image: quay.io/ovirt/buildcontainer:${{ matrix.container-name }}

steps:
- name: Prepare CentOS Stream 8 environment
if: ${{ matrix.shortcut == 'cs8' }}
run: |
# Install oVirt repositories
dnf copr enable -y ovirt/ovirt-master-snapshot centos-stream-8

# Requried for python3-ansible-lint and python3-isort
dnf copr enable -y sbonazzo/EL8_collection

# Configure CS8 repositories
dnf config-manager --enable powertools
dnf module enable -y pki-deps javapackages-tools maven:3.6

- name: Prepare CentOS Stream 9 environment
if: ${{ matrix.shortcut == 'cs9' }}
run: |
# DNF core plugins are installed in the official CS9 container image
dnf install -y dnf-plugins-core

# Install oVirt repositories
dnf copr enable -y ovirt/ovirt-master-snapshot

# Requried for python3-ansible-lint and python3-isort
dnf copr enable -y sbonazzo/EL9_collection

# Configure CS9 repositories
dnf config-manager --enable crb

- name: Install required packages
run: |
dnf install -y \
createrepo_c \
dnf-utils \
git \
gzip \
java-11-openjdk-devel \
make \
maven \
python3-pycodestyle \
python3-pytest \
python3-devel \
python3-isort \
python3-pyflakes \
python3-pyOpenSSL \
python3-dnf-plugin-versionlock \
rpm-build \
sed \
tar

- name: Checkout sources
uses: ovirt/checkout-action@main

- name: Setup maven cache
uses: actions/cache@v2
with:
path: /root/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-

- name: Perform build
run: |
.automation/build-rpm.sh $ARTIFACTS_DIR
Expand Down
82 changes: 54 additions & 28 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,11 @@ DEV_SETUP_ENV_DIR=
PKG_USER=ovirt
PKG_GROUP=ovirt
WILDFLY_OVERLAY_MODULES=/usr/share/ovirt-engine-wildfly-overlay/modules

# Used for offline build as a part of RPM build
OFFLINE_BUILD=1
OFFLINE_BUILD_MAVEN_SETTINGS=$(shell pwd)/build/offline-build-maven-settings.xml

#
# CUSTOMIZATION-END
#
Expand Down Expand Up @@ -118,6 +123,11 @@ BUILD_FLAGS:=$(BUILD_FLAGS) -D gwt.jvmArgs="$(BUILD_JAVA_OPTS_GWT)"
endif
BUILD_FLAGS:=$(BUILD_FLAGS) $(EXTRA_BUILD_FLAGS)


ifneq ($(OFFLINE_BUILD),0)
BUILD_FLAGS:=$(BUILD_FLAGS) -s $(OFFLINE_BUILD_MAVEN_SETTINGS)
endif

PYTHON_SYS_DIR:=$(shell $(PYTHON) -c "from distutils.sysconfig import get_python_lib as f;print(f())")
TARBALL=$(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz
ARCH=noarch
Expand Down Expand Up @@ -415,34 +425,49 @@ install_artifacts:
"$(DESTDIR)$(PKG_DOC_DIR)/AuditLogMessages.properties"
chmod 0644 "$(DESTDIR)$(PKG_DOC_DIR)/AuditLogMessages.properties"

install_poms:
install -dm 755 "$(DESTDIR)$(MAVENPOM_DIR)"
install -m 644 backend/manager/extensions-tool/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-extensions-tool.pom"
install -m 644 backend/manager/sso-client-registration-tool/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-sso-client-registration-tool.pom"
install -m 644 backend/manager/logutils/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-logutils.pom"
install -m 644 backend/manager/modules/aaa/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-aaa.pom"
install -m 644 backend/manager/modules/bll/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-bll.pom"
install -m 644 backend/manager/modules/branding/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-branding.pom"
install -m 644 backend/manager/modules/builtin-extensions/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-builtin.pom"
install -m 644 backend/manager/modules/common/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-common.pom"
install -m 644 backend/manager/modules/compat/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-compat.pom"
install -m 644 backend/manager/modules/dal/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-dal.pom"
install -m 644 backend/manager/modules/extensions-manager/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-extensions-manager.pom"
install -m 644 backend/manager/modules/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-manager-modules.pom"
install -m 644 backend/manager/modules/restapi/interface/common/jaxrs/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-interface-common-jaxrs.pom"
install -m 644 backend/manager/modules/restapi/interface/definition/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-restapi-definition.pom"
install -m 644 backend/manager/modules/restapi/jaxrs/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-restapi-jaxrs.pom"
install -m 644 backend/manager/modules/restapi/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-restapi-parent.pom"
install -m 644 backend/manager/modules/restapi/types/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-restapi-types.pom"
install -m 644 backend/manager/modules/scheduler/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-scheduler.pom"
install -m 644 backend/manager/modules/searchbackend/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-searchbackend.pom"
install -m 644 backend/manager/modules/utils/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-utils.pom"
install -m 644 backend/manager/modules/uutils/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-uutils.pom"
install -m 644 backend/manager/modules/vdsbroker/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-vdsbroker.pom"
install -m 644 backend/manager/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-manager.pom"
install -m 644 backend/manager/tools/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-tools.pom"
install -m 644 backend/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-backend.pom"
install -m 644 pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)-root.pom"
install_maven_metadata:
install -dm 755 "$(DESTDIR)$(DATAROOT_DIR)/maven-metadata"
install -m 644 packaging/maven-metadata/ovirt-engine-base.xml "$(DESTDIR)$(DATAROOT_DIR)/maven-metadata/ovirt-engine-base.xml"
install -m 644 packaging/maven-metadata/ovirt-engine-backend.xml "$(DESTDIR)$(DATAROOT_DIR)/maven-metadata/ovirt-engine-backend.xml"
install -m 644 packaging/maven-metadata/ovirt-engine-restapi.xml "$(DESTDIR)$(DATAROOT_DIR)/maven-metadata/ovirt-engine-restapi.xml"
install -m 644 packaging/maven-metadata/ovirt-engine-tools.xml "$(DESTDIR)/$(DATAROOT_DIR)/maven-metadata/ovirt-engine-tools.xml"

install_poms: \
install_maven_metadata \
$(NULL)
install -dm 755 "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)"
# base
install -m 644 pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/root.pom"
install -m 644 backend/manager/logutils/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/logutils.pom"
install -m 644 backend/manager/modules/branding/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/branding.pom"
install -m 644 backend/manager/modules/common/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/common.pom"
install -m 644 backend/manager/modules/compat/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/compat.pom"
install -m 644 backend/manager/modules/extensions-manager/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/extensions-manager.pom"
install -m 644 backend/manager/modules/utils/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/utils.pom"
install -m 644 backend/manager/modules/uutils/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/uutils.pom"
# backend
install -m 644 backend/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/backend.pom"
install -m 644 backend/manager/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/manager.pom"
install -m 644 backend/manager/modules/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/manager-modules.pom"
install -m 644 backend/manager/modules/aaa/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/aaa.pom"
install -m 644 backend/manager/modules/bll/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/bll.pom"
install -m 644 backend/manager/modules/builtin-extensions/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/builtin.pom"
install -m 644 backend/manager/modules/dal/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/dal.pom"
install -m 644 backend/manager/modules/scheduler/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/scheduler.pom"
install -m 644 backend/manager/modules/searchbackend/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/searchbackend.pom"
install -m 644 backend/manager/modules/vdsbroker/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/vdsbroker.pom"
# restapi
install -m 644 backend/manager/modules/restapi/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/restapi-parent.pom"
install -m 644 backend/manager/modules/restapi/interface/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/interface.pom"
install -m 644 backend/manager/modules/restapi/interface/common/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/common-parent.pom"
install -m 644 backend/manager/modules/restapi/interface/common/jaxrs/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/interface-common-jaxrs.pom"
install -m 644 backend/manager/modules/restapi/interface/definition/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/restapi-definition.pom"
install -m 644 backend/manager/modules/restapi/jaxrs/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/restapi-jaxrs.pom"
install -m 644 backend/manager/modules/restapi/types/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/restapi-types.pom"
# tools
install -m 644 backend/manager/extensions-tool/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/extensions-tool.pom"
install -m 644 backend/manager/sso-client-registration-tool/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/sso-client-registration-tool.pom"
install -m 644 backend/manager/tools/pom.xml "$(DESTDIR)$(MAVENPOM_DIR)/$(PACKAGE_NAME)/tools.pom"

install-packaging-files: \
$(GENERATED) \
Expand Down Expand Up @@ -573,6 +598,7 @@ install-dev: \
BUILD_VALIDATION=0 \
PYTHON_DIR="$(PREFIX)$(PYTHON_SYS_DIR)" \
DEV_FLIST=tmp.dev.flist \
OFFLINE_BUILD=0 \
$(NULL)
cp tmp.dev.flist "$(DESTDIR)$(PREFIX)/dev.$(PACKAGE_NAME).flist"

Expand Down
9 changes: 9 additions & 0 deletions build/offline-build-maven-settings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<settings>
<mirrors>
<mirror>
<id>local-mirror</id>
<url>file:///usr/share/ovirt-engine-build-dependencies/repository</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>
4 changes: 2 additions & 2 deletions bump_release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ if ! grep -E "<version" pom.xml | head -n1 | awk -F '[<>]' '/version/{print $3}
VERSION="$(grep -E "<version" pom.xml | head -n1 | awk -F '[<>]' '/version/{print $3}')"
else
# Set pom to build final release
find . -name pom.xml -exec sed -i "s:-SNAPSHOT::" {} +
{ find . -name pom.xml -print0; find packaging/maven-metadata -name '*.xml' -print0; } | xargs -0 sed -i "s:-SNAPSHOT::"

# Get current ovirt-engine version
VERSION="$(grep -E "<version" pom.xml | head -n1 | awk -F '[<>]' '/version/{print $3}')"
Expand Down Expand Up @@ -69,7 +69,7 @@ else
fi

export NEXT_VERSION
find . -name pom.xml -exec sed -i "s:${VERSION}-SNAPSHOT:${NEXT_VERSION}-SNAPSHOT:" {} +
{ find . -name pom.xml -print0; find packaging/maven-metadata -name '*.xml' -print0; } | xargs -0 sed -i "s:${VERSION}-SNAPSHOT:${NEXT_VERSION}-SNAPSHOT:"

# commit
git add -u
Expand Down
Loading