From 882d4b57b88f998bbc6e9f1eb391f7477dfe86be Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Thu, 27 Apr 2017 09:33:53 +0200 Subject: [PATCH] fixed packaging and deployment --- .gitlab-ci.yml | 27 +++++++++++++-------------- Makefile | 4 ++-- packaging/Makefile.inc | 33 +++++++++++++++++++++++---------- packaging/rpm/Makefile.inc | 4 ++-- packaging/rpm/villas-node.spec | 5 ++++- 5 files changed, 44 insertions(+), 29 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d3fc7e9be..8229fdb2d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,5 @@ variables: - GIT_STRATEGY: clone + GIT_STRATEGY: fetch GIT_SUBMODULE_STRATEGY: recursive PREFIX: /usr/ RSYNC_OPTS: --recursive --ignore-missing-args --chown $DEPLOY_USER:$DEPLOY_USER @@ -17,12 +17,10 @@ stages: docker-dev: stage: prepare before_script: - - docker info +# - docker login -u $DOCKER_USER -p $DOCKER_PASS -e $DOCKER_EMAIL $DOCKER_REGISTRY script: - - docker pull fedora:latest - - docker build -f Dockerfile.dev -t villas-node-dev:$CI_COMMIT_REF_NAME . - - docker tag -f villas-node-dev $DOCKER_REGISTRY/villas-node-dev:$CI_COMMIT_REF_NAME - - docker push $DOCKER_REGISTRY/villas-node-dev:$CI_COMMIT_REF_NAME + - make docker-dev + - make deploy-docker-dev tags: - shell - linux @@ -39,7 +37,7 @@ build: name: "${CI_PROJECT_NAME}-${CI_BUILD_REF}" paths: - build/release/ - image: $DOCKER_REGISTRY/villas-node-dev:$CI_COMMIT_REF_NAME + image: $DOCKER_REGISTRY/villas/node-dev:$CI_COMMIT_REF_NAME tags: - docker @@ -51,7 +49,7 @@ docs: - build/release/doc/ script: - make doc - image: $DOCKER_REGISTRY/villas-node-dev:$CI_COMMIT_REF_NAME + image: $DOCKER_REGISTRY/villas/node-dev:$CI_COMMIT_REF_NAME tags: - docker @@ -71,7 +69,7 @@ packages: paths: - build/release/packaging/*.tar.gz - build/release/packaging/rpm/RPMS/ - image: $DOCKER_REGISTRY/villas-node-dev:$CI_COMMIT_REF_NAME + image: $DOCKER_REGISTRY/villas/node-dev:$CI_COMMIT_REF_NAME tags: - docker @@ -89,7 +87,7 @@ coverage: - build/release-coverage/coverage/ - build/release-coverage/coverage.txt - build/release-coverage/coverage.xml - image: $DOCKER_REGISTRY/villas-node-dev:$CI_COMMIT_REF_NAME + image: $DOCKER_REGISTRY/villas/node-dev:$CI_COMMIT_REF_NAME coverage: '/lines: (\d+\.\d+\%)/' tags: - docker @@ -100,7 +98,7 @@ unit: - build script: - make run-unit-tests - image: $DOCKER_REGISTRY/villas-node-dev:$CI_COMMIT_REF_NAME + image: $DOCKER_REGISTRY/villas/node-dev:$CI_COMMIT_REF_NAME tags: - docker @@ -117,7 +115,7 @@ integration: when: always paths: - build/release/tests/integration/ - image: $DOCKER_REGISTRY/villas-node-dev:$CI_COMMIT_REF_NAME + image: $DOCKER_REGISTRY/villas/node-dev:$CI_COMMIT_REF_NAME tags: - docker @@ -127,10 +125,11 @@ integration: docker: stage: deploy + before_script: +# - docker login -u $DOCKER_USER -p $DOCKER_PASS -e $DOCKER_EMAIL $DOCKER_REGISTRY script: - make docker - - docker tag -f villas-node $DOCKER_REGISTRY/villas-node:$CI_COMMIT_REF_NAME - - docker push $DOCKER_REGISTRY/villas-node:$CI_COMMIT_REF_NAME + - make deploy-docker dependencies: - packages only: diff --git a/Makefile b/Makefile index 5d40c3f88..aad9cf15e 100644 --- a/Makefile +++ b/Makefile @@ -126,8 +126,8 @@ $(BUILDDIR)/defines: | $$(dir $$@) echo -e "$(addprefix \n-DWITH_, $(shell echo ${PKGS} | tr a-z- A-Z_ | tr -dc ' A-Z0-9_' ))" >> $@ echo -e "$(addprefix \n-DWITH_, $(shell echo ${LIB_PKGS} | tr a-z- A-Z_ | tr -dc ' A-Z0-9_' ))" >> $@ -install: $(addprefix install-,$(filter-out thirdparty doc,$(MODULES))) -clean: $(addprefix clean-,$(filter-out thirdparty doc,$(MODULES))) +install: $(addprefix install-,$(filter-out thirdparty doc clients,$(MODULES))) +clean: $(addprefix clean-,$(filter-out thirdparty doc clients,$(MODULES))) .PHONY: all everything clean install diff --git a/packaging/Makefile.inc b/packaging/Makefile.inc index eb8b12685..51d8a6edd 100644 --- a/packaging/Makefile.inc +++ b/packaging/Makefile.inc @@ -2,12 +2,19 @@ TAROPTS = --exclude-ignore-recursive=.distignore --transform='s|^\.|villas-node- TAR_VILLAS = $(BUILDDIR)/packaging/villas-node-$(VERSION_NUM)-1.$(GIT_BRANCH)_$(subst -,_,$(VARIANT)).$(shell date +%Y%m%d)git$(GIT_REV).tar.gz -DEPLOY_HOST = root@villas.0l.de -DEPLOY_PATH = /var/www/villas +DEPLOY_USER ?= root +DEPLOY_HOST ?= 188.166.166.227 +DEPLOY_PATH ?= /var/www/villas/node + +DOCKER_REGISTRY ?= docker.io +DOCKER_IMAGE ?= villas/node + +deploy-docker-dev: DOCKER_IMAGE := $(DOCKER_IMAGE)-dev +docker-dev: DOCKER_IMAGE := $(DOCKER_IMAGE)-dev packaging: rpm dist -deploy: deploy-dist deploy-rpm +deploy: deploy-dist deploy-rpm deploy-docker # Source tarballs dist: $(TAR_VILLAS) @@ -16,21 +23,27 @@ $(TAR_VILLAS): | $$(dir $$@) tar $(TAROPTS) -C $(SRCDIR) -czf $@ . deploy-dist: $(TAR_VILLAS) - rsync $(TAR_VILLAS) $(DEPLOY_HOST):$(DEPLOY_PATH)/node/src + rsync $(TAR_VILLAS) $(DEPLOY_USER)@$(DEPLOY_HOST):$(DEPLOY_PATH)/src deploy-rpm: - rsync -a --progress $(RPMDIR)/RPMS/ $(DEPLOY_HOST):$(DEPLOY_PATH)/packages/ - ssh $(DEPLOY_HOST) createrepo $(DEPLOY_PATH)/packages + rsync -a --progress $(RPMDIR)/RPMS/ $(DEPLOY_USER)@$(DEPLOY_HOST):$(DEPLOY_PATH)/../packages/ + ssh $(DEPLOY_USER)@$(DEPLOY_HOST) createrepo $(DEPLOY_PATH)/../packages + +deploy-docker deploy-docker-dev: + docker tag -f $(DOCKER_IMAGE):$(GIT_BRANCH) $(DOCKER_REGISTRY)/$(DOCKER_IMAGE):$(GIT_BRANCH) + docker push $(DOCKER_REGISTRY)/$(DOCKER_IMAGE):$(GIT_BRANCH) # Docker targets -run-docker-dev: - docker run -it -p 80:80 -p 443:443 -p 1234:1234 --privileged --security-opt seccomp:unconfined -v $(PWD):/villas villas-node-dev +run-docker-dev: docker-dev + docker run -it -p 80:80 -p 443:443 -p 1234:1234 --privileged --security-opt seccomp:unconfined -v "$(PWD):/villas" $(DOCKER_IMAGE)-dev:$(GIT_BRANCH) docker-dev: - docker build -f Dockerfile.dev -t villas-node-dev $(SRCDIR) + docker pull fedora:25 + docker build -f Dockerfile.dev -t $(DOCKER_IMAGE):$(GIT_BRANCH) $(SRCDIR) docker: - docker build -f Dockerfile -t villas-node $(SRCDIR) + docker pull fedora:25 + docker build -f Dockerfile -t $(DOCKER_IMAGE):$(GIT_BRANCH) $(SRCDIR) clean-packaging: rm -f $(BUILDDIR)/packaging/villas-node-$(VERSION_NUM).tar.gz diff --git a/packaging/rpm/Makefile.inc b/packaging/rpm/Makefile.inc index 5c244b395..f842ab193 100644 --- a/packaging/rpm/Makefile.inc +++ b/packaging/rpm/Makefile.inc @@ -5,7 +5,7 @@ SPEC_VILLAS = $(BUILDDIR)/packaging/rpm/villas-node.spec rpm: rpm-villas-node rpm-libwebsockets rpm-libxil rpm-villas-node: $(TAR_VILLAS) $(SPEC_VILLAS) | $(RPMDIR)/SOURCES/ - cp $(BUILDDIR)/packaging/villas-node-$(VERSION_NUM).tar.gz $(RPMDIR)/SOURCES + cp $(TAR_VILLAS) $(RPMDIR)/SOURCES rpmbuild -ba --define="_topdir $$(pwd)/$(RPMDIR)" $(BUILDDIR)/packaging/rpm/villas-node.spec rpm-libxil: $(BUILDDIR)/thirdparty/libxil/ @@ -16,7 +16,7 @@ rpm-libxil: $(BUILDDIR)/thirdparty/libxil/ cp $(BUILDDIR)/thirdparty/libxil/libxil-*.tar.gz $(RPMDIR)/SOURCES rpmbuild -ba --define="_topdir $$(pwd)/$(RPMDIR)" $(SRCDIR)/thirdparty/libxil/libxil.spec -rpm-libwebsockets: | $(RPMDIR)/RPMS $(BUILDDIR)/thirdparty/libwebsockets/ +rpm-libwebsockets: | $(RPMDIR)/RPMS/x86_64/ $(BUILDDIR)/thirdparty/libwebsockets/ cmake -DCMAKE_INSTALL_PREFIX:PATH=$(PREFIX) \ -H$(SRCDIR)/thirdparty/libwebsockets \ -B$(BUILDDIR)/thirdparty/libwebsockets $(CMAKE_OPTS) diff --git a/packaging/rpm/villas-node.spec b/packaging/rpm/villas-node.spec index ecfe5341f..c8879e636 100644 --- a/packaging/rpm/villas-node.spec +++ b/packaging/rpm/villas-node.spec @@ -7,7 +7,7 @@ Summary: This is VILLASnode, a gateway for processing and forwardning simulatio License: LGPLv2 URL: https://git.rwth-aachen.de/VILLASframework/VILLASnode -Source0: villas-node-%{version}.tar.gz +Source0: villas-node-§VERSION§-§RELEASE§.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: gcc pkgconfig make @@ -61,6 +61,9 @@ rm -rf %{?buildroot} /usr/lib/libvillas.so /usr/lib/libvillas.so.* +/usr/lib/libvillas-ext.so +/usr/lib/libvillas-ext.so.* + /usr/share/villas/node/web/ /usr/share/villas/node/plugins/