From 60777f0cb1b75b080ed911479915cd063d4c73e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Sj=C3=B6lund?= Date: Tue, 21 Dec 2021 16:16:26 +0100 Subject: [PATCH] Build the source tarball in Jenkins, including docs TODO: * Also upload the source tarball from here (instead of other jobs). * Install the documentation if it exists --- Jenkinsfile | 21 +++++++++++++++++++++ Makefile.in | 12 ++++++++++++ common/m4/semver.m4 | 1 + common/semver.sh | 4 ++-- configure.ac | 35 +++++++++++++++++++++++++++++++++++ doc/Makefile | 6 +++--- 6 files changed, 74 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 57af689b248..32428269cd5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -530,6 +530,9 @@ pipeline { sh "mv doc/UsersGuide/build/epub/OpenModelicaUsersGuide.epub OpenModelicaUsersGuide-${common.tagName()}.epub" archiveArtifacts "OpenModelicaUsersGuide-${common.tagName()}*.*" stash name: 'usersguide', includes: "OpenModelicaUsersGuide-${common.tagName()}*.*" + + sh "make -C doc" + stash name: 'doc-tarball', includes: "doc/openmodelica-doc_*.orig.tar.xz" } } @@ -795,6 +798,24 @@ pipeline { sshPublisher(publishers: [sshPublisherDesc(configName: 'OpenModelicaUsersGuide', transfers: [sshTransfer(sourceFiles: "OpenModelicaUsersGuide-${common.tagName()}*,${common.tagName()}/**")])]) } } + stage('make-source-tarball') { + agent { + docker { + image 'docker.openmodelica.org/build-deps:v1.16.3' + label 'linux' + alwaysPull true + } + } + when { + beforeAgent true + } + steps { + echo "${env.NODE_NAME}" + unstash 'doc-tarball' + sh "make source-dist" + stash name: 'source-dist', includes: "openmodelica_*.orig.tar.xz" + } + } } } stage('publish') { diff --git a/Makefile.in b/Makefile.in index ecdbb9b6ff5..ce4505a1ff5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -205,3 +205,15 @@ config.status: configure ./config.status -recheck configure: configure.ac autoconf + +SOURCE_DIR=openmodelica_@SOURCE_REVISION_NO_PKG@ +source-dist: + rm -rf "$(SOURCE_DIR)" + mkdir -p "$(SOURCE_DIR)" + git ls-files --recurse-submodules | tar caf - -T- | tar xC "$(SOURCE_DIR)" + echo "@SOURCE_REVISION_NO_PKG@" > "$(SOURCE_DIR)/REVISION" + echo "OMEdit @SOURCE_REVISION_NO_PKG@" > "$(SOURCE_DIR)/OMEdit/REVISION" + rm -rf "$(SOURCE_DIR)/testsuite" "$(SOURCE_DIR)/libraries" "$(SOURCE_DIR)/doc" "$(SOURCE_DIR)/OMOptim" "$(SOURCE_DIR)/OMSimulator/OMTLMSimulator/CompositeModels" "$(SOURCE_DIR)/OMSimulator/testsuite" + mkdir -p "$(SOURCE_DIR)/doc" + tar xCJf "$(SOURCE_DIR)/doc" doc/openmodelica-doc_@SOURCE_REVISION_NO_PKG@.orig.tar.xz + tar cJf "$(SOURCE_DIR).orig.tar.xz" "$(SOURCE_DIR)" \ No newline at end of file diff --git a/common/m4/semver.m4 b/common/m4/semver.m4 index 619c29f23b6..14506cc7230 100644 --- a/common/m4/semver.m4 +++ b/common/m4/semver.m4 @@ -2,5 +2,6 @@ AC_SUBST(SOURCE_REVISION) AC_MSG_CHECKING([for revision]) SOURCE_REVISION=`$ac_pwd/common/semver.sh $PACKAGE_NAME` +SOURCE_REVISION_NO_PKG=`$ac_pwd/common/semver.sh` AC_MSG_RESULT([$SOURCE_REVISION]) diff --git a/common/semver.sh b/common/semver.sh index 223493a432c..b77807c70a0 100755 --- a/common/semver.sh +++ b/common/semver.sh @@ -6,8 +6,8 @@ if test -f REVISION; then elif test "${PWD##*/}" != "OpenModelica" && test -f ../REVISION; then SOURCE_REVISION="OpenModelica `test -f ../REVISION && head -n1 ../REVISION`" elif test -z "$SOURCE_REVISION"; then - DESCRIBE_SHORT=`git describe --match "v[0-9]*.[0-9]*.[0-9]*" --always` - DESCRIBE_LONG=`git describe --match "v[0-9]*.[0-9]*.[0-9]*" --always --long` + DESCRIBE_SHORT=`git describe --abbrev=7 --match "v[0-9]*.[0-9]*.[0-9]*" --always` + DESCRIBE_LONG=`git describe --abbrev=7 --match "v[0-9]*.[0-9]*.[0-9]*" --always --long` if test "$DESCRIBE_SHORT" != "$DESCRIBE_LONG"; then SOURCE_REVISION="$DESCRIBE_SHORT" else diff --git a/configure.ac b/configure.ac index 7ffe391d02c..fa4ae3180bb 100644 --- a/configure.ac +++ b/configure.ac @@ -28,6 +28,41 @@ else AC_MSG_RESULT([no]) fi +AC_SUBST(SOURCE_REVISION_NO_PKG) +m4_include([common/m4/semver.m4]) +SOURCE_REVISION_NO_PKG=`echo $SOURCE_REVISION_NO_PKG | tr - '~' | sed s/^v//` + +AC_SUBST(OMLIBRARY_TARGET) +AC_ARG_WITH(omlibrary, [ --with-omlibrary=[core,all,no] (which libraries to build; default is core; the libraries used by the testsuite)],[OMLIBRARY_TARGET="$withval"],[OMLIBRARY_TARGET="core"]) + +AC_MSG_CHECKING([for omlibrary target]) +case "$OMLIBRARY_TARGET" in + "yes"|"core") + OMLIBRARY_TARGET="omlibrary-core" + AC_MSG_RESULT([core]) + ;; + "no") + OMLIBRARY_TARGET="" + AC_MSG_RESULT([none]) + ;; + "all") + OMLIBRARY_TARGET="omlibrary-all" + AC_MSG_RESULT([all]) + ;; + *) + AC_MSG_ERROR("unknown omlibrary target $OMLIBRARY_TARGET") + ;; +esac + +if test ! -z "$OMLIBRARY_TARGET"; then + AC_MSG_CHECKING([for libraries directory]) + if test -f libraries/Makefile; then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([no]) + fi +fi + AC_SUBST(CMAKE_LDFLAGS) if echo $host | grep -i darwin; then CMAKE_LDFLAGS="-Wl,-U,libintl_gettext" diff --git a/doc/Makefile b/doc/Makefile index a084572872d..7f10b918fe0 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,5 +1,5 @@ .PHONY: generated_pdfs/dyOptInitialGuess.pdf generated_pdfs/cruntimedraft.pdf usersguide cppruntime-doc clean -all: generated_pdfs/dyOptInitialGuess.pdf +all: docs generated_pdfs/cruntimedraft.pdf: latexmk -outdir=generated_pdfs -pdf SimulationRuntime/c/src/cruntimedraft.tex @@ -14,7 +14,7 @@ usersguide: BUILDDIR=openmodelica-doc_$(BUILDDIR_VER) omsiruntime-doc: - mkdir -p SimulationRuntime/omsi/Images + mkdir -p SimulationRuntime/OMSI/Images cp images/logo.svg SimulationRuntime/OMSI/Images/OMLogo.svg cd SimulationRuntime/OMSI && cmake -G "Unix Makefiles" -DSOURCE_ROOT=../../../OMCompiler/SimulationRuntime/OMSI && make Docs @@ -44,7 +44,7 @@ docs-internal: generated_pdfs/dyOptInitialGuess.pdf generated_pdfs/cruntimedraft docs: test -f ../common/semver.sh - $(MAKE) docs-internal BUILDDIR_VER="`cd ../ && ./common/semver.sh | sed -e 's/-dev[.]/~dev-/' -e 's/^v//'`" + $(MAKE) docs-internal BUILDDIR_VER="`cd ../ && ./common/semver.sh | tr - "~" | sed -e 's/^v//'`" clean: