Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 30 2019 20:42
    timja commented #56
  • Jan 30 2019 20:32
    imaffe commented #56
  • Jan 30 2019 18:34
    imaffe commented #56
  • Jan 29 2019 11:58
    martinda commented #56
  • Jan 29 2019 07:07
    imaffe commented #56
  • Jan 28 2019 18:35
    imaffe synchronize #56
  • Jan 28 2019 14:28
  • Jan 26 2019 14:50
    martinda commented #56
  • Jan 26 2019 08:28
    imaffe commented #56
  • Jan 26 2019 08:20
    imaffe commented #56
  • Jan 22 2019 16:33
  • Jan 19 2019 17:48
    imaffe commented #56
  • Jan 19 2019 10:52
    oleg-nenashev commented #56
  • Jan 19 2019 04:42
    imaffe commented #56
  • Jan 19 2019 04:31
    imaffe synchronize #56
  • Jan 19 2019 03:38
    imaffe commented #56
  • Jan 19 2019 03:32
    imaffe commented #56
  • Jan 17 2019 07:20
    alexsomai closed #58
  • Jan 17 2019 06:32
    imaffe commented #51
  • Jan 17 2019 03:46
    imaffe synchronize #56
Martin d'Anjou
@martinda
Hi @bharat4544 , I can help too but I do not see your question.
Alexandru Somai
@alexsomai
hi @martinda. Are you ok if I add you to the email thread where @bharat4544 sent me details with his issue? Maybe you have o good insight on this, because I can't find the root cause
Martin d'Anjou
@martinda
Yes sure @alexsomai
I will try to look at it tonight.
Alexandru Somai
@alexsomai
thanks. no worries, when you have time. the configs seems to be set correctly (you'll see in the email), so not sure what's wrong :(
bharat4544
@bharat4544
Thanks for looking into this @alexsomai @martinda
Martin d'Anjou
@martinda
@bharat4544 Not sure why you are having trouble, I did not have a deep look, but in my case I use the "External Workspace Templates" under the Global config and no "per-node" configuration. I set the node label to match between the "EW Templates" and the node definition. The Jenkinsfile also matches the same node label name node("the_node_label") { ... }. Unfortunately I am swamped these days.
bharat4544
@bharat4544
Hi @martinda I have tried that as well but it doesn't help much. Problem is the node making a reference to individual path rather than shared workspace path as shown in the log. Will keep trying and update if i get anywhere further progress. Thanks
Martin d'Anjou
@martinda
I am reviewing PR #68 it might take a while, I want to check many things including test coverage.
Benjamin Beggs
@BenjaminBeggs
@alexsomai do you have an intuition as to why https://github.com/jenkinsci/external-workspace-manager-plugin/pull/68#pullrequestreview-263295752 occurs? I'm unsure where the asymmetry between the unit tests and this import failure originates
Benjamin Beggs
@BenjaminBeggs
(Don't be too concerned about my above question, this issue does not seem to arise due to EWM as far as I can see right now)
@alexsomai is the Workspace Cleanup Plugin simply a recommended plugin for workspace cleanup, or is there customized compatibility for it written into the External Workspace Manager itself?
Raghunath Krishnan
@raghunathkrish_twitter
We are looking to use EWM plugin to solve our issue of sharing certain common artifacts/packages needed for builds running in any slave. Quick question: How is the network performance when using EWM? eg; when the pipeline groovy runs on a slave and enters a exws block, will this be opening a socket or something to download the workspace from the diskpool in master? correct me if I am wrong.
Alexandru Somai
@alexsomai
@BenjaminBeggs sorry, I haven't seen your first mention, not sure why I wasn't notified
yes, the cleanup plugin can be used in conjunction with EWM, but it's optional
@raghunathkrish_twitter the workspace should be downloaded only once on your common diskpool, afterwards, if you configure the plugin correctly, you should have access to that workspace via mount points to that diskpool.
Benjamin Beggs
@BenjaminBeggs
@alexsomai No worries. I am researching an update to EWM that will clear external workspaces once all builds "pointing" to it have been deleted by routine build discards. My current proposed implementation will read fingerprint build data and ask the Workspace Cleanup Plugin to clear an external workspace once no fingerprints contain a given external workspace directory. Does this implementation seem compatible with EWM processes? Are you aware if there might be an accessible point of implementation for this within the preexisting Workspace Cleanup plugin support in EWM?
Raghunath Krishnan
@raghunathkrish_twitter
@alexsomai Thanks. is the disk pool present in the master, slave or where? I mean, in reality, does the slave download the workspace from the mounted disk?
Alexandru Somai
@alexsomai
@BenjaminBeggs there is some fingerprint support implemented within EWM, maybe that could help you at some degree. I don't think the Workspace Cleanup plugin is aware of, or has access in any way to EWM.
There were some discussions about what you are trying to achieve in the build discarder plugin. Somehow, that plugin to be extended to support EWM (or the other way around, EWM to be compatible with build discarder plugin). Would this help you maybe?
@raghunathkrish_twitter the Jenkins master, and every Jenkins slave should be mounted to the same disk pool. In this way, if one job downloads the workspace from the remote repository, then other Jenkins slaves will have access to the workspace, because they are all mounted to it.
So to answer your question, the slave is mounted to the disk pool, therefore it has access to the workspace. No additional download should be needed.
Martin d'Anjou
@martinda
There is no such thing as downloading a workspace in this plugin. It’s about referencing disks that have already been mounted outside of jenkins.
Raghunath Krishnan
@raghunathkrish_twitter
got it, thanks @martinda and @alexsomai
Alexandru Somai
@alexsomai
hi @martinda. I've merged jenkinsci/external-workspace-manager-plugin#68. I'm thinking to do a release with this change, to have support for JCasC, but not very sure when. Also, a double check after the release would be helpful, just to make sure we didn't break anything.
What do you think if I do the release tomorrow sometime? Or would it be better to wait for the next week?
Martin d'Anjou
@martinda
@alexsomai you can go ahead when you are ready I have tried the plugin locally, it looks good. @BenjaminBeggs and I work together and he will do some last checks.
Benjamin Beggs
@BenjaminBeggs
Indeed, I will watch for the release of this and perform some tests to ensure nothing has been broken
Alexandru Somai
@alexsomai
@BenjaminBeggs @martinda hi guys, sorry, but I'm quite busy with something else, and I won't have time to perform the release these days. Most probably I'll do it on Thursday, or Friday. I'll let you know when it's done.
Alexandru Somai
@alexsomai
@BenjaminBeggs @martinda I've finally found some time to do the release with JCasC support. It should be available in the Jenkins Plugin Manager in a few hours I think.
Martin d'Anjou
@martinda
Thanks @alexsomai !
Benjamin Beggs
@BenjaminBeggs
@alexsomai @martinda A set of test jobs have been run to test this new update. Everything appears to be functioning as expected.
Martin d'Anjou
@martinda
Nice!
Alexandru Somai
@alexsomai
Awesome, thanks!
Martin d'Anjou
@martinda
Just want to warn users of the external workspace manager plugin of a problem since Jenkins LTS 2.150.x.
If you write code like this: exws(ws) { stage() { ...} } then you have to switch it around to stage() { exws(ws) { ...} } because the stage appears to reset the workspace path.
Same for withEnv and withCredentials.
It appears to be related to a change in the core, since Jenkins LTS 2.138.x does not have the problem.
Martin d'Anjou
@martinda
Hi Alex. What problem are you seeing with the RunSelector plugin jenkinsci/run-selector-plugin#23 ?
@alexsomai
Alexandru Somai
@alexsomai
Hi Martin @martinda. Are you asking:
  1. why I did the upgrade?
  2. or if I have any issues on that particular PR?
    The answers:
    1. I did the upgrade because jenkinsci/run-selector-plugin#22 would not work otherwise. Not very sure if this is really needed or not actually.
    2. I don't have any other issues on this PR (number 23), the upgrade seems to work, but I was waiting for at least 1 thumbs up from someone within the Jenkins community.
and btw, with regards to what you said previous days, about the compatibility issues between exws() and stage(). Do you think we should do something about it in the plugin? Or just something to be aware of?
Martin d'Anjou
@martinda
Yes I think something needs to be done. See https://groups.google.com/forum/#!topic/jenkinsci-dev/TXBLRt5ZxjI
I started working on it but I have not tried the “BOM” yet.
Alexandru Somai
@alexsomai
that BOM thing is a really cool feature, didn't know about it
Martin d'Anjou
@martinda
I have fixed the issue with Jenkins 2.150.x. See jenkinsci/external-workspace-manager-plugin#70
But some of the clean up tests have become flaky. I posted to the mailing list about it.
Alexandru Somai
@alexsomai
@martinda just FYI - I've triggered a new release with your latest PR #70
Martin d'Anjou
@martinda
Thanks @alexsomai
Justin Dietz
@JoA-MoS
@martinda - In regards to using exws with docker what would be the syntax. I am spinning up multiple docker images in parallel and I want them to all share the same workspace. This is what I am trying so far:
node('dockerserver') {
    withCredentials([
      usernamePassword(
        credentialsId: 'svc',
        usernameVariable: 'SVC_AUTHENTICATION_USR',
        passwordVariable: 'SVC_AUTHENTICATION_PSW'
      ),
      string(
        credentialsId: 'bb',
        variable: 'BB_PAT'
      ),
      string(
        credentialsId: 'nlt',
        variable: 'NPM_LOCAL_TOKEN'
      )
    ]) {
      withEnv([
        "HOME=${workspace}"
      ]) {
        exws(extWorkspace) {
          docker.image('node-builder')
            .inside('--tmpfs /.config --ipc=host', cl)
        }
      }
    }
  }
Martin d'Anjou
@martinda
Hi @JoA-MoS I do not use docker. Maybe you have already seen this page it explains how to allocate, then share a workspace. In your code example, where do you define the value of ${workspace}? I guess that might be part of your question as well. You should try to allocate a workspace first with exwsAllocate, then you can use it with exws. Hope this helps...
Justin Dietz
@JoA-MoS
Thank @martinda - I am allocating the workspace in an earlier step but you did identify the problem ${workspace} is the default jenkins job workspace not the exws is there a way to get the computed exws I would like home to be set to the same value as the exws path ? If I hardcode HOME = /mount-point/job/path/12 my pipeline works so if I can just get this from exws. I tried extWorkspace.pathOnDisk but got an error that the method isn't allowed to be called by a script.
Justin Dietz
@JoA-MoS
ahh... I figured it out by approving the method in manage jenkins --> In-process script approvals.