-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add quickstarter pipeline #230
Add quickstarter pipeline #230
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like it - I am wondering if we should not rename the context thing .. we have then 2* IContext, just in 3 different pacakges.
@oalyman @renedupont I've done a few more changes to make it even easier to author quickstarters. Could you provide feedback too? Thx! |
@clemensutschig @henrjk @oalyman Good to merge this? I'd love to proceed with converting the quickstarters. If you are OK with the "interface" - so the way that quickstarter |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks very neat.
I am torn on whether I'd rather see unique type names unique so that quickstarter names cannot be confused with component names.
On the other hand the qs classes could presumably also be in their own shared library.
Sorry for the ramblings.
|
||
import com.cloudbees.groovy.cps.NonCPS | ||
|
||
class Context implements IContext { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is keeping you from removing IContext and adding potential docs right here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@henrjk With IContext
I can use the type in the code while exchanging the implementation in the tests.
@henrjk Thanks! Actually I really want to have this as a single library, but I have failed to outline the reasoning:
|
Implements a new pipeline that can be used to provision quickstarters.
It uses the same style as the new "component pipeline", with some simplifications. For now, this pipeline has only been used for the Go quickstarter (opendevstack/ods-quickstarters#222). I'll convert the other ones after this PR is merged .. in the process, I might need to do some minor adjustments to the pipeline.
To visualise what a new
Jenkinsfile
looks like, here's the one from Go (updated):Some observations:
IContext
asContext
is just data access. Thoughts on this?There's some boilerplate around the image (dockerRegistry
/odsImageTag
). I guess we can get rid of it, but might be a bit of magicThequickstarterId
is required right now - that could also be read from the pipeline itself - it hasjenkinsfilePath: "be-golang-plain/Jenkinsfile"
set. I might default to that, and allow people to override?Setting up OpenShift resources will likely be similar across most quickstarters. Maybe we can simplify that too - but unsure what the right level of abstraction is. Right now I'm leaving that for later ...