mirror of
https://github.com/Telecominfraproject/ols-ucentral-client.git
synced 2026-01-09 16:51:32 +00:00
Add version to ols-ucentral-client Augment the build to pull the schema version file from the ols-ucentral-schema repo (if present) based on commit id of schema used as baseline for this client version. Use both it and the version to provide the version information in the connect message. Signed-off-by: Mike Hansen <mike.hansen@netexperience.com>
107 lines
4.3 KiB
Makefile
107 lines
4.3 KiB
Makefile
|
|
.ONESHELL:
|
|
SHELL = /bin/bash
|
|
.SHELLFLAGS += -e
|
|
|
|
IMG_ID := "ucentral-client-build-env"
|
|
IMG_TAG := $(shell cat Dockerfile | sha1sum | awk '{print substr($$1,0,11);}')
|
|
CONTAINER_NAME := "ucentral_client_build_env"
|
|
|
|
.PHONY: all clean build-host-env build-final-deb build-ucentral-docker-img run-host-env run-ucentral-docker-img
|
|
|
|
all: build-host-env build-ucentral-app build-ucentral-docker-img build-final-deb
|
|
|
|
build-host-env:
|
|
@mkdir output 2>/dev/null || true
|
|
@mkdir docker 2>/dev/null || true
|
|
# Build docker img if not exists already, do nothing otherwise;
|
|
@echo Checking / building docker build env img;
|
|
docker inspect --type=image ${IMG_ID}:${IMG_TAG} >/dev/null 2>&1 || \
|
|
docker build --file Dockerfile --tag ${IMG_ID}:${IMG_TAG} docker
|
|
@echo Docker build done;
|
|
@echo Saving docker img to local archive...;
|
|
if [ ! -f output/docker-ucentral-client-build-env-${IMG_TAG}.gz ] ; then
|
|
docker save ${IMG_ID}:${IMG_TAG} | gzip -c - > \
|
|
output/docker-ucentral-client-build-env-${IMG_TAG}.gz;
|
|
fi
|
|
@echo Docker save done...;
|
|
|
|
run-host-env: build-host-env
|
|
docker container stop ${CONTAINER_NAME} > /dev/null 2>&1 || true;
|
|
docker container rm ${CONTAINER_NAME} > /dev/null 2>&1 || true;
|
|
docker run -d -t --name ${CONTAINER_NAME} \
|
|
-v $(realpath ./):/root/ols-nos \
|
|
--env UCENTRAL_PLATFORM=$(UCENTRAL_PLATFORM) \
|
|
--env PLATFORM_REVISION="$(PLATFORM_REVISION)" \
|
|
${IMG_ID}:${IMG_TAG} \
|
|
bash
|
|
|
|
run-ucentral-docker-img: build-ucentral-docker-img
|
|
mkdir ./tip-certs 2>/dev/null || true;
|
|
docker container stop ucentral_client > /dev/null 2>&1 || true;
|
|
docker container rm ucentral_client > /dev/null 2>&1 || true;
|
|
docker run -d -i -t --name ucentral_client --network=host \
|
|
-v `realpath ./tip-certs`:/etc/ucentral \
|
|
--env UCENTRAL_PLATFORM=$(UCENTRAL_PLATFORM) \
|
|
ucentral-client:latest
|
|
docker logs -f ucentral_client || true;
|
|
|
|
build-ucentral-app: run-host-env
|
|
@echo Running ucentralclient docker-build-env container to build ucentral-client...;
|
|
docker exec -t ${CONTAINER_NAME} /root/ols-nos/docker-build-client.sh
|
|
docker cp ${CONTAINER_NAME}:/root/deliverables/ src/docker/
|
|
# copy the schema version, if it is there
|
|
docker cp ${CONTAINER_NAME}:/root/ucentral-external-libs/ols-ucentral-schema/schema.json src/docker/ || true
|
|
docker container stop ${CONTAINER_NAME} > /dev/null 2>&1 || true;
|
|
docker container rm ${CONTAINER_NAME} > /dev/null 2>&1 || true;
|
|
if [ -f version.json ]; then
|
|
cp version.json src/docker/
|
|
fi
|
|
|
|
build-ucentral-docker-img: build-ucentral-app
|
|
pushd src
|
|
cp docker/deliverables/lib* docker/
|
|
cp docker/deliverables/ucentral-client docker/
|
|
cp docker/deliverables/rtty docker/
|
|
OLDIMG=$$(docker images --format "{{.ID}}" ucentral-client:latest)
|
|
docker build --file docker/Dockerfile --tag ucentral-client:latest docker
|
|
NEWIMG=$$(docker images --format "{{.ID}}" ucentral-client:latest)
|
|
if [ -n "$$OLDIMG" ] && [ ! "$$OLDIMG" = "$$NEWIMG" ]; then
|
|
docker image rm $$OLDIMG
|
|
fi
|
|
docker save ucentral-client:latest |gzip -c - > docker-ucentral-client.gz
|
|
popd
|
|
|
|
build-final-deb: build-ucentral-docker-img
|
|
pushd src
|
|
# uCentral client is compiled at this stage, just copy it (libs are also copied)
|
|
mv -f docker/deliverables/* docker/
|
|
|
|
# Build the final deb file
|
|
dpkg-buildpackage -rfakeroot -b -us -uc -j
|
|
|
|
popd
|
|
mv ucentral-client*deb ./output/
|
|
mv src/docker-ucentral-client.gz ./output/
|
|
@echo
|
|
@echo "ucentral client deb pkg is available under ./output/ dir"
|
|
|
|
clean:
|
|
docker container stop ${CONTAINER_NAME} > /dev/null 2>&1 || true;
|
|
docker container rm ${CONTAINER_NAME} > /dev/null 2>&1 || true;
|
|
docker rmi ucentral-client 2>/dev/null || true;
|
|
docker rmi ${IMG_ID}:${IMG_TAG} 2>/dev/null || true;
|
|
rm -rf output 2>/dev/null || true;
|
|
rm -rf docker 2>/dev/null || true;
|
|
rm -rf src/docker/deliverables || true;
|
|
rm -rf src/docker/lib* || true;
|
|
rm -rf src/docker/ucentral-client || true;
|
|
rm -rf src/docker/version.json || true;
|
|
rm -rf src/docker/schema.json || true;
|
|
rm -rf src/debian/ucentral-client.substvars 2>/dev/null || true;
|
|
rm -rf src/debian/shasta-ucentral-client.debhelper.log 2>/dev/null || true;
|
|
rm -rf src/debian/.debhelper src/debian/ucentral-client 2>/dev/null || true;
|
|
rm -rf src/debian/shasta-ucentral-client* 2>/dev/null || true;
|
|
rm -rf src/debian/debhelper-build-stamp* 2>/dev/null || true;
|
|
rm -rf src/debian/files shasta_1.0_amd64.changes shasta_1.0_amd64.buildinfo 2>/dev/null || true;
|