-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Adding declarative blog for GA release #581
Conversation
@HRMPW could this have screen caps for the editor? |
@michaelneale do we want those in this blog or do we want a separate blog dedicated to the editor explaining how it ties into Declarative? |
The editor is part of Blue Ocean, isn't it? |
@bitwiseman Yes, there is a preview release of the editor coming that we can demonstrate but it will be released with BO. That is why I want it in a separate blog |
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.
Looking good. A few tweaks and suggestions.
flow of the pipeline and provides a common foundation across all pipelines. | ||
|
||
= Pipeline as Code | ||
Pipeline as Code was one of the pillars of the Jenkins 2.0 release and an essential part of implementing continuous delivery. Defining all of the stages of an application's CD pipeline within a "Jenkinsfile" and treating it as part of the application code automatically provides all of the benefits inherent in SCM: |
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.
Cloud you breakup this long line?
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.
" and treating it as part"
I would say it's not "treating". Maybe "and having it checked-in as part"
this new syntax is much more approachable with an easy adoption curve to quickly | ||
realize all of the benefits of Pipeline as Code. In addition, the predefined structure | ||
of Declarative makes it possible to create and edit pipelines with a graphical | ||
user interface (GUI). The Blue Ocean team is actively working on a Pipeline Editor |
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.
Link to an earlier blog on the editor?
link:https://www.cloudbees.com/introducing-new-way-define-jenkins-pipelines[Jenkins World] | ||
in September, it has already been installed over 5,000 times. | ||
|
||
If you haven't tried Pipeline or have considered Pipeline in the past we believe |
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.
past we -> past, we
user interface (GUI). The Blue Ocean team is actively working on a Pipeline Editor | ||
that will be included in an upcoming release. | ||
|
||
If you have already begun using Pipelines in Jenkins we believe that this new alternative |
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.
Jenkins, we
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.
Though who is the "we"? :)
a pipeline, having a straightforward structure helps to understand and predict the | ||
flow of the pipeline and provides a common foundation across all pipelines. | ||
|
||
= Pipeline as Code |
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 think we start at ==
because the title is provide by header.
== Pipeline as Code
* Audit changes to the pipeline | ||
* Run the same pipeline on a different Jenkins server | ||
|
||
= Getting Started with Declarative Pipeline |
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.
==
visualization. All existing pipeline steps, global variables and shared libraries can be used | ||
in either. You can now create more cookie-cutter pipelines and extend the power of Pipeline to all users regardless of Groovy expertise. | ||
|
||
= Declarative Pipeline Features |
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.
==
that will be included in an upcoming release. | ||
|
||
If you have already begun using Pipelines in Jenkins we believe that this new alternative | ||
syntax can help expand that usage. The original syntax for defining pipelines in Jenkins |
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 think everything after "The original syntax for" doesn't do much to support the first sentence.
It seems like a new paragraph.
Off hand something like:
If you have already begun using Pipelines in Jenkins we believe that this new alternative
syntax can help expand that usage. You can now create more cookie-cutter pipelines
and extend the power of Pipeline to all users regardless of Groovy expertise.
// Another supporting sentence here
The original syntax for defining pipelines in Jenkins is still fully supported and is now referred
to as "Scripted Pipeline Syntax" to distinguish it from "Declarative Pipeline Syntax."
Both use the same underlying execution
engine in Jenkins and both will generate the same results in Pipeline Stage View or Blue Ocean
visualization. All existing pipeline steps, global variables and shared libraries can be used
in either.
** Skip stages based on branches, environment, or other Boolean expression | ||
|
||
= Where Can I Learn More? | ||
Be on the lookout for future blog posts here or on Jekins.io detailing specific examples |
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.
"here or on Jekins.io"? You mean, "here on Jenkins.io"?
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.
yes, good catch
(thinking on this...) |
* Review new changes to the pipeline in code review | ||
* Test new pipeline steps in branches | ||
* Audit changes to the pipeline | ||
* Run the same pipeline on a different Jenkins server |
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.
Suggestion:
'View diffs clearly between pipeline versions, merge changes'
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.
"pipeline" -> "Pipeline" in all cases in this block, as per the styleguide.
** Quickly define options (such as timeout, retry, build discarding) for your pipeline | ||
* Conditional actions | ||
** Send notifications or take actions depending upon success or failure | ||
** Skip stages based on branches, environment, or other Boolean expression |
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.
** Round trip editing with the visual pipeline editor (watch for preview release shortly)
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.
** Simple syntax that works well with git for diffs and merges
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.
More "pipeline" -> "Pipeline"
Put some suggestions in but LGTM |
link:https://plugins.jenkins.io/pipeline-model-definition[Declarative Pipeline syntax] | ||
1.0 to | ||
link:https://plugins.jenkins.io/workflow-aggregator[Jenkins Pipeline.] | ||
We think this new syntax will enable everyone involved in DevOps, regardless of expertise, |
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.
It seems there are no examples of declarative syntax in a blog post about declarative syntax ;)
So I'd link "new syntax" to the new syntax documentation: https://jenkins.io/doc/book/pipeline/
@@ -0,0 +1,89 @@ | |||
--- | |||
layout: post | |||
title: "Declarative Pipeline Syntax 1.0 is GA" |
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'm not sure the term "is GA" is hugely well known, and seems a bit out of place in the title — maybe more simply, "is here", or "released"…
* Rollback to a previous pipeline version | ||
* Review new changes to the pipeline in code review | ||
* Test new pipeline steps in branches | ||
* Audit changes to the pipeline |
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 think this point is redundant; it's already covered by "review new changes" (along with "retain history").
* Review new changes to the pipeline in code review | ||
* Test new pipeline steps in branches | ||
* Audit changes to the pipeline | ||
* Run the same pipeline on a different Jenkins server |
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.
"pipeline" -> "Pipeline" in all cases in this block, as per the styleguide.
We recommend people begin using it for all their Pipeline definitions in Jenkins. | ||
The plugin has been available for use and testing starting with the 0.1 release that was debuted at | ||
link:https://www.cloudbees.com/introducing-new-way-define-jenkins-pipelines[Jenkins World] | ||
in September, it has already been installed over 5,000 times. |
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'd end the sentence where the comma is. Then: "Since then, it has already been…"
|
||
If you haven't tried Pipeline or have considered Pipeline in the past we believe | ||
this new syntax is much more approachable with an easy adoption curve to quickly | ||
realize all of the benefits of Pipeline as Code. In addition, the predefined structure |
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 think house style calls for "predefined" -> "pre-defined"
user interface (GUI). The Blue Ocean team is actively working on a Pipeline Editor | ||
that will be included in an upcoming release. | ||
|
||
If you have already begun using Pipelines in Jenkins we believe that this new alternative |
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.
Though who is the "we"? :)
is a Groovy DSL that allows most of the features of full imperative programming. | ||
This syntax is still fully supported and is now referred to as "Scripted Pipeline Syntax" | ||
to distinguish it from "Declarative Pipeline Syntax." Both use the same underlying execution | ||
engine in Jenkins and both will generate the same results in Pipeline Stage View or Blue Ocean |
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.
"Pipeline Stage View" could be a plugins.j.io link
** Quickly define options (such as timeout, retry, build discarding) for your pipeline | ||
* Conditional actions | ||
** Send notifications or take actions depending upon success or failure | ||
** Skip stages based on branches, environment, or other Boolean expression |
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.
More "pipeline" -> "Pipeline"
* link:https://en.wikipedia.org/wiki/Lint_%28software%29[Syntax Checking] | ||
** Immediate runtime syntax checking with explicit error messages | ||
** API endpoint for linting Jenkinsfiles | ||
** CLI command to lint Jenkinsfiles |
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 didn't know about these features, but I did manage to find some documentation on the plugin's GitHub wiki.
Perhaps a link to that page would be useful here.
Considering the timezone different this week/weekend between @HRMPW and myself, I might take this pull request over and make the requested changes so we can publish it before end-of-day UTC. |
I believe I have addressed all @bitwiseman's concerns
added new blog for Declarative release.
I also updated the link from the Jenkins.io home page to point to the new documentation pages for now instead of the solutions page because the information there is much better.
@rtyler @michaelneale @bitwiseman @abayer