Skip to content
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

Merged
merged 2 commits into from
Feb 3, 2017

Conversation

HRMPW
Copy link

@HRMPW HRMPW commented Feb 2, 2017

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

@michaelneale
Copy link
Contributor

@HRMPW could this have screen caps for the editor?

@HRMPW
Copy link
Author

HRMPW commented Feb 2, 2017

@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?

@bitwiseman
Copy link
Contributor

The editor is part of Blue Ocean, isn't it?

@HRMPW
Copy link
Author

HRMPW commented Feb 2, 2017

@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

Copy link
Contributor

@bitwiseman bitwiseman left a 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:
Copy link
Contributor

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?

Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jenkins, we

Copy link
Member

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor

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"?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, good catch

@michaelneale
Copy link
Contributor

(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
Copy link
Contributor

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'

Copy link
Member

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
Copy link
Contributor

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)

Copy link
Contributor

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

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More "pipeline" -> "Pipeline"

@michaelneale
Copy link
Contributor

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,
Copy link
Member

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"
Copy link
Member

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
Copy link
Member

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
Copy link
Member

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.
Copy link
Member

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
Copy link
Member

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
Copy link
Member

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
Copy link
Member

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
Copy link
Member

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
Copy link
Member

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.

@rtyler
Copy link
Member

rtyler commented Feb 3, 2017

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.

@rtyler rtyler dismissed bitwiseman’s stale review February 3, 2017 14:55

I believe I have addressed all @bitwiseman's concerns

@rtyler rtyler merged commit 11ad1f4 into jenkins-infra:master Feb 3, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants