http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html https://www.youtube.com/watch?v=_wiGpBQGCjU
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def powershell_workflow(String mode, String... scripts) { | |
powershell """ | |
echo "starting workflow in $mode mode" | |
workflow runWorkflow { | |
$mode { | |
${scripts.collect { script -> | |
"InlineScript { ${script} *>&1 | tee -filepath ${script.replace(' ','_')}.log; if(\$LastExitCode -ne 0) { Throw \"ERROR: \'$script\' failed with exit code \$LastExitCode \" } } -ErrorAction Continue" | |
}.join('\n') } | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// define the bitbucket project + repos we want to build | |
def bitbucket_project = 'myproj' | |
def bitbucket_repos = ['myrepo1', 'myrepo2'] | |
// create a pipeline job for each of the repos and for each feature branch. | |
for (bitbucket_repo in bitbucket_repos) | |
{ | |
multibranchPipelineJob("${bitbucket_repo}-ci") { | |
// configure the branch / PR sources | |
branchSources { |
Picking the right architecture = Picking the right battles + Managing trade-offs
- Clarify and agree on the scope of the system
- User cases (description of sequences of events that, taken together, lead to a system doing something useful)
- Who is going to use it?
- How are they going to use it?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Main] | |
dogstreams: /path/to/log:/path/to/multiline.py:MultilineParser | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Jenkins Best Practices | |
https://en.wikipedia.org/wiki/Continuous_integration<- Read this! | |
https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Best+Practices | |
http://www.slideshare.net/andrewbayer/7-habits-of-highly-effective-jenkins-users | |
Set up version control of job configurations | |
Keep jobs simple! Don't put a ton of bash in each job. If a job needs to do something complex, put it in a script in GitHub and check it out as needed. | |
Use templated builders to simplify common tasks | |
Keep all scripts in version control - avoid running scripts that live on the Jenkins server filesystem | |
Don't install unnecessary plugins - plugins are often written by third parties and can interact with each other in strange ways | |
Use LDAP authentication if possible for traceability - avoid anonymous access |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
# Python 3 and compatibility with Python 2 | |
from __future__ import unicode_literals, print_function | |
import os | |
import sys | |
import re | |
import logging |