Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Sep 03 18:09
  • Aug 21 02:48
  • Aug 01 13:09
  • Jul 31 14:08
    oleg-nenashev commented #139
  • Jul 31 14:07
    oleg-nenashev commented #139
  • Jul 31 14:00
    patrickjamesbarry commented #139
  • Jul 29 14:05

    oleg-nenashev on PromotionBadge_PipelineCompat

    Use Jenkinsclass instead of Jen… (compare)

  • Jul 29 14:05
    oleg-nenashev synchronize #128
  • Jul 29 13:59
    oleg-nenashev unlabeled #128
  • Jul 29 13:59
    oleg-nenashev synchronize #128
  • Jul 29 13:59

    oleg-nenashev on PromotionBadge_PipelineCompat

    Update Jenkins Core requirement… Fix Jenkinsfile Update Jenkins Core to 2.138.x … and 19 more (compare)

  • Jul 29 13:51
    deathrowe opened #139
  • Jul 21 21:35

    oleg-nenashev on PromotionBadge_PipelineCompat

    Delete AddPromotionBadgeStep.ja… (compare)

  • Jul 21 21:35
    oleg-nenashev synchronize #128
  • Jul 01 13:34
    AndrGrig commented #123
  • Jul 01 12:33
    oleg-nenashev commented #123
  • Jul 01 09:36
    AndrGrig commented #123
  • Jun 25 11:03
    adrian-at-dmi starred jenkinsci/promoted-builds-plugin
  • Jun 24 07:15
    dernDren161 synchronize #137
Prastik Gyawali
@dernDren161
@oleg-nenashev one question. When i refactor an existing point what would be the best/proper way to test the made changes?
1) Just make sure that all the current Test classes pass without any prblm?(no need to write a different test class for it)
2) Since it's a test for pipeline, write some DSL's to test them?
3) Or write a new test class? as it happens usually? (This one's targeted to the PromotionConditionDescriptor refactorings)
Thank You!
Jon Brohauge
@jonbrohauge
@dernDren161 Generally when you write some code, you should have an idea of what the unit of work is, and thus write tests for that unit. Hence the expression Unit Test. When editing existing code, one should always be certain that existing tests pass, unless of course the excercise is to make breaking changes. Writing code in Java, one should always be able to pass all available/relevant tests by executing mvn clean test, both existing and new unit tests. Writing DSL's to test ones code, can be defined as a kind of Integration Test, and need a running environment of sorts to execute.
Jon Brohauge
@jonbrohauge
@dernDren161 Have you completed your blog post enough for review?
Prastik Gyawali
@dernDren161
@/all please help review/edit this draft for the blog
Claus Schneider
@bicschneider
I am not able to join todays hangout.. :-(
Jon Brohauge
@jonbrohauge
@dernDren161 your blog post looks good to me. Incorporate @bicschneider 's changes, and I think you are good to go, pending @oleg-nenashev 's comments
Oleg Nenashev
@oleg-nenashev
I will try to review today, but no guarantee
Prastik Gyawali
@dernDren161
@jonbrohauge are you going to join??
Jon Brohauge
@jonbrohauge
to sec
Prastik Gyawali
@dernDren161
@jonbrohauge joining??
Prastik Gyawali
@dernDren161
@oleg-nenashev gentle ping for the draft blog post review :)
Oleg Nenashev
@oleg-nenashev
In my queue
Prastik Gyawali
@dernDren161
@/all Irrespective of the evaluation result, i would like to thank all my mentors for dedicating so much time only so that i could learn things. Thank you this project helped me learn a lot of things. I'll try again next year to complete the same project only with more polished knowledge for the same. Thank you all
Claus Schneider
@bicschneider
You are welcome.. I will encourrage you to continue work in the community. You could continue to use the knowledge you already have and help completing the functionality. More developer might join and you could still contribute. This will be under less time pressure and you could pick smaller tasks etc.
Jon Brohauge
@jonbrohauge
@/all Are we having a hangout session today? I'm for a session
Jon Brohauge
@jonbrohauge
I guess nobody's home...
@dernDren161 I would like to talk with you, so maybe we should @/all allow time tomorrow at the regular time slot to meet?
Prastik Gyawali
@dernDren161
@jonbrohauge hi Jon actually i am home but sry missed your ping
sure i am up for tomorrow's meet :)
Claus Schneider
@bicschneider
I am in.. @dernDren161 Can you invite for the normal slot with a hangout link?
I actually got out of my not-able-to-attend Monday-Wednesday ..
Prastik Gyawali
@dernDren161
@bicschneider sure i'll send a fresh new hangouts link for tomorrow
Bogdan I @ FintechOS
@BogdanI-FintechOS
Hi everyone. I would like to address somehow the missing feature of not being able to demote a build and remove a promotion. I looked at this plugin for ~10 years now and this missing feature has always led me to manage promotion through some other methods.
  • My first objective is to document what has to be done manually to remove a promotion
  • The second objective is to show what can be done via a system Groovy script to remove said promotion, if this is at all possible
Bogdan I @ FintechOS
@BogdanI-FintechOS
If anyone cares to help with any info on what can be done via a Bash script on the master to remove a promotion I would appreciate it. Another very helpful info would be regarding what can be done via a system Groovy script (e.g. load a build object for the promoted build and manually remove badges, etc.). I don't know if loading this build object can be done in the context of a build for a different job and would love to know it can be done.
Oleg Nenashev
@oleg-nenashev
@BogdanI-FintechOS The best way would be to have a real support of the build demotion in the plugin. Right now it is not supported
You can indeed use Groovy hooks to remove build actions and other references, but it is not going to be a supported and documented functionality unless proper APIs are offered for it in the plugin
Bogdan I @ FintechOS
@BogdanI-FintechOS
@oleg-nenashev I agree but it would take too much time for me to do it like that. I'm not a Java dev (I do C#) and even just writing Groovy scripts for Jenkins is an abysmal experience akin to coding in Notepad and compiling at the command line. It would take too much time for me to get a handle on how Jenkins code is structured, how plugins are interfaced and to evolve this plugin to support demotion.
Oleg Nenashev
@oleg-nenashev
there are some workarounds suggested
Bogdan I @ FintechOS
@BogdanI-FintechOS
@oleg-nenashev I've been aware of that issue and workaround for years. It doesn't work for me and I've seen it in practice. I need that gold star gone or else someone always finds a way to ignore it.
I want to do something towards solving this demotion problem and the 1st step is at least to document what has to happen at the lowest level to have a demotion.
Many people - myself included - would be happy to manipulate Jenkins job/build xml files + remove promotion build files from Bash/Python/PowerShell and just force a Jenkins restart
But in order to do that we need to know what has to be done and it's currently unclear. I also feel I could do a brutal demotion like this directly from a system Groovy script and avoid a Jenkins restart but in this case I would really need to know from the start that this can be done without touching plugin's Java code.
Oleg Nenashev
@oleg-nenashev
Any low-level documentation could be indeed useful, but note that there is no commitment to retain compatibility for the current behavior
For me reviewing low-level docs would probably take longer than implementing depromotion API
Bogdan I @ FintechOS
@BogdanI-FintechOS
@oleg-nenashev Can you tell me if you think it's possible to obtain for a given jobA an instance of AbstractBuild for a given completed build (let's say build 39, visible at an URL like: http://machine:port/jobA/jobName/39), starting from a system Groovy script (https://plugins.jenkins.io/groovyv) executed by a different jobB, let's say during build 10. The following objects are bound to the script: build (type: AbstractBuild; represents the currently running build 10 for jobB), listener (type: StreamBuildListener), launcher (type: Launcher)
Oleg Nenashev
@oleg-nenashev

@BogdanI-FintechOS https://javadoc.jenkins-ci.org/jenkins/model/Jenkins.html#getItemByFullName-java.lang.String- + https://javadoc.jenkins.io/hudson/model/Job.html#getBuildByNumber-int- .

So it would look like jenkins.model.Jenkins.instance.getItemByFullName('jobA').getBuildByNumber(39)

Bogdan I @ FintechOS
@BogdanI-FintechOS
@oleg-nenashev I just tested things out and it seems I can create-instances or get-singletons for any Jenkins "entity" from Groovy scripts, including the jenkins object you suggested I use. I was concerned that in order to be able to reach that jenkins object singleton, something else needs to be bound to my Groovy script and I really wanted to avoid googling how to do that.
Bogdan I @ FintechOS
@BogdanI-FintechOS
It's unlikely, but if I end up using the promoted-builds-plugin this time, I'll come back with Groovy code on how to do a brutal demotion. First, however, I'll try a custom job that does promotion/demotion from beta/RC to GOLD by adding badges / changing descriptions for builds via Groovy build steps. Thanks for the tip.
hakamairi
@hakamairi
Hello, I have a strange question that I don't seem to find the answer for
how do I use the promoted builds with declarative pipeline?
Oleg Nenashev
@oleg-nenashev
@hakamairi See https://issues.jenkins-ci.org/browse/JENKINS-36089 . Jenkins Pipeline is not supported in Promoted Builds ATM
hakamairi
@hakamairi
summer is almost over so I was hoping that maybe this is done already
ok thank you for the information
Oleg Nenashev
@oleg-nenashev
The project was failed in June unfortunately
hakamairi
@hakamairi
oh, sorry to hear that
Oleg Nenashev
@oleg-nenashev
Not all GSoC projects complete
I still want to do that when time allows, but "when" is a pretty big question for me
hakamairi
@hakamairi
alright then, fingers crossed for this one