GithubHelp home page GithubHelp logo

publish-over-ssh-plugin's Introduction

Publish Over SSH Plugin for Jenkins

Jenkins Plugin Jenkins Plugin Installs

This plugins shares many configuration options with two similar plugins:

Features

  • SCP - Send files over SSH (SFTP)
  • Execute commands on a remote server (can be disabled for a server configuration, or for the whole plugin)
  • Use username and password (keyboard-interactive) or public key authentication
  • Passwords/passphrases are encrypted in the configuration files and in the UI
  • SSH SFTP/ SSH Exec can be used as a build step during the build process (Freestyle and Matrix projects)
  • SSH before a (maven) project build, or to run after a build whether the build was successful or not (see Build wrappers below)
  • The plugin is "promotion aware" (send files directly from the artifacts directory of the build that is being promoted) see Promotions
  • Optionally override the authentication credentials for each server in the job configuration (or provide them if they have not been provided for that server in the global configuration)
  • Optionally retry if the transfer of files fails (useful for flakey connections)
  • Enable the command/ script to be executed in a pseudo TTY

Build wrappers

There will be two new options in the Build Environment section of the job configuration

  1. Send files or execute commands over SSH before the build starts
    This allows SSH to be used before a build begins, but after the workspace has been configured and source checked out
    Most useful for maven project types
  2. Send files or execute commands over SSH after the build runs
    As long as the build was attempted, this will run after the build finishes, and will run whether the build is successful or not
    This allows cleanup or shutdown of services started before or during the build
    Use the publisher (Send build artifacts over SSH in Post-build Actions) to publish build artifacts from successful builds

Global Configuration

From the Jenkins home page, click "Manage Jenkins" and then click on "Configure System" and find the SSH section. It allows you to configure hosts that are later available in your builds.

Default settings

The SSH configuration section looks like this:

This configures the default key that will be used by all of the SSH configurations.
The simplest way to configure the key is to paste an unencrypted key into the Key box.
To configure, set either the path to a file containing the key or paste the key into the Key field.
If you enter data into both Path to key and Key, the pasted Key will take precedence and the Path to file will be ignored.

These settings are use for all hosts by default.

Unencrypted keys

If you plan to give read access to the Jenkins configuration page to non administrators, then you should ensure that you only use private keys encrypted with strong passphrases.
The passphrase itself will be encrypted when the configuration is saved, and will also be encrypted in the UI so that the value cannot be read.

Passphrase

If the key is encrypted with a passphrase then set it here.

Path to file

The location, on the Jenkins master, of the private SSH key to use.
The path can be an absolute path to the key, or relative to the JENKINS_HOME directory.

Key

Paste the private key into this box.
The key should include both the header and footer lines (----) and everything in between.

Disable exec

This option will remove the ability to execute commands from this plugin.
If this option is checked, then the Disable exec option in the Advanced section of an SSH Server will be ignored.

Add an SSH Server

Click on the "Add" button next to "SSH Servers"

Fill in Name, Hostname, Username and Remote Directory. see Publish Over ... for common options for Host Configurations

Username

The user that will be used to connect to the host.
This user will need the public key in their authorized_keys file on the remote host (if using public key authentication).

Advanced options

see Publish Over ... for common options for Host Configurations

Use password authentication, or use a different key

Selecting this option will produce 3 more configuration boxes that mirror the options available for the Jenkins SSH Key.

Passphrase / Password

If either Path to key or Key are configured then this is the passphrase to use with the encrypted key.
If no key is configured then this is the password that will be used for password authentication.

Path to key

See description above.

Key

See description above.

Disable exec

This option will remove the ability to execute commands using this configuration.

Add the public key to the remote server

Ensure that the public key (counterpart to the private key configured above) is in the authorized keys file for the user that you connect as on the server you want to connect to.

Check and save configuration
  • Click "Test Configuration".
  • Add more server configurations (if required)
  • Save

Use SSH during a build

This plugin includes a builder which enables the use of the publisher during the build process.

This means that you can send newly created packages to a remote server and install them, start and stop services that the build may depend on and many other use cases.

Configure a job to Publish Over SSH

see Publish Over ... for common options for Server

see Publish Over ... for common options for Transfer Sets

Exec command

If there is anything in this configuration box then it will be executed on the remote server.
If Source files are configured, then the files will be transfered before the Exec command is executed.
If the exit status of the command is not zero, then the publish will fail.
STDOUT and STDERR from the command execution are recorded in the Jenkins console.

Source files, Exec command

You must configure Source files, Exec command or both.
If neither Source files nor Exec command are configured, the publish will fail.
If the Source files box is empty then no files will be transferred.

Environment variables

Source files, Remove prefix, Remote directory and Exec command can all use the Jenkins environment variables and build parameters.

Advanced (Server)

Advanced (Transfer Sets)

see Publish Over ... for details of common options

Exec timeout (ms)

Configure a timeout for the Exec command to use.
If the command has not returned within this time then the publish will fail.

Exec in pty

Run the Exec command in a pseudo TTY.

Advanced (Publisher)

If you click the "Advanced..." button that is immediately below the "Add Server" button, you will make more configuration options available.

see Publish Over ... for common options for Publisher

Options to override the default Promotion behaviour

If you are configuring an action in a promotion, new options will become available.

see Publish Over ... for common options for Promotions

Version History

Release notes are now recorded in Github Releases.

For older versions, refer to changelog.

publish-over-ssh-plugin's People

Contributors

alexzhdankin avatar andrewmcgilvray avatar ashu16815 avatar bap2000 avatar basil avatar chrisro89 avatar darxriggs avatar dependabot[bot] avatar erwannt avatar eugenyk avatar gmcdonald avatar guessi avatar liuweigl avatar markewaite avatar ndeloof avatar olamy avatar oleg-nenashev avatar onyimatics avatar parvit avatar phreakadelle avatar rbywater avatar slide avatar stephenc avatar thomasvandoren avatar timja avatar urban-1 avatar yannrobert avatar yantimirov-timur avatar zbynek 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  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

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

publish-over-ssh-plugin's Issues

[JENKINS-18796] Promoted Parameter String not valorised in publish-over-ssh Script (Exec command)

In a Promotion process,
create a "Parameter String" : MY_PROMOTION_PARAMTER_STRING

In a Send Build artefact over SSH
Add a Exec command script :
echo '--- SSH Script'
echo $MY_PROMOTION_PARAMTER_STRING

And to compare to wanted result
In a Shell Script
echo '--- Local Script'
echo $MY_PROMOTION_PARAMTER_STRING

During promotion the value is not evaluated.


Originally reported by jmorille, imported from: Promoted Parameter String not valorised in publish-over-ssh Script (Exec command)
  • status: Open
  • priority: Major
  • resolution: Unresolved
  • imported: 2022/01/10

[JENKINS-9480] Use a TextArea for "Exec command" field

It would be nice if the "Exec Command" field was a TextArea, in the same fashion than release-plugin's "execute shell command".

Justification: in general, we use some complex (or less complex) commands, and so some space is great to avoid making lots of copy-paste with a text editor just to change some cabalistic parameter.

For example: awaiting JENKINS-9253 we use some (incorrect) $my_command `git --work-tree=${WORKSPACE} --git-dir=${WORKSPACE}/.git rev-parse HEAD` - it does not fit.

Thank you again for this plugin, bap


Originally reported by turb, imported from: Use a TextArea for "Exec command" field
  • assignee: bap
  • status: Closed
  • priority: Minor
  • resolution: Fixed
  • resolved: 2011-05-09T23:53:13+10:00
  • imported: 2022/01/10

[JENKINS-10268] New release of Publish over SSH breaks configure pages

This is a 1.419 server with the Publish Over SSH (no other Publish Over.. plugins) installed.

We have one SSH server set up in the Manage Jenkins configuration

The follow stacktrace appears any time we access a job/configure page (downgrading to 0.14 allowed us to function again)

[Winstone 2011/07/08 20:36:45] - Untrapped Error in Servlet
javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: jar:file:/var/run/jenkins/war/WEB-INF/lib/jenkins-core-1.419.jar!/lib/form/optionalBlock.jelly:84:23: class jenkins.plugins.publish_over.Retry is missing its descriptor
at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:97)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:561)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:646)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:233)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:561)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:646)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:477)
at org.kohsuke.stapler.Stapler.service(Stapler.java:159)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94)
at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:65)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:97)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:157)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:131)
at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:82)
at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:97)
at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:52)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:97)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
at java.lang.Thread.run(Thread.java:636)
Caused by: org.apache.commons.jelly.JellyTagException: jar:file:/var/run/jenkins/war/WEB-INF/lib/jenkins-core-1.419.jar!/lib/form/optionalBlock.jelly:84:23: class jenkins.plugins.publish_over.Retry is missing its descriptor
at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:728)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:290)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:46)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:63)
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.ScopeTag.doTag(ScopeTag.java:37)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.ScopeTag.doTag(ScopeTag.java:37)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:63)
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:63)
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:46)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:46)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:63)
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:63)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:89)
... 55 more
Caused by: java.lang.AssertionError: class jenkins.plugins.publish_over.Retry is missing its descriptor
at jenkins.model.Jenkins.getDescriptorOrDie(Jenkins.java:982)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258)
at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:104)
at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:63)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:89)
... 55 more
Caused by: java.lang.AssertionError: class jenkins.plugins.publish_over.Retry is missing its descriptor
at jenkins.model.Jenkins.getDescriptorOrDie(Jenkins.java:982)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258)
at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:104)
at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:72)
at org.apache.commons.jelly.tags.core.CoreTagLibrary$3.run(CoreTagLibrary.java:134)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
... 216 more


Originally reported by rtyler, imported from: New release of Publish over SSH breaks configure pages
  • assignee: bap
  • status: Closed
  • priority: Critical
  • resolution: Fixed
  • resolved: 2011-07-09T19:28:16+10:00
  • imported: 2022/01/10

[JENKINS-12299] Not able to execute sudo command on ssh slave during build promotion even though Exec in pty option is checked.

Currently I are using Jenkins ver. 1.4.39. I have Jenkins SSH plugin installed.

Working Scenario: Connected to SSH Slave as user X and performing build promotion.
I am using 'Send build artifacts over SSH' action to copy the required files to the SSH Slave to a folder owned by user X. I provided the required shell commands in Exec command. I am able to successfully complete the promotion.

Failing Scenario: Connected to SSH Slave as user Y and changing user to X and performing build promotion.
I am using 'Send build artifacts over SSH' action to copy the required files to the SSH Slave to a folder owned by user Y. I provided the required shell commands in Exec command. I want to sudo as user X for which I gave command 'sudo su - X'. When I promote the build I am receiving below error message.
ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 10,004 ms].

sudo command is not working for me through Jenkins even though I checked Exec in pty option required for running sudo commands. I am able to run the same command on the linux machine successfully. I set the option to Password not required for user Y to change to user X.

Please help me by providing a fix. I really appreciate your assistance.


Originally reported by skumar, imported from: Not able to execute sudo command on ssh slave during build promotion even though Exec in pty option is checked.
  • assignee: bap
  • status: Resolved
  • priority: Critical
  • resolution: Not A Defect
  • resolved: 2018-01-05T01:39:58+11:00
  • imported: 2022/01/10

[JENKINS-19253] Job config hangs with 1.528 update

Steps:
1) Deploy a fresh jenkins.war into tomcat with an empty ~/.jenkins configuration.
2) Create a job Foo
3) Install Publish Over SSH plugin
4) Go to job Foo

Expected: able to edit Foo's configuration
Actual: config screen hangs at "Loading ..."

No errors in the tomcat log. If I revert to Jenkins 1.527 the issue disappears.


Originally reported by coffbr01, imported from: Job config hangs with 1.528 update
  • assignee: bap
  • status: Closed
  • priority: Critical
  • resolution: Duplicate
  • resolved: 2013-08-20T17:42:23+10:00
  • imported: 2022/01/10

[JENKINS-17885] Publish over SSH lost main configuration data after jenkins server reboot

After jenkins server reboot, configuration is lost on main options menu. Build jobs save publish-over-ssh configuaions correctly.

A screenshot shows a configurating window after reboot.


Originally reported by jenkins_user, imported from: Publish over SSH lost main configuration data after jenkins server reboot
  • assignee: jenkins_user
  • status: Resolved
  • priority: Critical
  • resolution: Fixed
  • resolved: 2014-01-07T02:14:22+11:00
  • imported: 2022/01/10

[JENKINS-12014] Jenkins Free-form Project Execute SSH build step default timeout not obvious

When setting up a free-form project to run an SSH script on a remote machine, it was painfully obscure that there was a default timeout set to 120,000 ms. Either the default should be no timeout, or the timeout should be surfaced somewhere higher than the 2nd-level advanced screen. This is especially true since there is a note about the exec timeout in the first-level advanced screen.


Originally reported by dlewanda, imported from: Jenkins Free-form Project Execute SSH build step default timeout not obvious
  • status: Open
  • priority: Minor
  • resolution: Unresolved
  • imported: 2022/01/10

[JENKINS-13230] Not able to use Jenkins Environment Variables and variables injected through Env Inject plugin when executing commands over ssh in Publish over SSH plugin

I am trying to use Jenkins environment variables and variables injected through Env Inject plugin in Execute section of 'Send build artifacts over SSH'. It does not recognize them. It does recognize the build parameters and replaces them with the values. When I look at the 'Injected environment variables' I see all the variables I want to use. Not sure if I have to do anything different to be able to use those variables.

In Job configuration I checked 'Prepare an environment for the run' and 'Keep Jenkins Environment Variables', 'Keep Jenkins Build Variables'.
I have an 'Evaluated Groovy script' that sets 'MODULE_HOME' based on build time parameter MODULE_NAME.

Please let me know how to proceed.


Originally reported by skumar, imported from: Not able to use Jenkins Environment Variables and variables injected through Env Inject plugin when executing commands over ssh in Publish over SSH plugin
  • assignee: bap
  • status: Closed
  • priority: Major
  • resolution: Cannot Reproduce
  • resolved: 2018-04-14T20:25:36+10:00
  • imported: 2022/01/10

[JENKINS-17058] Publish over SSH plugin XML configuration cannot be read on jenkins start up.

The XML configuration for the publish over ssh plugin fails to load in the current (1.504) version of jenkins and the plugin (1.10). On my system, the file is located at: /var/lib/jenkins/jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml.

It seems to be an issue with xstream conversion. Here's the relevant bit of the stack trace (full trace is at the bottom).

Caused by: com.thoughtworks.xstream.converters.ConversionException: object is not an instance of declaring class : object is not an instance of declaring class
---- Debugging information ----
message : object is not an instance of declaring class
cause-exception : java.lang.IllegalArgumentException
cause-message : object is not an instance of declaring class
class : jenkins.plugins.publish_over_ssh.BapSshHostConfiguration
required-type : jenkins.plugins.publish_over_ssh.BapSshHostConfiguration
converter-type : hudson.util.RobustReflectionConverter
path: /jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin$Descriptor/hostConfigurations/jenkins.plugins.publish_over_ssh.BapSshHostConfiguration
line number : 25
class[1] : hudson.util.CopyOnWriteList
converter-type[1] : hudson.util.XStream2$AssociatedConverterImpl
class[2] : jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin$Descriptor
version : null
-------------------------------

Jenkins still starts, however the configured ssh hosts do not show up. The configuration element that ends on line 25 is:

over_ssh.BapSshHostConfiguration>
[redacted]
[redacted]
[redacted]
[redacted]
[redacted]
22

[redacted]

.ssh/id_rsa
false

300000
false
false

[redacted]



over_ssh.BapSshHostConfiguration>

The full stack trace:

WARNING: Failed to load /var/lib/jenkins/jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml
hudson.util.IOException2: Unable to read /var/lib/jenkins/jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml
at hudson.XmlFile.unmarshal(XmlFile.java:164)
at hudson.model.Descriptor.load(Descriptor.java:806)
at jenkins.plugins.publish_over_ssh.descriptor.BapSshPublisherPluginDescriptor.(BapSshPublisherPluginDescriptor.java:68)
at jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin$Descriptor.(BapSshPublisherPlugin.java:81)
at jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin$Descriptor$$FastClassByGuice$$c0ccaf36.newInstance()
at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:108)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:87)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:259)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1018)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.Scopes$1$1.get(Scopes.java:59)
at hudson.ExtensionFinder$GuiceFinder$4$1.get(ExtensionFinder.java:422)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
at hudson.ExtensionFinder$GuiceFinder._find(ExtensionFinder.java:391)
at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:382)
at hudson.ExtensionFinder._find(ExtensionFinder.java:151)
at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:318)
at hudson.ExtensionList.load(ExtensionList.java:295)
at hudson.ExtensionList.ensureLoaded(ExtensionList.java:248)
at hudson.ExtensionList.iterator(ExtensionList.java:138)
at jenkins.model.Jenkins.getDescriptorByType(Jenkins.java:1171)
at hudson.plugins.copyartifact.BuildSelectorParameter.initAliases(BuildSelectorParameter.java:100)
at hudson.plugins.copyartifact.CopyArtifactPlugin.postInitialize(CopyArtifactPlugin.java:35)
at hudson.PluginManager$2$1$2.run(PluginManager.java:352)
at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
at jenkins.model.Jenkins$7.runTask(Jenkins.java:883)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
Caused by: com.thoughtworks.xstream.converters.ConversionException: object is not an instance of declaring class : object is not an instance of declaring class
---- Debugging information ----
message : object is not an instance of declaring class
cause-exception : java.lang.IllegalArgumentException
cause-message : object is not an instance of declaring class
class : jenkins.plugins.publish_over_ssh.BapSshHostConfiguration
required-type : jenkins.plugins.publish_over_ssh.BapSshHostConfiguration
converter-type : hudson.util.RobustReflectionConverter
path: /jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin$Descriptor/hostConfigurations/jenkins.plugins.publish_over_ssh.BapSshHostConfiguration
line number : 25
class[1] : hudson.util.CopyOnWriteList
converter-type[1] : hudson.util.XStream2$AssociatedConverterImpl
class[2] : jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin$Descriptor
version : null
-------------------------------
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
at hudson.util.CopyOnWriteList$ConverterImpl.unmarshal(CopyOnWriteList.java:193)
at hudson.util.CopyOnWriteList$ConverterImpl.unmarshal(CopyOnWriteList.java:172)
at hudson.util.XStream2$AssociatedConverterImpl.unmarshal(XStream2.java:337)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at hudson.util.RobustReflectionConverter.unmarshalField(RobustReflectionConverter.java:333)
at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:275)
at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:222)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1061)
at hudson.util.XStream2.unmarshal(XStream2.java:109)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1045)
at hudson.XmlFile.unmarshal(XmlFile.java:160)
... 37 more
Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadResolve(SerializationMethodInvoker.java:66)
at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:223)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
... 60 more


Originally reported by thomasvandoren, imported from: Publish over SSH plugin XML configuration cannot be read on jenkins start up.
  • assignee: thomasvandoren
  • status: Resolved
  • priority: Major
  • resolution: Fixed
  • resolved: 2014-01-07T02:13:39+11:00
  • imported: 2022/01/10

[JENKINS-12891] Use a temporary name for the uploading files

Now when downloading large files for a long time at the destination may not be a complete file. This can lead to various problems.
To avoid this problem you need to load it under a temporary name and then rename the.

For example:

sftp> put bigfile.bin bigfile.bin~tmp123
sftp> rename bigfile.bin~tmp123 bigfile.bin

Now you need to do:

  • Script to rename a file in the working directory;
  • Upload renamed files by ssh;
  • Using "Exec command" to change cuurent directory to upload directory (JENKINS-12890) and rename files back.

This workaround looks like ugly


Originally reported by bozaro, imported from: Use a temporary name for the uploading files
  • assignee: bap
  • status: Closed
  • priority: Major
  • resolution: Won't Fix
  • resolved: 2012-05-09T05:57:01+10:00
  • imported: 2022/01/10

[JENKINS-9685] Source file transfer: "/archive does not exist"

When trying to transfer "**/*.war" ("Transfer Set Source files" field), the promotion fails and says:

 
Started by user anonymous
Promoting my-job #1
ERROR: Ignore Problem expanding maven opts macros org.jenkinsci.plugins.tokenmacro.TokenMacro
[8mha:XXXXXXX[0mSSH: Connecting from host [my-host]
SSH: Connecting with configuration [Int?gration A] ...
SSH: Disconnecting configuration [Int?gration A] ...
ERROR: Exception when publishing, exception message [/home/hudson/.hudson/jobs/my-job/builds/2011-05-13_16-51-24/archive does not exist.]
[8mha:XXXXXXX[0mbuild BapSshPromotionPublisherPlugin[delegate=BapSshPublisherPlugin[consolePrefix=SSH: ,delegate=BPInstanceConfig[publishers=[BapSshPublisher[configName=Int?gration A,verbose=false,transfers=[BapSshTransfer[sourceFiles=**/*.war,excludes=,removePrefix=,remoteDirectory=/usr/share/tomcat5.5/wars/${GIT_COMMIT},remoteDirectorySDF=false,flatten=false,cleanRemote=false,/home/hudson/redeploy_a.sh ${JOB_NAME} ${BUILD_NUMBER} ${GIT_COMMIT},120000]],useWorkspaceInPromotion=false,usePromotionTimestamp=false]],continueOnError=false,failOnError=false,masterNodeName=,alwaysPublishFromMaster=false]]] UNSTABLE
Finished: UNSTABLE

In the "/home/hudson/.hudson/jobs/my-job/builds/2011-05-13_16-51-24/" directory, there is no directory named "archive".

The war file is in a directory "/home/hudson/.hudson/jobs/my-job/builds/2011-05-13_16-51-24/a$a/archive/a/a/1.0-SNAPSHOT/" (so one directory deeper than publish-over-ssh expects)


Originally reported by turb, imported from: Source file transfer: "/archive does not exist"
  • assignee: bap
  • status: Closed
  • priority: Major
  • resolution: Not A Defect
  • resolved: 2011-05-14T03:15:41+10:00
  • imported: 2022/01/10

[JENKINS-14340] Remote directory of a Transfer Set should resolve env variable more than once

This is a small feature improvement for "Publish Over ..."

I tested the plugin beforehand (1.7) and read this information:

https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+...#PublishOver...-Remotedirectory

https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+...#PublishOver...-examples

The "Eg 3 Environment variables" works for variables that need be resolved only once (e.g $JOB_NAME/$BUILD_NUMBER)

However, this won't work with a variable $MY_JOB_PARAM that is defined as $JOB_NAME/$BUILD_NUMBER.

Would it be possible to have a mechanism to resolve the env variable more than once? Possibly, the level of resolution could be specified by a number to enter.


Originally reported by chantivlad, imported from: Remote directory of a Transfer Set should resolve env variable more than once
  • status: Open
  • priority: Major
  • resolution: Unresolved
  • imported: 2022/01/10

[JENKINS-14514] Repeatable jelly tag appears to be broken in 1.474+

I used Jenkins 1.474 and installed the Publish Over SSH(1.7). I can configure the SSH server in the Configure System.
But it can't work at the job configure.

I clicked "Add post-build action" and selected "Send build artifacts over SSH" and than I clicked the button "Add Server" , and when I clicked the button "Add Transfer Set".there is no response. In the noraml we can see the label "Source files" and "Remove prefix" and others,what's wrong ? you can see the attend file"1.7.jpg"

we can see the label "Source files" and "Remove prefix" and others using the Publish Over SSH(1.4). you can see the attend file "1.4.jpg"


Originally reported by msfly, imported from: Repeatable jelly tag appears to be broken in 1.474+
  • assignee: jglick
  • status: Closed
  • priority: Blocker
  • resolution: Fixed
  • resolved: 2012-07-31T09:04:05+10:00
  • imported: 2022/01/10

[JENKINS-15203] rsync (over ssh)

Big projects definitely require rsync instead of plain file copying.

The usage of rsync over ssh should be available as an option.


Originally reported by jeronimo, imported from: rsync (over ssh)
  • assignee: bap
  • status: Closed
  • priority: Major
  • resolution: Won't Fix
  • resolved: 2012-09-18T03:31:00+10:00
  • imported: 2022/01/10

[JENKINS-17340] Environment variables fail to get translated when encountered as part of a command execution.

Hi,

I am using Jenkins(v1.506) to create a build automation for Tivoli Omnibus Netcool v7.1 on a Solaris v10 machine.
When I try to execute the Probe rules syntax check command '/opt/netcool/omnibus/probes/nco_p_syntax -rulesfile $NC_RULES_HOME/snmptrap.rules -server WAOSCV1', in which $NC_RULES_HOME is an environment variable '/opt/netcool/etc/rules/'. This enviroment variable is set using 'envinject' plugin. The command is executed using publish-over-ssh plugins

The enviorment variable $NC_RULES_HOME is converted as '/opt/netcool/etc/rules/' in the given command, but when the files are read as part of the 'nco_p_syntax' command, the $NC_RULES_HOME is not decoded to '/opt/netcool/etc/rules/'. PFB the console output.

Started by user anonymous
[EnvInject] - Loading node environment variables.
Building in workspace C:\Program Files\Jenkins\workspace\sytaxcheck2
[EnvInject] - Executing scripts and injecting environment variables after the SCM step.
[EnvInject] - Injecting as environment variables the properties content
NC_RULES_HOME=/opt/netcool/etc/rules

[EnvInject] - Variables injected successfully.
SSH: Connecting from host HOST
SSH: Connecting with configuration SERVER ...
SSH: EXEC: STDOUT/STDERR from command [/opt/netcool/omnibus/probes/nco_p_syntax -rulesfile /opt/netcool/etc/rules/snmptrap.rules -server WAOSCV1] ...
03/25/13 19:41:28: Warning: Failed to load properties file : No such file or directory
03/25/13 19:41:28: Information: Connecting ...
03/25/13 19:41:28: Information: Checking rules file ...
03/25/13 19:41:28: Debug: Reading /opt/netcool/etc/rules/snmptrap.rules
03/25/13 19:41:28: Debug: Plain text rules file detected.
03/25/13 19:41:28: Error: Rules file '/opt/netcool/etc/rules/snmptrap.rules' line 98: Failed to read lookup table file '$NC_RULES_HOME/include-snmptrap/CorrScore.snmptrap.lookup'
03/25/13 19:41:28: Information: Falling back to previous rules file.
03/25/13 19:41:28: Error: Error(s) in rules file
03/25/13 19:41:28: Information: Disconnecting ...
03/25/13 19:41:28: Warning: Disconnect malfunction - continuing shutdown anyway
SSH: EXEC: completed after 811 ms
SSH: Disconnecting configuration SERVER ...
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [2]]
Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE
Finished: UNSTABLE


Originally reported by nipin_joshy, imported from: Environment variables fail to get translated when encountered as part of a command execution.
  • assignee: gbois
  • status: Closed
  • priority: Blocker
  • resolution: Fixed
  • resolved: 2013-03-26T23:38:40+11:00
  • imported: 2022/01/10

[JENKINS-12890] Current path of "Exec command" is not related for "Remote directory"

Scripts, added by "Exec command" started in remote user home path.
You can not specify a script that runs in the directory where the files were uploaded without explicitly specifying the full path in the script.


Originally reported by bozaro, imported from: Current path of "Exec command" is not related for "Remote directory"
  • assignee: bap
  • status: Closed
  • priority: Major
  • resolution: Won't Fix
  • resolved: 2012-05-09T05:57:43+10:00
  • imported: 2022/01/10

[JENKINS-15689] send files or execute commands over ssh option not showing in promotion actions menu

Hi,

I'm trying to perform some action on build promotion on some other unix server (I'm running jenkins on windows server). I've installed the above mentioned plugins and get the option Send files or execute commands over ssh options in add build step dropdown, but the same is missing from add actions dropdown in build promotion - action section.

I would like to move files and execute some commands on the unix server. I would appreciate any advice on a workaround better than setting up another job and triggering that job on promotion.

Thanks,

Deepak


Originally reported by deepak, imported from: send files or execute commands over ssh option not showing in promotion actions menu
  • assignee: bap
  • status: Resolved
  • priority: Major
  • resolution: Not A Defect
  • resolved: 2012-11-01T22:29:37+11:00
  • imported: 2022/01/10

[JENKINS-13731] When using ssh-exec with yum install timeout occurs

When using a ssh-exec with yum install a timeout occurs.
It seems that is a problem with the progress bar that won't be displayed during the build but after.
At the end of the build you can see that for each output a line is produced.

(3/5): package-a- (29%) 26% [=== ] 421 kB/s | 20 MB 02:14 ETA
(3/5): package-a- (29%) 26% [=== ] 402 kB/s | 20 MB 02:20 ETA
(3/5): package-a_f- (29%) 26% [=== ] 348 kB/s | 20 MB 02:42 ETA
SSH: Disconnecting configuration [rpm target] ...
ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 240.653 ms]

It seems that these outputs are not recognized during a build which leads to a timeout.

Possible workaround: Turnup timeout

Caveat: you don't know whenever the build is running or stuck...


Originally reported by sruehl, imported from: When using ssh-exec with yum install timeout occurs
  • assignee: bap
  • status: Closed
  • priority: Major
  • resolution: Not A Defect
  • resolved: 2012-05-12T21:42:13+10:00
  • imported: 2022/01/10

[JENKINS-8982] Configuring a job does not insert already-configured Transfer Set(s) values

The values of the "SSH Server" section is used when I run the job, but when i go to Configure on the job, the Transferset(s) are empty, no values in them.
When I click on Save the next time, the Transferset(s) are overwritten to be empty.

The problem is not in "Post-build Actions" the "Send built-artifacts over SSH" is able to hold the values when I go to Configure.

The problem seem to be with "Send files or execute commands over SSH" which is in the dropdown list of e.g. Build steps, Release steps.

I have attached an image where I go to Configure on my job, seeing that the values are empty.


Originally reported by dolxor, imported from: Configuring a job does not insert already-configured Transfer Set(s) values
  • assignee: bap
  • status: Closed
  • priority: Major
  • resolution: Fixed
  • resolved: 2011-03-08T23:45:34+11:00
  • imported: 2022/01/10

[JENKINS-19147] Exec command executing before Source File is uploaded

After upgrading Jenkins and the associated plugins build jobs began to fail when using the publish-over-ssh plugin. In the console output I could find no reference to the files that had been transferring successfully before the update. The work-around to this issue was to put the Source File in its own transfer set. This is contrary to the help section as specified in the Exec Command's help:

"The SSH Transfer Set must include either a Source Files pattern, an Exec command, or both. If both are present, the files are transferred before the command is executed."


Originally reported by leprasmurf, imported from: Exec command executing before Source File is uploaded
  • assignee: slide_o_mix
  • status: Resolved
  • priority: Minor
  • resolution: Cannot Reproduce
  • resolved: 2018-04-20T01:50:14+10:00
  • imported: 2022/01/10

[JENKINS-17809] Problem executing commands on Windows over SSH

When trying to execute a command over SSH I get:
SSH: EXEC: STDOUT/STDERR from command [.../some.exe
] ...
AllowDesktopAccess failed.
Unable to execute command or shell on remote system: Failed to Execute process.

This seems like a bug because SSH seem to work otherwise:
1. Transferring files with Jenkins over SSH works fine.
2. Executing commands from PuTTy, from my other Windows machine works (it is a bit slow, but works).
3. Executing commands from the computer Jenkins is on (over command line ssh client) also works.

Currently FreeSSHd is running as a service and I've set up logging in with Windows auth, but auth itself seem to be working fine even with Jenkins (test of setup passed, transferring files works fine).


Originally reported by nux, imported from: Problem executing commands on Windows over SSH
  • assignee: slide_o_mix
  • status: Closed
  • priority: Major
  • resolution: Cannot Reproduce
  • resolved: 2018-02-27T09:10:39+11:00
  • imported: 2022/01/10

[JENKINS-19248] regression: Upgrading to 1.528 ("Upgrade Automatically") breaks "configure"

When upgrading from 1.527 to 1.528, no jobs can be edited anymore!

When clicking the configure button (or going to jobname/configure), it starts loading the fields and filling in the data from the configuration, but the "LOADING" overlay never disappears, and the job settings can't be changed.

When looking at the web browser console, I see a lot of ajax POST requests from the browser, but the LOADING never disappears.

Downgrading to 1.527 solves the problem.

Are there any more logs I can attach to help solving the problem?


Originally reported by rggjan, imported from: regression: Upgrading to 1.528 ("Upgrade Automatically") breaks "configure"
  • assignee: bap
  • status: Resolved
  • priority: Blocker
  • resolution: Duplicate
  • resolved: 2014-02-06T02:21:04+11:00
  • imported: 2022/01/10

[JENKINS-10680] SSH always times out when running a job in the background (e.g. nohup xyz & )

This issue is added for information only - to enable it to be discovered

There is a short discussion here.

In summary, putting a job into the background does not detach it from the terminal process, therefore the SSH client is waiting for the background job to complete.
Ensure that STDIN/STDOUT/STDERR descriptors are closed (and reopened) in the process that you would like to keep running.
Use the daemon command in BSD or deamonize in GNU environments to simplify creating a stand alone process.


Originally reported by bap, imported from: SSH always times out when running a job in the background (e.g. nohup xyz & )
  • assignee: bap
  • status: Closed
  • priority: Major
  • resolution: Won't Fix
  • resolved: 2011-08-11T20:36:28+10:00
  • imported: 2022/01/10

[JENKINS-13460] Environment variables not explanded for "Remote Directory" configuration

I'm using publish over ssh to send file on a remote folder
and Exec commands.

As the folder where I put the files may change in the future I defined a
Jenkins environment variable: REMOTE_LOCATION.

I'd like to use this variable in SSH publish over configuration and in the
Exec command of the job.

I configured ssh publish over plugin with Remote Directory set to ${REMOTE_LOCATION}

I get this error :

ERROR: Exception when publishing, exception message [Failed to change to remote directory [${REMOTE_LOCATION}]]
Build step 'Send build artifacts over SSH' changed build result to UNSTABLE

I checked that the variable is set properly by echo ${REMOTE_LOCATION} in the Exec command.

Variables should be expanded in the "Remote Directory" configuration field.


Originally reported by blatinville, imported from: Environment variables not explanded for "Remote Directory" configuration
  • assignee: bap
  • status: Closed
  • priority: Minor
  • resolution: Won't Fix
  • resolved: 2012-05-09T05:55:59+10:00
  • imported: 2022/01/10

[JENKINS-16035] Publish Over SSH - With SFTP GET

I'm trying to use jenkins to make sftp get of files from remote server of my software support costumers.

The default behavior of publish-over-ssh plugin is to make an sftp put of the files to remote servers. I would like to make sftp get to bring files from remote servers.

This will agree with ours same security policies. We don't want to pass the jenkins server password to ours costumers but we have yours servers password.

I've made a git patch (publish-over-ssh.patch) to bring this feature to the version 1.9 but I would love to see it in the main line of this plugin.


Originally reported by helenoa, imported from: Publish Over SSH - With SFTP GET
  • assignee: slide_o_mix
  • status: Resolved
  • priority: Major
  • resolution: Fixed
  • resolved: 2019-02-15T00:45:13+11:00
  • imported: 2022/01/10

[JENKINS-9376] NPE when validating form if configuration contains international characters

Jenkins 1.406
Promoted build 2.0
Publish over SSH 0.9

Go to a job without any promotion process.

Click: Configure
Click: Promote builds when...
Click: Add action
Click: Send build artifact over SSH

500 error:
java.lang.NullPointerException
at jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin$Descriptor.doCheckSourceFiles(BapSshPublisherPlugin.java:94)
at sun.reflect.GeneratedMethodAccessor314.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:282)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:149)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:88)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:103)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:561)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:646)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:233)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:561)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:646)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:477)
at org.kohsuke.stapler.Stapler.service(Stapler.java:159)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
at java.lang.Thread.run(Thread.java:662)

Here "getConfiguration" logically returns null:
94: if (getConfiguration(configName).isEffectiveDisableExec()) {

Workaround: first save the promotion process.


Originally reported by turb, imported from: NPE when validating form if configuration contains international characters
  • assignee: bap
  • status: Closed
  • priority: Major
  • resolution: Fixed
  • resolved: 2011-04-16T01:45:12+10:00
  • imported: 2022/01/10

[JENKINS-15894] Jenkins job would not exit when executing ssh task

Hi, we have two jobs that need to execute command on SSH server, but they both have the problem that job would not exit even if the task is finished.

1. command is "scp username@server:branch/something.tar .", the tar file is almost 400M. After running for 30 minutes, I could see that the file is already in the directory and the scp process is finished, but the Jenkins job is still running with no stdout and stderr in Jenkin console. But when I select the option "Exec in pty", this job runs well.

2. For another job, it still could not exit even if I check the " Exec in pty" option. In this job, we run a script to check out code from svn and the files is a bit lot. We found the same situation that all files have been checked out and the svn process is no longer existed, but Jenkins job is still running and we have to abort manually.

I'm not sure if this issue is related to JENKINS-10680, could you please tell me what should we do, is the problem of the script or others?

Thanks


Originally reported by tigren, imported from: Jenkins job would not exit when executing ssh task
  • assignee: slide_o_mix
  • status: Fixed but Unreleased
  • priority: Major
  • resolution: Cannot Reproduce
  • resolved: 2018-12-08T00:44:42+11:00
  • imported: 2022/01/10

[JENKINS-18546] Provide a possibility to run post build action manually

I would like to have a possibility to publish the build artifacts and to execute a command on the remote host manually.

Please provide a config option "Run post-build action manually" and a text-input for the menu label.
The defined menulabel should appear with the defined text as a link in the job menu which can be used to trigger this action manually.


Originally reported by scoopex, imported from: Provide a possibility to run post build action manually
  • assignee: slide_o_mix
  • status: Resolved
  • priority: Major
  • resolution: Won't Do
  • resolved: 2018-02-27T02:45:06+11:00
  • imported: 2022/01/10

[JENKINS-18769] SSH Publish Plugin - Unable to use the private key provided in the key path

We use SSH Tectia for our SSH connectivity. In my Jenkins job, i have provided the userid (destination) and the private keyfile (absolute path in the Source box). When i try to test the configuration it fails with the below exception

Failed to connect or change directory

jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: TheKey]

But the same connection id works through command prompt and i can see the keyfile is the same that i have provided.


Originally reported by dvs, imported from: SSH Publish Plugin - Unable to use the private key provided in the key path
  • assignee: slide_o_mix
  • status: Closed
  • priority: Major
  • resolution: Cannot Reproduce
  • resolved: 2018-04-20T01:41:54+10:00
  • imported: 2022/01/10

[JENKINS-13693] Add DefaultExcludes boolean option to transfer set

Publish-over-ssh follows the Ant patterns (http://ant.apache.org/manual/dirtasks.html#patterns) but does not allow me to set the defaultexcludes="no" attribute.

I want to send all my .git* files to the remote system.
I know this can be bad practice, but I imagine it's a pretty common request.


Originally reported by fon, imported from: Add DefaultExcludes boolean option to transfer set
  • assignee: bap
  • status: Closed
  • priority: Minor
  • resolution: Fixed
  • resolved: 2012-07-24T19:36:50+10:00
  • imported: 2022/01/10

[JENKINS-10599] Publish over ssh with flatten creates empty directory

If the source file selection returns no files then when flatten is specified an empty target directory is created. If flatten is not specified then no target directory is created when no files are selected.

Some of my builds only produce some artifacts for release builds and I copy these to separate locations with the publish-over-ssh. It gets very cluttered if the empty directories get produced for each non-release build.

I have a patch (pull request coming soon) that adds unit tests to show the behaviour with and without flatten specified. It also tweaks the flatten case to not produce the empty folders.

I'm not sure if anyone depends on empty folders being produced but if necessary I'll gladly update the patch to make it a configurable option to either suppress or force empty base folders.


Originally reported by oldelvet, imported from: Publish over ssh with flatten creates empty directory
  • assignee: oldelvet
  • status: Closed
  • priority: Minor
  • resolution: Fixed
  • resolved: 2011-08-06T08:20:12+10:00
  • imported: 2022/01/10

[JENKINS-16894] Doxygen publish very slow

The publishing step takes forever.
We have a master node and a few build nodes. Only the nodes build anything.
Nodes are started by master through ssh.
Our doxygen generated documentation is 61 MB in size, and 3164 files.
And this amount of documentation takes 90 minutes to publish.

If I check what jenkins is doing in the 90 minutes nothing stands out, no cpu usage, no io wait nothing. Just extremely slow publish. I can see arriving the files roughly 1 file / second.

A remote scp copy from the node to the master takes 6 seconds, on the same directory.


Originally reported by sonic4, imported from: Doxygen publish very slow
  • assignee: gbois
  • status: Open
  • priority: Major
  • resolution: Unresolved
  • imported: 2022/01/10

[JENKINS-13143] Can't connect on host using a port greater than 999

I configured publish-over-ssh plugin (v1.6) on my current jenkins, with port 2232, and it fails to connect.

Using port 22 (on another host) works fine though.

When I use verbose mode on the plugin, I have :
SSH: Connecting from host [jenkins-slave-ubuntu3]
SSH: Connecting with configuration [XXX nightly] ...
SSH: Creating session: username [xxx], hostname [X.X.X.X], port [2,232]
SSH: Connecting session ...
ERROR: Exception when publishing, exception message [Failed to connect session for config [XXX nightly]. Message [java.net.ConnectException: Connection refused]]

I think the "2,232" is the cause of the problem


Originally reported by fcamblor, imported from: Can't connect on host using a port greater than 999
  • assignee: bap
  • status: Closed
  • priority: Critical
  • resolution: Cannot Reproduce
  • resolved: 2012-04-17T05:33:58+10:00
  • imported: 2022/01/10

[JENKINS-10006] Parametrized publishing

It would be great if it would be possible to define a parameter and a necessary value for each server or each transfer group, that is evaluated before publishing, and will skip the publishing if the parameter does not have the value.

Say, I have a job which publishes data to servers A, B and C. I would configure parameter X as .*A.* for server A, .*\B.* for server B and .*C.* for server C.

If I set the parameter X to "A" the files will only be published to server A, if I set X to "ABC" the files will be published to all three servers.


Originally reported by pushy, imported from: Parametrized publishing
  • assignee: bap
  • status: Closed
  • priority: Major
  • resolution: Fixed
  • resolved: 2011-07-08T22:18:57+10:00
  • imported: 2022/01/10

[JENKINS-19279] Invalid flags supplied to RegExp constructor 'JobName'

After upgrading to Jenkins 1.528, opening the configuration page of any job gives the javascript error:
Invalid flags supplied to RegExp constructor 'JobName'

Workaround:
Disable the publish over ssh plugin


Originally reported by thomassuckow, imported from: Invalid flags supplied to RegExp constructor 'JobName'
  • assignee: slide_o_mix
  • status: Closed
  • priority: Critical
  • resolution: Incomplete
  • resolved: 2018-06-20T02:22:21+10:00
  • imported: 2022/01/10

[JENKINS-16240] Problem with NOT_BUILT build result

I'm having a problem that sometimes when a multi-module project is built and one or more modules have NOT_BUILT as result, the Publish Over SSH Plugin prints this in the console:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
...
channel stopped
...
[EnvInject] - Injecting environment variables from a build step.
...
[EnvInject] - Variables injected successfully.
[EnvInject] - Unset unresolved 'BUILD_USER_LAST_NAME' variable.
[EnvInject] - Unset unresolved 'NODE_NAME' variable.
>>> SSH: Current build result is [NOT_BUILT], not going to run. <<<
[M2Release] marking build to keep until the next release build

Despite the fact that the total build result is SUCCESS:

Finished: SUCCESS

I suggest that the plugin should check the build result of the complete build without checking the result of the modules.


Originally reported by thiagoc, imported from: Problem with NOT_BUILT build result
  • status: Reopened
  • priority: Major
  • resolution: Unresolved
  • imported: 2022/01/10

[JENKINS-13577] Promotion completes successfully but EnvInject error is displayed at the bottom of the promotion log

I have EjnvInject Plugin 1.44 and Publish over SSH Plugin 1.6 installed for Jenkins Version 1.456. When I perform a build promotion it completes successfully but displays a EnvInject Error at the bottom of the promotion log. Looks like this is because of some incompatibility between EnvInject and Publish over SSH Plugins. Below is the log with the EnjInject error.

build BapSshPromotionPublisherPlugin[delegate=BapSshPublisherPlugin[consolePrefix=SSH: ,delegate=BPInstanceConfig[publishers=[BapSshPublisher[configName=DEV BIG-IP,verbose=false,transfers=[BapSshTransfer[sourceFiles=scripts/Environments/SSPQA/*,excludes=/_jdbc.properties,removePrefix=scripts/Environments/,remoteDirectory=,remoteDirectorySDF=false,flatten=false,cleanRemote=false,execCommand=chmod 755 SSPQA -R

,execTimeout=120000,pseudoTty=false]],useWorkspaceInPromotion=false,usePromotionTimestamp=true,retry=,label=,credentials=]],continueOnError=false,failOnError=true,masterNodeName=,alwaysPublishFromMaster=false,paramPublish=]]] SUCCESS
[EnvInject] - [ERROR] - SEVERE ERROR occurs: Job type hudson.plugins.promoted_builds.PromotionProcess@18e8006[SSP-CAS_WS-BUILD/promotion/Promote to SSP QA] is not supported


Originally reported by skumar, imported from: Promotion completes successfully but EnvInject error is displayed at the bottom of the promotion log
  • assignee: gbois
  • status: Resolved
  • priority: Minor
  • resolution: Fixed
  • resolved: 2012-04-25T07:30:31+10:00
  • imported: 2022/01/10

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.