Code Monkey home page Code Monkey logo

debian-package-builder-plugin's Introduction

debian-package-builder

debian-package-builder is Jenkins plugin for building debian (.deb) packages. It rocks. really.

Prerequisites

  • Jenkins user need to have rights to run (maybe via sudo):
apt-get -y update
apt-get -y install aptitude pbuilder
pbuilder-satisfydepends

Configuration

debian-package-builder-plugin's People

Contributors

deogracia avatar guilhem avatar jacksoncage avatar mavlyutov avatar pupssman avatar raizdepi avatar roadrunner2 avatar tigo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

debian-package-builder-plugin's Issues

changelog generation changes distribution when running on ubuntu

And when the distribution is not the current ubuntu, i.e. unstable instead of trusty.

When generating changelog the distribution will get changed to current ubuntu distro as this is default behavior in dch:

    if ($vendor eq 'Ubuntu') {
        # In Ubuntu the development release regularly changes, don't just copy
        # the previous name.
        $DISTRIBUTION="trusty";
    } else {
        $DISTRIBUTION=$changelog{'Distribution'};
    }

We need to use parseChangelog to get current distribution and supply that when calling dch with -d <current_distribution>

parseChangelog always return null when getting "Version", "Distribution" and "Source"

HI,

I'm trying to use this plugin but it is always returning null for the values is getting at function parseChangelog, as it's seen in my log:

bash -c 'cd "/opt/jenkins/workspace/release-deb-test/web/debian" && dpkg-parsechangelog -lchangelog'
[debian-package-builder] Determined latest version to be null
...
+ dch --check-dirname-level 0 -b --distribution null --newVersion 2016.3.3+dev19 -- 'Build #19. Started by an SCM change.'
dch warning: Recognised distributions are:
{precise,trusty,wily,xenial}{,-updates,-security,-proposed,-backports} and UNRELEASED.
Using your request anyway.
dch: Did you see that warning?  Press RETURN to continue...
...
ERROR: Build step failed with exception
java.lang.IllegalArgumentException: Null value not allowed as an environment variable: DEBIAN_SOURCE_PACKAGE

If dpkg-parsechangelog is executed over my changelog, I obtain the following:

Source: package
Version: 2016.3.3
Distribution: trusty
Urgency: low
Maintainer: SysAdmins <[email protected]>
Date: Tue, 08 Mar 2016 09:03:49 +0100
Changes: 
 package (2016.3.3) trusty; urgency=low
 .
   * Initial debian realase.

I inspected parseChangelog function and it seems correct to me; the only thing makes me suspect is the function runner.runCommandForOutput.

Finally, my java version is the following:

ubuntu@build-1:/opt/jenkins/workspace$ java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

Greetings,
Pablo

Support git-plugin 2.3

Here is error I get when trying to update changelog from git with latest master.

FATAL: hudson.plugins.git.GitSCM.createClient(Lhudson/model/BuildListener;Lhudson/EnvVars;Lhudson/model/AbstractBuild;)Lorg/jenkinsci/plugins/gitclient/GitClient;
java.lang.NoSuchMethodError: hudson.plugins.git.GitSCM.createClient(Lhudson/model/BuildListener;Lhudson/EnvVars;Lhudson/model/AbstractBuild;)Lorg/jenkinsci/plugins/gitclient/GitClient;
    at ru.yandex.jenkins.plugins.debuilder.ChangesExtractor.getChangesFromGit(ChangesExtractor.java:133)
    at ru.yandex.jenkins.plugins.debuilder.ChangesExtractor.getChanges(ChangesExtractor.java:48)
    at ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder.generateChangelog(DebianPackageBuilder.java:197)
    at ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder.perform(DebianPackageBuilder.java:110)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:772)
    at hudson.model.Build$BuildExecution.build(Build.java:199)
    at hudson.model.Build$BuildExecution.doRun(Build.java:160)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:535)
    at hudson.model.Run.execute(Run.java:1732)
    at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:234)

Add pipeline support

Current Debian plugin is not compatible with pipeline, a pending pull request exising, but, may it possible to use this plugin in an alternative way ?

Plugin fails if GPG sign package option enabled

debuild --check-dirname-level 0 --no-tgz-check [email protected] -pgpg --no-tty --passphrase password
debuild: unknown dpkg-buildpackage/debuild option: --no-tty
debuild: unknown dpkg-buildpackage/debuild option: --passphrase
debuild: unknown dpkg-buildpackage/debuild option: password

dch fails to generate log entry if commit message starts from dash

Log excerpt:

00:00:43.920 [debian-package-builder] Got changeset entry: -idparametrize by XXX
00:00:43.920 [debian-package-builder] running command <export [email protected] && export DEBFULLNAME='XXX' && cd '/jenkins/workspace/package-debuild/debian' && dch --check-dirname-level 0 --append '-idparametrize' --distribution 'precise'>
00:00:44.022 [package-debuild] $ /bin/sh -xe /tmp/hudson628209911112268571.sh
00:00:44.033 + export [email protected]
00:00:44.034 + export DEBFULLNAME=XXX
00:00:44.034 + cd /jenkins/workspace/package-debuild/debian
00:00:44.034 + dch --check-dirname-level 0 --append -idparametrize --distribution precise
00:00:44.089 Unknown option: z
00:00:44.089 Usage: dch [options] [changelog entry]
00:00:44.090 Run dch --help for more details

Looks like we need to guard the changeset contents with double dash

Please reconsider using sudo apt-get commands

Could you please reconsider using 'sudo apt-get' commands in order to install pbuilder. It requires sudo privileges for jenkins agent and runs every time. Keep it for user as requirement for plugin to run. Examples are: git-plugin, maven

Add automatic yes to prompts (-y) for sudo apt-get

I'm having issue with [debian-package-builder] running command <sudo apt-get update> as it aborts if not anwsering yes. See full stacktrace below.

Should be easy to add (-y) on
https://github.com/jenkinsci/debian-package-builder-plugin/blob/master/src/main/java/ru/yandex/jenkins/plugins/debuilder/DebianPackageBuilder.java#L88-L89

runner.runCommand("sudo apt-get -y update");
runner.runCommand("sudo apt-get -y install aptitude pbuilder");

And also here;

runner.runCommand("sudo apt-get install dupload devscripts");

runner.runCommand("sudo apt-get -y install dupload devscripts");

Stacktrace

18:55:34 [debian-package-builder] running command <sudo apt-get update>
18:55:35 [BuildSniproxy] $ /bin/sh -xe /tmp/hudson7953026679995590739.sh
18:55:35 + sudo apt-get update
18:55:35 Get:1 http://security.debian.org wheezy/updates Release.gpg [836 B]
18:55:35 Get:2 http://security.debian.org wheezy/updates Release [102 kB]
18:55:35 Get:3 http://ppa.launchpad.net precise Release.gpg [316 B]
18:55:35 Get:4 http://ppa.launchpad.net precise Release [11.9 kB]
18:55:35 Hit http://ftp.debian.org wheezy Release.gpg
18:55:35 Get:5 http://ftp.debian.org wheezy-updates Release.gpg [836 B]
18:55:35 Hit http://apt.newrelic.com newrelic Release.gpg
18:55:35 Hit http://ftp.debian.org wheezy Release
18:55:35 Get:6 http://ppa.launchpad.net precise/main Sources [1,210 B]
18:55:35 Get:7 http://ftp.debian.org wheezy-updates Release [124 kB]
18:55:35 Get:8 http://security.debian.org wheezy/updates/main Sources [92.3 kB]
18:55:35 Hit http://apt.newrelic.com newrelic Release
18:55:35 Get:9 http://ppa.launchpad.net precise/main amd64 Packages [2,826 B]
18:55:35 Hit http://ftp.debian.org wheezy/main Sources
18:55:35 Get:10 http://security.debian.org wheezy/updates/main amd64 Packages [166 kB]
18:55:35 Hit http://ftp.debian.org wheezy/main amd64 Packages
18:55:35 Hit http://ftp.debian.org wheezy/main Translation-en
18:55:35 Ign http://ppa.launchpad.net precise/main Translation-en_US
18:55:35 Get:11 http://security.debian.org wheezy/updates/main Translation-en [92.5 kB]
18:55:35 Ign http://ppa.launchpad.net precise/main Translation-en
18:55:35 Get:12 http://ftp.debian.org wheezy-updates/main Sources [4,044 B]
18:55:35 Get:13 http://ftp.debian.org wheezy-updates/main amd64 Packages/DiffIndex [919 B]
18:55:36 Get:14 http://ftp.debian.org wheezy-updates/main Translation-en/DiffIndex [781 B]
18:55:36 Hit http://apt.newrelic.com newrelic/non-free amd64 Packages
18:55:36 Get:15 http://ftp.debian.org wheezy-updates/main amd64 2014-03-12-2047.17.pdiff [2,462 B]
18:55:36 Get:16 http://ftp.debian.org wheezy-updates/main amd64 2014-03-12-2047.17.pdiff [2,462 B]
18:55:36 Get:17 http://ftp.debian.org wheezy-updates/main 2014-03-12-2047.17.pdiff [1,743 B]
18:55:36 Get:18 http://ftp.debian.org wheezy-updates/main 2014-03-12-2047.17.pdiff [1,743 B]
18:55:36 Get:19 http://ftp.debian.org wheezy-updates/main amd64 2014-03-15-1444.44.pdiff [381 B]
18:55:36 Get:20 http://ftp.debian.org wheezy-updates/main amd64 2014-03-15-1444.44.pdiff [381 B]
18:55:37 Ign http://apt.newrelic.com newrelic/non-free Translation-en_US
18:55:37 Ign http://apt.newrelic.com newrelic/non-free Translation-en
18:55:37 Fetched 605 kB in 2s (280 kB/s)
18:55:46 Reading package lists...
18:55:46 [debian-package-builder] running command <sudo apt-get install aptitude pbuilder>
18:55:46 [BuildSniproxy] $ /bin/sh -xe /tmp/hudson1312531159167261850.sh
18:55:46 + sudo apt-get install aptitude pbuilder
18:55:47 Reading package lists...
18:55:47 Building dependency tree...
18:55:47 Reading state information...
18:55:47 aptitude is already the newest version.
18:55:47 The following extra packages will be installed:
18:55:47   dctrl-tools debian-keyring debootstrap devscripts diffstat distro-info-data
18:55:47   dput equivs file hardening-includes libapt-pkg-perl libarchive-zip-perl
18:55:47   libclass-accessor-perl libclass-inspector-perl libclone-perl
18:55:47   libcommon-sense-perl libconvert-binhex-perl libcrypt-ssleay-perl
18:55:47   libdigest-hmac-perl libdistro-info-perl libemail-valid-perl
18:55:47   libencode-locale-perl libexporter-lite-perl libfcgi-perl
18:55:47   libfile-listing-perl libfont-afm-perl libhtml-form-perl libhtml-format-perl
18:55:47   libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl
18:55:47   libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl
18:55:47   libhttp-message-perl libhttp-negotiate-perl libio-pty-perl
18:55:47   libio-socket-ip-perl libio-socket-ssl-perl libio-string-perl
18:55:47   libio-stringy-perl libipc-run-perl libjson-perl libjson-xs-perl
18:55:47   liblwp-mediatypes-perl liblwp-protocol-https-perl libmagic1
18:55:47   libmailtools-perl libmime-tools-perl libnet-dns-perl libnet-domain-tld-perl
18:55:47   libnet-http-perl libnet-ip-perl libnet-ssleay-perl libossp-uuid-perl
18:55:47   libossp-uuid16 libparse-debcontrol-perl libparse-debianchangelog-perl
18:55:47   libsoap-lite-perl libsocket-perl libsub-name-perl libtask-weaken-perl
18:55:47   libtie-ixhash-perl liburi-perl libwww-perl libwww-robotrules-perl
18:55:47   libxml-namespacesupport-perl libxml-parser-perl libxml-sax-base-perl
18:55:47   libxml-sax-expat-perl libxml-sax-perl libxml-simple-perl lintian patchutils
18:55:47   python-magic strace wdiff
18:55:47 Suggested packages:
18:55:47   debtags cvs-buildpackage devscripts-el gnuplot libauthen-sasl-perl
18:55:47   libfile-desktopentry-perl libnet-smtp-ssl-perl libterm-size-perl
18:55:47   libyaml-syck-perl svn-buildpackage mini-dinstall libdata-dump-perl
18:55:47   libipc-sharedcache-perl libio-socket-inet6-perl uuid libapache2-mod-perl2
18:55:47   libmime-lite-perl libnet-jabber-perl libauthen-ntlm-perl binutils-multiarch
18:55:47   libperlio-gzip-perl libtext-template-perl pbuilder-uml gdebi-core cowdancer
18:55:47   python-magic-dbg
18:55:47 The following NEW packages will be installed:
18:55:47   dctrl-tools debian-keyring debootstrap devscripts diffstat distro-info-data
18:55:47   dput equivs hardening-includes libapt-pkg-perl libarchive-zip-perl
18:55:47   libclass-accessor-perl libclass-inspector-perl libclone-perl
18:55:47   libcommon-sense-perl libconvert-binhex-perl libcrypt-ssleay-perl
18:55:47   libdigest-hmac-perl libdistro-info-perl libemail-valid-perl
18:55:47   libencode-locale-perl libexporter-lite-perl libfcgi-perl
18:55:47   libfile-listing-perl libfont-afm-perl libhtml-form-perl libhtml-format-perl
18:55:47   libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl
18:55:47   libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl
18:55:47   libhttp-message-perl libhttp-negotiate-perl libio-pty-perl
18:55:47   libio-socket-ip-perl libio-socket-ssl-perl libio-string-perl
18:55:47   libio-stringy-perl libipc-run-perl libjson-perl libjson-xs-perl
18:55:47   liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl
18:55:47   libmime-tools-perl libnet-dns-perl libnet-domain-tld-perl libnet-http-perl
18:55:47   libnet-ip-perl libnet-ssleay-perl libossp-uuid-perl libossp-uuid16
18:55:47   libparse-debcontrol-perl libparse-debianchangelog-perl libsoap-lite-perl
18:55:47   libsocket-perl libsub-name-perl libtask-weaken-perl libtie-ixhash-perl
18:55:47   liburi-perl libwww-perl libwww-robotrules-perl libxml-namespacesupport-perl
18:55:47   libxml-parser-perl libxml-sax-base-perl libxml-sax-expat-perl
18:55:47   libxml-sax-perl libxml-simple-perl lintian patchutils pbuilder python-magic
18:55:47   strace wdiff
18:55:47 The following packages will be upgraded:
18:55:47   file libmagic1
18:55:47 2 upgraded, 77 newly installed, 0 to remove and 14 not upgraded.
18:55:47 Need to get 52.5 MB of archives.
18:55:47 After this operation, 70.3 MB of additional disk space will be used.
18:55:47 Do you want to continue [Y/n]? Abort.
18:55:47 [debian-package-builder] Aborting: Command <sudo apt-get install aptitude pbuilder> failed 
18:55:47 Build step 'Build debian package' marked build as failure
18:55:47 Sending e-mails to: [email protected]
18:55:47 ERROR: Could not connect to SMTP host: smtp.mailgun.org, port: 465
18:55:47 javax.mail.MessagingException: Could not connect to SMTP host: smtp.mailgun.org, port: 465;
18:55:47   nested exception is:
18:55:47    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed
18:55:47    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
18:55:47    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
18:55:47    at javax.mail.Service.connect(Service.java:317)
18:55:47    at javax.mail.Service.connect(Service.java:176)
18:55:47    at javax.mail.Service.connect(Service.java:125)
18:55:47    at javax.mail.Transport.send0(Transport.java:194)
18:55:47    at javax.mail.Transport.send(Transport.java:124)
18:55:47    at hudson.tasks.MailSender.execute(MailSender.java:117)
18:55:47    at hudson.tasks.Mailer.perform(Mailer.java:137)
18:55:47    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
18:55:47    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
18:55:47    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:776)
18:55:47    at hudson.model.Build$BuildExecution.post2(Build.java:183)
18:55:47    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:725)
18:55:47    at hudson.model.Run.execute(Run.java:1701)
18:55:47    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
18:55:47    at hudson.model.ResourceController.execute(ResourceController.java:88)
18:55:47    at hudson.model.Executor.run(Executor.java:231)
18:55:47 Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed
18:55:47    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
18:55:47    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1884)
18:55:47    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)
18:55:47    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270)
18:55:47    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1341)
18:55:47    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:153)
18:55:47    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
18:55:47    at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
18:55:47    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016)
18:55:47    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
18:55:47    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
18:55:47    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
18:55:47    at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:507)
18:55:47    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
18:55:47    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
18:55:47    ... 17 more
18:55:47 Caused by: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed
18:55:47    at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:350)
18:55:47    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:260)
18:55:47    at sun.security.validator.Validator.validate(Validator.java:260)
18:55:47    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)
18:55:47    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
18:55:47    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)
18:55:47    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1323)
18:55:47    ... 27 more
18:55:47 Caused by: java.security.cert.CertPathValidatorException: timestamp check failed
18:55:47    at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:159)
18:55:47    at sun.security.provider.certpath.PKIXCertPathValidator.doValidate(PKIXCertPathValidator.java:351)
18:55:47    at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:191)
18:55:47    at java.security.cert.CertPathValidator.validate(CertPathValidator.java:279)
18:55:47    at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:345)
18:55:47    ... 33 more
18:55:47 Caused by: java.security.cert.CertificateExpiredException: NotAfter: Mon Mar 17 18:18:12 CET 2014
18:55:47    at sun.security.x509.CertificateValidity.valid(CertificateValidity.java:273)
18:55:47    at sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:575)
18:55:47    at sun.security.provider.certpath.BasicChecker.verifyTimestamp(BasicChecker.java:184)
18:55:47    at sun.security.provider.certpath.BasicChecker.check(BasicChecker.java:136)
18:55:47    at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:133)
18:55:47    ... 37 more

Prevent package publishing if not able to push changelog

There is a rare but possible condition when one can't push cangelog to github (e.g. github is unavailable). In this case debian/changelog of package may diverge from the one in repository.

It would be great If we have possibility to make this two actions one and "transactional". For instance, check possibility of push before duploading package.

Dynamic package version numbers.

It would be helpful to me to have the ability to alter the generated package version string by re-structuring it with a combination of static text and variable substitution. For example:

$deb_version+$timestamp~$build_id.$git_commit_short

$deb_version - current vesion from the changelog
$deb_plus1 - Current version from changelog with the rightmost number increments.
$timestamp - build start time in text.
$epoch - build start time in epoch format.
$build_id -the id of the jenkins build.
$git_commit_short - the hash of the short git commit.
... the list could go on.

Thanks
ben

Need host to upload to

Hi,

I use debian-package-builder-plugin to build the same src on 2 debian version: 7.8 and 8
The project is an multi-configuration project, so it's the same configuration on twice jenkins.
dupload : 2.7.0 twice
Jenkins 2.0 twice

but on wheezy dupload return:
dupload fatal error: Need host to upload to. (See --to option or the default_host configuration variable)
at /usr/bin/dupload line 142

DPB accumulates changelog instead of adding recent changes only

In case of option 'Check out to sub-directory' is on, the plugin gathers all of the changes ever made plus recent changes and pushes it back to git repository instead of extracting recent changes only, even if it was not the first commit.

If not to use sub-directories in github plugin everything works as expected.

Problems when building for several architectures + uploading to mini-dinstall

I'm using this plugin to build packages and publish to mini-dinstall managed repository.
I have several slaves with different architectures, so the packages are built as multi-configuration projects, simultaneously for armel, armhf, i386 and amd64.

Resulting artifacts have the same filenames for .tar.xz and .dsc for all configurations

Therefore, if a debrelease from a concurrent build is called before mini-dinstall processes the incoming - .tar.xz and .dsc are overwritten. As a result only one package is added.

Is there any recommended way to fix this apart from forcing a sequential build for each configuration and call remote mini-dinstall -b to index newly uploaded package everytime?

Update Readme/ wiki with prerequisite

Hi,

I'm giving this plugin a try.
I use jenkins 1.658, Debian Package Builder 1.6.11 on debian 7.10

Here's what I think it should be added:

  • Update the readme/wiki by saying jenkins' user must have sudo rights to do
apt-get -y update
apt-get -y install aptitude pbuilder
  • a gpg have to setup in jenkins global config even if on the job's config page "GPG sign package?" is unchecked. Here's what I got with this setup
00:00:08.707 [debian-package-builder] running command <gpg --list-key null>
00:00:08.708 [workspace] $ /bin/sh -xe /tmp/hudson4911813069838015475.sh
00:00:08.711 + gpg --list-key null
00:00:08.915 gpg: error reading key: clef publique introuvable
00:00:08.917 ERROR: Build step failed with exception
00:00:08.920 java.lang.NullPointerException
00:00:08.921    at java.io.Writer.write(Writer.java:157)
00:00:08.921    at hudson.FilePath$17.invoke(FilePath.java:1373)
00:00:08.922    at hudson.FilePath$17.invoke(FilePath.java:1356)
00:00:08.922    at hudson.FilePath.act(FilePath.java:990)
00:00:08.923    at hudson.FilePath.act(FilePath.java:968)
00:00:08.923    at hudson.FilePath.createTextTempFile(FilePath.java:1356)
00:00:08.924    at hudson.FilePath.createTextTempFile(FilePath.java:1329)
00:00:08.924    at ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder.importKeys(DebianPackageBuilder.java:319)
00:00:08.925    at ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder.perform(DebianPackageBuilder.java:101)
00:00:08.925    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
00:00:08.926    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
00:00:08.926    at hudson.model.Build$BuildExecution.build(Build.java:205)
00:00:08.926    at hudson.model.Build$BuildExecution.doRun(Build.java:162)
00:00:08.927    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
00:00:08.927    at hudson.model.Run.execute(Run.java:1738)
00:00:08.928    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
00:00:08.928    at hudson.model.ResourceController.execute(ResourceController.java:98)
00:00:08.928    at hudson.model.Executor.run(Executor.java:410)
00:00:08.929 Build step 'Build debian package' marked build as failure

Thanks for your work :D

Unknown option: distributor

+ dch --check-dirname-level 0 -b --distributor debian --newVersion 0.3.r41173 Build #5. Started by user didenko.
Unknown option: distributor
Usage: dch [options] [changelog entry]
Run dch --help for more details

plugin version: 1.6.0
Ubuntu 14.04.

PS: on Ubuntu 12.04 works good.

Add mechanism for tweaking commands to suit particular OS

We do need some basic mechanism to tune commands executed by the plugin based on actual OS on the slave we are running at. This is due to the fact that particular set of valid options varies across different version of Debian and Ubuntu (see #1 for example).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.