Bug #307
Build Generator: Build steps (invoke maven, shell, etc) in Jobs that contain a subfolder are not executed in the right order
Status: | Resolved | Start date: | 2014-10-13 | ||
---|---|---|---|---|---|
Priority: | High | Due date: | |||
Assignee: | Jan Moringen | % Done: | 60% | ||
Category: | build-generator | Spent time: | 0.10 hour | ||
Target version: | Toolkit 0.1 |
Description
Build Generator: Build steps (invoke maven, shell, etc) in Jobs that contain a subfolder are not executed in the right order.
For Example, if you need to move a directory to the top-level folder in order to invoke maven (pom) or cmake-based build tools, the build process fails because maven (cmake, whatever) is actually invoked before the folder, contrain the cmake or pom file, is moved.
See:
http://bnd.csra.cit-ec.de:8080/job/flobidev-basic-hlc_client_java-master-toolkit-nightly/configure
Unfortunately, I cannot tell you what version of the build-gen is installed on bnd. I assume the latest one.
Can you confirm this bug?
Associated revisions
History
#1 Updated by Simon Schulz about 10 years ago
some additional info: this is related git projects with subfolders
the subfolder is moved to the build directory after your shell code is run
#2 Updated by Florian Lier about 10 years ago
...but related to any kind of project file that contains the "subfolder" variable
#3 Updated by Jan Moringen about 10 years ago
- Status changed from New to Feedback
Please try the 0.3 version of the generator (See Johannes' email).
#4 Updated by Jan Moringen about 10 years ago
- Status changed from Feedback to Resolved
- % Done changed from 0 to 100
#5 Updated by Simon Schulz almost 10 years ago
bug still exists...
build-generator version 0.3.36
{ "name": "libreflexxes", "templates": [ "cor-lab", "freestyle" ], "catalogue.component.title": "libreflexxes", "catalogue.component.nid": "0", "variables": { "description": "libreflexxes - a motion/trajectory generation lib. we use the open source type2 library (no jerk limitation). the type5 library is available for academic use for free (contact reflexxes.com)", "keywords": [ "motion", "trajectory", "planning" ], "repository": "https://projects.cit-ec.uni-bielefeld.de/git/flobidev.core/", "sub-directory": "external/ReflexxesTypeII_v1.2.3/", "branches": [ "master" ], "extra-provides" : [ [ "cmake", "libreflexxes" ] ], "shell.command": " ARCH=\\$(case \\$(uname -m) in (i686) echo x86 ;; (x86_64) echo x64 ;; esac) ls -al ls -al * cd Linux make all mkdir -p ${toolkit.dir}/lib/pkgconfig mkdir -p ${toolkit.dir}/include install \\${ARCH}/release/lib/shared/libReflexxesTypeII.so ${toolkit.dir}/lib install ../include/*.h ${toolkit.dir}/include echo \"#pkg config file for reflexxes lib\nprefix=${toolkit.dir}\nexec_prefix=\\${prefix}\nlibdir=\\$(prefix)/lib\nincludedir=\\$(prefix)/include\nName: reflexxes\nDescription: reflexxes motion lib\nVersion: 1.2.3\nRequires:\nLibs: -L\\${libdir} -lReflexxesTypeII\nCflags: -I\\${includedir}\n\n\" > ${toolkit.dir}/lib/pkgconfig/libReflexxesTypeII.pc " }
produces:
.. <builders> <hudson.tasks.Shell> <command> ARCH=$(case $(uname -m) in (i686) echo x86 ;; (x86_64) echo x64 ;; esac) ls -al ls -al * cd Linux make all mkdir -p /media/local/vol/flobi-emotrack/releases/nightly/lib/pkgconfig mkdir -p /media/local/vol/flobi-emotrack/releases/nightly/include install ${ARCH}/release/lib/shared/libReflexxesTypeII.so /media/local/vol/flobi-emotrack/releases/nightly/lib install ../include/*.h /media/local/vol/flobi-emotrack/releases/nightly/include echo "#pkg config file for reflexxes lib prefix=/media/local/vol/flobi-emotrack/releases/nightly exec_prefix=${prefix} libdir=$(prefix)/lib includedir=$(prefix)/include Name: reflexxes Description: reflexxes motion lib Version: 1.2.3 Requires: Libs: -L${libdir} -lReflexxesTypeII Cflags: -I${includedir} " > /media/local/vol/flobi-emotrack/releases/nightly/lib/pkgconfig/libReflexxesTypeII.pc </command> </hudson.tasks.Shell> <hudson.tasks.Shell> <command>find . -mindepth 1 -maxdepth 1 -not -name "external/ReflexxesTypeII_v1.2.3/" -exec rm -rf {} \; # Uniquely rename directory. temp=$(mktemp -d ./XXXXXXXX) mv "external/ReflexxesTypeII_v1.2.3/" "${temp}/" # Move contents to toplevel workspace directory. find "${temp}" -mindepth 2 -maxdepth 2 -exec mv {} . \; rm -r "${temp}"</command> </hudson.tasks.Shell> </builders> ...
#6 Updated by Simon Schulz almost 10 years ago
- Status changed from Resolved to Feedback
#7 Updated by Jan Moringen almost 10 years ago
- Status changed from Feedback to Resolved
Right, the workaround is not possible for freestyle projects.
#8 Updated by Simon Schulz almost 10 years ago
still broken. see e.g. project flobidev-basic-hlc_client_java-master-toolkit-nightly
#9 Updated by Jan Moringen almost 10 years ago
- Status changed from Resolved to In Progress
- % Done changed from 100 to 60
still broken. see e.g. project flobidev-basic-hlc_client_java-master-toolkit-nightly
Sorry, I didn't mean to change this to "resolved". The combination of this redmine instance and the webbrowser sometimes causes random changes to "Status" and "% Done" when I just want to write a comment.
The situation should be as follows:- In the 0.3 version of the generators, the problem should be fixed (or worked around, rather) with two exceptions:
- The workaround is not applicable to freestyle projects
- Since the Maven template currently introduces an additional shell fragment, the workaround is not applicable to Maven projects as well
- An extended aspect sorting mechanism is being developed in the generator master branch, but it is not clear whether a backport to 0.3 will make sense or not
#10 Updated by Florian Lier almost 10 years ago
- Status changed from In Progress to Feedback
This should be fixed right?
#11 Updated by Florian Lier almost 10 years ago
- Status changed from Feedback to Resolved