Build late artifacts without rebuilding fuel packages
Implement flag PATCHING_CI, which is equal 0, means: * patching feature is disabled. If PATCHING_CI=1, then: 1) Build iso with BUILD_PACKAGES=0: late packages (fuel-bootstrap-image, fuel-docker-images) should be always build since they are depend on the first level artifacts (packages); 2) Make sure the release version of bootstrap and docker packages is increasing. We need to be sure that packages (in packages-late target): - fuel-bootstrap-image - fuel-docker-images will increase their release numbers by 1 continuously in order to be able to ship them in updates repositories. Related-bug: #1559117 Change-Id: Ie875f0e53bb478376703f2f2cb9b9f7d77c7c196
This commit is contained in:
parent
a68807e6d0
commit
706eb22987
|
@ -75,6 +75,12 @@ UBUNTU_ARCH:=amd64
|
|||
UBUNTU_IMAGE_RELEASE:=$(UBUNTU_MAJOR)$(UBUNTU_MINOR)
|
||||
SEPARATE_IMAGES?=/boot,ext2 /,ext4
|
||||
|
||||
PATCHING_CI?=0
|
||||
|
||||
ifeq ($(PATCHING_CI),1)
|
||||
# Use packages from mirrors, do not rebuild fuel one
|
||||
BUILD_PACKAGES:=0
|
||||
endif
|
||||
# Rebuld packages locally (do not use upstream versions)
|
||||
BUILD_PACKAGES?=1
|
||||
|
||||
|
|
|
@ -23,6 +23,22 @@ $(BUILD_DIR)/packages/rpm/buildd.tar.gz: $(BUILD_DIR)/mirror/centos/repo.done \
|
|||
sudo tar czf $@.tmp -C $(SANDBOX) .
|
||||
mv $@.tmp $@
|
||||
|
||||
# Usage:
|
||||
# (eval (inc_rpm_package_release,package_name))
|
||||
# If we are running patching then increment package release number by 1
|
||||
# else - just assign release number 1
|
||||
define inc_rpm_package_release
|
||||
$(BUILD_DIR)/packages/sources/$1/version:
|
||||
mkdir -p $$(@D)
|
||||
echo -e "RPMRELEASE=\c" > $$@.tmp
|
||||
ifeq ($(PATCHING_CI),1)
|
||||
bash -c "set -o pipefail && \
|
||||
yum -c $$(BUILD_DIR)/mirror/centos/etc/yum.conf info $1 | grep Release | tr -d ' ' | cut -d':' -f2 | xargs -I{} expr {} + 1 >> $$@.tmp"
|
||||
else
|
||||
echo "1" >> $$@.tmp
|
||||
endif
|
||||
mv $$@.tmp $$@
|
||||
endef
|
||||
|
||||
# Usage:
|
||||
# (eval (call build_rpm,package_name))
|
||||
|
@ -46,6 +62,7 @@ $(BUILD_DIR)/repos/$1/specs/$1.spec: $(BUILD_DIR)/repos/$1.done
|
|||
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/repos/$1/specs/$1.spec
|
||||
else
|
||||
$(BUILD_DIR)/packages/rpm/$1.done: SPECFILE:=$(SOURCE_DIR)/packages/rpm/specs/$1.spec
|
||||
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/sources/$1/version
|
||||
endif
|
||||
|
||||
$(BUILD_DIR)/packages/rpm/$1.done:
|
||||
|
@ -61,9 +78,7 @@ $(BUILD_DIR)/packages/rpm/$1.done:
|
|||
-test -f $(BUILD_DIR)/packages/sources/$1/changelog && cat $(BUILD_DIR)/packages/sources/$1/changelog >> $$(SPECFILE)
|
||||
sudo cp $$(SPECFILE) $$(SANDBOX)/tmp && \
|
||||
sudo chroot $$(SANDBOX) yum-builddep -y /tmp/$1.spec
|
||||
test -f $$(SANDBOX)/tmp/SOURCES/version && \
|
||||
sudo chroot $$(SANDBOX) rpmbuild --nodeps --define "_topdir /tmp" --define "release `awk -F'=' '/RPMRELEASE/ {print $$$$2}' $$(SANDBOX)/tmp/SOURCES/version`" -ba /tmp/$1.spec || \
|
||||
sudo chroot $$(SANDBOX) rpmbuild --nodeps --define "_topdir /tmp" -ba /tmp/$1.spec
|
||||
sudo chroot $$(SANDBOX) rpmbuild --nodeps --define "_topdir /tmp" --define "release `awk -F'=' '/RPMRELEASE/ {print $$$$2}' $$(SANDBOX)/tmp/SOURCES/version`" -ba /tmp/$1.spec
|
||||
cp $$(SANDBOX)/tmp/RPMS/*/*.rpm $(BUILD_DIR)/packages/rpm/RPMS/x86_64
|
||||
sudo sh -c "$$$${SANDBOX_DOWN}"
|
||||
$$(ACTION.TOUCH)
|
||||
|
@ -110,6 +125,7 @@ $(BUILD_DIR)/packages/rpm/fuel-docker-images.done: \
|
|||
$(BUILD_DIR)/repos/repos.done \
|
||||
$(BUILD_DIR)/packages/rpm/buildd.tar.gz \
|
||||
$(BUILD_DIR)/packages/rpm/repo-late.done \
|
||||
$(BUILD_DIR)/packages/sources/fuel-docker-images/version \
|
||||
$(BUILD_DIR)/docker/build.done
|
||||
python $(SOURCE_DIR)/packages/rpm/genpkgnames.py $(SPECFILE) | xargs -I{} sudo find $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)/Packages -regex '.*/{}-[^-]+-[^-]+' -delete
|
||||
mkdir -p $(BUILD_DIR)/packages/rpm/RPMS/x86_64
|
||||
|
@ -118,8 +134,10 @@ $(BUILD_DIR)/packages/rpm/fuel-docker-images.done: \
|
|||
mkdir -p $(SANDBOX)/tmp/SOURCES && \
|
||||
sudo cp -r $(BUILD_DIR)/docker/$(DOCKER_ART_NAME) $(SANDBOX)/tmp/SOURCES && \
|
||||
(cd $(BUILD_DIR)/docker && sudo tar czf $(SANDBOX)/tmp/SOURCES/fuel-images-sources.tar.gz sources utils) && \
|
||||
sudo cp $(SPECFILE) $(SANDBOX)/tmp && \
|
||||
sudo chroot $(SANDBOX) rpmbuild --nodeps --define "_topdir /tmp" -ba /tmp/fuel-docker-images.spec
|
||||
sudo cp $(SPECFILE) $(SANDBOX)/tmp
|
||||
sudo chroot $(SANDBOX) rpmbuild --nodeps --define "_topdir /tmp" \
|
||||
--define "release `awk -F'=' '/RPMRELEASE/ {print $$2}' $(BUILD_DIR)/packages/sources/fuel-docker-images/version`" \
|
||||
-ba /tmp/fuel-docker-images.spec
|
||||
cp $(SANDBOX)/tmp/RPMS/*/fuel-docker-images-*.rpm $(BUILD_DIR)/packages/rpm/RPMS/x86_64
|
||||
find $(BUILD_DIR)/packages/rpm/RPMS -name '*.rpm' | xargs cp -u --target-directory=$(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)/Packages
|
||||
createrepo -g $(LOCAL_MIRROR_MOS_CENTOS)/comps.xml \
|
||||
|
@ -148,6 +166,9 @@ fuel-bootstrap-image
|
|||
|
||||
$(eval $(foreach pkg,$(fuel_rpm_packages_late),$(call build_rpm,$(pkg),-late)$(NEWLINE)))
|
||||
|
||||
$(eval $(call inc_rpm_package_release,fuel-bootstrap-image))
|
||||
$(eval $(call inc_rpm_package_release,fuel-docker-images))
|
||||
|
||||
# BUILD_PACKAGES=0 - for late packages we need to be sure that centos mirror is ready
|
||||
# BUILD_PACKAGES=1 - for late packages we need to be sure that fuel-* packages was build beforehand
|
||||
$(BUILD_DIR)/packages/rpm/repo-late.done: $(BUILD_DIR)/mirror/centos/repo.done
|
||||
|
|
Loading…
Reference in New Issue