JP Sullivan
Pied Piper Picked a
Python Pipeline Pattern
Released April 2019
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
I need a pipeline
https://jenkins.io/images/post-
images/blueocean/pipeline-run.png
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
https://jenkins.io/doc/tutorials/build-a-python-app-with-
pyinstaller/
Sample Code and Examples from:
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Just write it, the
steps are simple
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Now add a few
more repositories,
just copy the
pipeline I wrote
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Need to change
something, now I’ve
loads of changes to
make!
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Pipeline as Code –
apply Engineering to it
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Things to consider
• Shared Pipeline Library
• Access Objects
• Considered Abstractions
• TDD and Unit Testing
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Standard Principles
• Ensure you DRY
• Also, KISS
• Avoid NIH
• Ran out of acronyms
• Use standard
approaches where
possible
• Cyclomatic Complexity
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Example Patterns
• DockerAccess
• PyPiAccess
• ArtefactoryAccess
• PythonBuild
• PythonPublish
• JavaBuild
• JavaPublish
https://github.com/CiscoDevNet/es-logger
Pied Piper Picked a Python Pipeline Pattern
Pied Piper Picked a Python Pipeline Pattern

Pied Piper Picked a Python Pipeline Pattern

  • 1.
    JP Sullivan Pied PiperPicked a Python Pipeline Pattern Released April 2019
  • 2.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential I need a pipeline https://jenkins.io/images/post- images/blueocean/pipeline-run.png
  • 3.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Confidential https://jenkins.io/doc/tutorials/build-a-python-app-with- pyinstaller/ Sample Code and Examples from:
  • 4.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Just write it, the steps are simple
  • 5.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Now add a few more repositories, just copy the pipeline I wrote
  • 6.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Need to change something, now I’ve loads of changes to make!
  • 7.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Confidential Pipeline as Code – apply Engineering to it
  • 8.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Things to consider • Shared Pipeline Library • Access Objects • Considered Abstractions • TDD and Unit Testing
  • 9.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Standard Principles • Ensure you DRY • Also, KISS • Avoid NIH • Ran out of acronyms • Use standard approaches where possible • Cyclomatic Complexity
  • 10.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Confidential© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential Example Patterns • DockerAccess • PyPiAccess • ArtefactoryAccess • PythonBuild • PythonPublish • JavaBuild • JavaPublish
  • 11.