…kage git-buildpackage should provide just the according magic like building the orig.tar.gz, but dpkg-source should do the rest™. This avoids running the 'debian/rules clean' step which might include execution of insecure commands. Disclaimer: So far this works fine for all the packages I tested, let's see how well this works in the long run...
We can't remove a package from the repository in the step where we're checking for missing binary packages (to get rid of packages which are no longer provided but shouldn't stay in the archive) if the package is an 'Architecture: all' one, as e.g. the i386 build might remove the package from the amd64 build. So let's check for "-B" in DEBBUILDOPTS and then skip the removal process in such a situation...
If we're building a package version where Debian's build tools don't automatically consider it as new upstream version and therefore don't include orig.tar.gz into the upload the build process fails.
This makes reading logs a bit easier...
When debugging problems this turns out to be useful...
We already depend on dpkg-dev but don't have libparse-debianchangelog-perl in our depends, so use in generate-git-snapshot the same command as in the other scripts.
…s to orig dir If we switch the directory we might end up in the wrong directory for further actions, so run all the commands around svn-buildpackage in a subshell. Also replace the --svn-move command with --svn-move-to to place the artifact files in the original directory, otherwise the files might be placed in the wrong directory if $branch is set and used.
…ackages Thanks: Alexander Wirt <email@example.com>
…tions Another job might place its files into the incoming directory at the same time. If the *.changes file is present but not all its referenced files are there yet this causes an error in the reprepro call and therefore forcing the Jenkins job to fail.
Otherwise we can't reliably handle release builds, since we might have packages that are already registered in another distribution. Therefore provide release builds in a specific directory, this also allows to move the given release to another place easier.
Try to get rid of includedsc, instead reprepro should do it based on *.changes for us.
…does not exist Do not assume we always have a master branch, instead consider $branch if it's set and use master branch as fall back only. Also checkout the branch instead of just creating a local version of it. This takes remotes/origin/* into consideration, so the user shouldn't have to specify remotes/origin/ at the beginning of branch names any longer.
…g "git pull" For some reason the Git plugin in Jenkins doesn't run the 'git pull' for us, so while the files are fetched already they aren't present in the working directory yet. So let's make sure we actually have the files we're claiming to work with.
…on as $tag is set