+44 1274 300 175 blackmarble.com
Introduction to GitHub Actions
Aubin Patrick TAKAM TAYO
+44 1274 300 175 blackmarble.com
”Any development
process requires a
reliable means of
build and delivery,
‘DevOps’ in the
modern terminology.”
In this session we will look at…
• What is DevOps?
• Why DevOps is important?
• The key factors in successful
adoption
• How Azure DevOps can help in
this process.
+44 1274 300 175 blackmarble.com
People. Process. Products.
What is DevOps?
DevOps is the union of people,
process, and products to
enable continuous delivery of
value to your end users.
“
”
Build
&
Test
Continuous
Delivery
Deploy
Operate
Monitor
&
Learn
Plan
&
Track
Develop
Donovan Brown
Senior DevOps Program Manager on
Microsoft's US Developer Division team
+44 1274 300 175 blackmarble.com
High Performance DevOps Companies Achieve…
DevOps
Faster
Time to Market
Increased
Revenue
2,604x Faster Mean
Time to Recover
2,555x Faster Lead
Time For Changes
7x Lower Change
Failure Rate
46x Deployment
Frequency
$
rce: 2018 Accelerate: State of DevOps: Strategies for a New Economy." N. Forsgren, J. Humble, G. Kim. DevOps Research and Assessment (DORA)
+44 1274 300 175 blackmarble.com
DevOps brings together people, processes, and technology, automating software delivery to provide continuous
value to your users.
What technologies do I need to support DevOps?
Continuous Integration (CI)
• Improve software development
quality and speed.
• When you use Azure Pipelines or
Jenkins to build apps in the cloud and
deploy to Azure, each time you
commit code, it’s automatically built
and tested and bugs are detected
faster.
Continuous Deployment (CD)
• By combining continuous integration
and infrastructure as code (IaC), you’ll
achieve identical deployments and
the confidence to deploy to
production at any time.
• With continuous deployment, you
can automate the entire process from
code commit to production if your
CI/CD tests are successful.
Continuous Learning & Monitoring
• With Azure Application Insights you
can identify how your applications are
performing and test if the recent
deployment made things better or
worse.
• Using CI/CD practices, paired with
monitoring tools, you’ll be able to
safely deliver features to your
customers as soon as they’re ready.
+44 1274 300 175 blackmarble.com
Summary
• Azure DevOps Pipelines are
• Any Platform
• Any Language
• Can help provide a robust DevOps build and release model
• Free for OSS projects
• Azure DevOps https://azure.com/devops
• All the slides, code can be found on https://github.com/rfennell
• CI/CD is via public projects on https://dev.azure.com/richardfennell
+44 1274 300 175 blackmarble.com
How do I write my own Custom Action?
How did we do CI/CD for GitHub?
What are GitHub Actions?
+44 1274 300 175 blackmarble.com
How did we do CI/CD for GitHub?
+44 1274 300 175 blackmarble.com
What are GitHub Actions?
+44 1274 300 175 blackmarble.com
Run a workflow on any GitHub event
+44 1274 300 175 blackmarble.com
Built to Scale
+44 1274 300 175 blackmarble.com
Community-powered workflows
+44 1274 300 175 blackmarble.com
Simple, pay-as-you-go pricing
+44 1274 300 175 blackmarble.com
Demo: Your first Workflow
+44 1274 300 175 blackmarble.com
A Sample Workflow
on:
push:
branches:
- master
jobs:
build-and-deploy:
name: Build and Deploy
runs-on: ${{ matrix.os }}
strategy:
matrix:
node_version: ['8', '10', '12']
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v1
with:
node-version: ${{ env.NODE_VERSION }}
- name: npm install, build, and test
run: |
npm install
npm run build --if-present
npm run test --if-present
What event triggers the workflow?
Where does it run?
What gets run?
+44 1274 300 175 blackmarble.com
How do I write my own Custom Action?
+44 1274 300 175 blackmarble.com
• Control over logical flow
• Use of custom tools not present on the agent
• Aid management of complexity
• Code reuse
Why might you want a custom action?
+44 1274 300 175 blackmarble.com
Before you start, remember the Marketplace
+44 1274 300 175 blackmarble.com
What do I write my action in?
JavaScript
• Fast to load
• Runs directly on Agent
• SDK for Workflows API
• Templates available
• But requires correct setup
• Flexible, any tools any language
• Built at runtime or loaded from
Docker Registry
• Consistent results
• Slower to start
Docker
+44 1274 300 175 blackmarble.com
Anatomy of an Action.yaml file
name: 'Apply Version to JSON file'
description: 'Adds a version number to a field in a JSON file'
author: 'Richard Fennell'
inputs:
Path:
description: 'Source folder Filter (folder under GITHUB_WORKSPACE)'
default: ''
required: false
VersionNumber:
description: 'Version Number'
default: ''
required: true
outputs:
FileUpdated:
description: 'The name of the file updated'
runs:
using: 'node12'
main: 'lib/main.js'
branding:
icon: 'file-text'
color: 'green'
runs:
using: ’docker'
main: ’dockerfile'
runs:
using: ’docker'
main: ’docker://image:tag'
+44 1274 300 175 blackmarble.com
Adding a Release Branch
# comment out in distribution branches
# node_modules/
$ git checkout -b releases/v1
$ npm prune --production
$ git add node_modules
$ git commit -a -m "prod dependencies"
$ git push origin releases/v1
+44 1274 300 175 blackmarble.com
Versioning your Action Updates
Based on https://github.com/actions/toolkit/blob/master/docs/action-versioning.md
master
releases/v1
branch: master
branch: releases/v1
fix issue from
testing
create release + tag: 1.0.1
tag: v1
merge or
rebase
test E2E
referencing
releases/v1
branch ‘latest’
unreleased
Check-in prod
dependencies Test E2E
fix bug
merge or
rebase
create release + tag: 1.0.2
move tag: v1
+44 1274 300 175 blackmarble.com
How to use your action in a workflow?
steps:
- uses: ./ # Uses a private action in the root directory of workflow repo
- uses: rfennell/JSONFileVersioner@74bc508 # a specific commit of a public action
- uses: rfennell/JSONFileVersioner@master # a branch of a public action
- uses: rfennell/JSONFileVersioner@v1.0.1 # the version of a release of a public
action
- uses: rfennell/JSONFileVersioner@v1 # the major version of a release of a public
action
+44 1274 300 175 blackmarble.com
• In your GitHub repo create a new draft release
• Select ‘Publish to Marketplace’
• Fix any errors, usually by checking in or editing files
• Choose categories
• Pick the tag that points to version to release
• Click Publish release
Finally add it to the GitHub
Marketplace
+44 1274 300 175 blackmarble.com
Demo: A look at a Custom Action
+44 1274 300 175 blackmarble.com
• GitHub Actions are a new alternative for CI/CD
• You now don’t have to leave GitHub or provision other resources
• They are free for OSS and pay-per-minute for private repo
• They are not as rich in features as Azure DevOps Pipelines, yet…
• Also, remember they are not limited to CI/CD
• They can trigger a workflow on any GitHub event
Summary
+44 1274 300 175 blackmarble.com
Introducing Azure DevOps
Deliver value to your users faster
using proven agile tools to plan,
track, and discuss work across
your teams.
Build, test, and deploy with CI/CD that
works with any language, platform,
and cloud. Connect to GitHub or any
other Git provider and deploy
continuously.
Get unlimited, cloud-hosted
private Git repos and collaborate
to build better code with pull
requests and advanced file
management.
Test and ship with confidence
using manual and exploratory
testing tools.
Create, host, and share packages with
your team, and add artifacts to your
CI/CD pipelines with a single click.
Azure
Boards
Azure Repos
Azure Pipelines
Azure Test Plans Azure Artifacts
https://azure.com/devops

+44 1274 300 175 blackmarble.com
Cloud-hosted pipelines for Linux, Windows and
macOS, with unlimited minutes for open source
Azure Pipelines
Any language, any platform, any cloud
Build, test, and deploy Node.js, Python, Java, PHP, Ruby,
C/C++, .NET, Android, and iOS apps. Run in parallel on
Linux, macOS, and Windows. Deploy to Azure, AWS,
GCP or on-premises
Extensible
Explore and implement a wide range of community-
built build, test, and deployment tasks, along with
hundreds of extensions from Slack to SonarCloud.
Support for YAML, reporting and more
Best-in-class for open source
Ensure fast continuous integration/continuous delivery
(CI/CD) pipelines for every open source project. Get
unlimited build minutes for all open source projects with
up to 10 free parallel jobs across Linux, macOS and
Windows
Containers and Kubernetes
Easily build and push images to container registries like
Docker Hub and Azure Container Registry. Deploy
containers to individual hosts or Kubernetes.
+44 1274 300 175 blackmarble.com
Azure Pipelines
Free unlimited build minutes for
public projects
Up to 10 free parallel jobs across
Windows, Linux and macOS
Microsoft Open Source
+44 1274 300 175 blackmarble.com
Integrated with
GitHub
Azure Pipelines available now to
any developer from the GitHub
Marketplace
+44 1274 300 175 blackmarble.com
Demo Building an Azure DevOps
Pipeline extension, with
tasks written in PowerShell
& Typescript, then
deploying and testing in the
Azure DevOps Marketplace
+44 1274 300 175 blackmarble.co
m
10 Practices
for a Healthy
DevOps Life
RICHARD FENNELL
CTO BLACK MARBLE
+44 1274 300 175 blackmarble.co
m
1.
Source
Control
+44 1274 300 175 blackmarble.co
m
2.
Work
Tracking
+44 1274 300 175 blackmarble.co
m
3.
Continuous
Integration
+44 1274 300 175 blackmarble.co
m
4.
Continuous
Delivery
+44 1274 300 175 blackmarble.co
m
5.
Infrastructure
as Code
+44 1274 300 175 blackmarble.co
m
6.
Automated
Testing
+44 1274 300 175 blackmarble.co
m
7.
Supply Chain
Analysis
+44 1274 300 175 blackmarble.co
m
8.
Documentation
+44 1274 300 175 blackmarble.co
m
9.
Exploration
+44 1274 300 175 blackmarble.co
m
10.
Buy in
+44 1274 300 175 blackmarble.co
m
Maslow’s
Hierarchy
Of Needs
+44 1274 300 175 blackmarble.co
m
“
Culture Eats
Strategy For
Breakfast
”
PETER DRUCKER

Introduction to DevOps with Azure DevOps Pipelines.pptx

  • 1.
    +44 1274 300175 blackmarble.com Introduction to GitHub Actions Aubin Patrick TAKAM TAYO
  • 2.
    +44 1274 300175 blackmarble.com ”Any development process requires a reliable means of build and delivery, ‘DevOps’ in the modern terminology.” In this session we will look at… • What is DevOps? • Why DevOps is important? • The key factors in successful adoption • How Azure DevOps can help in this process.
  • 3.
    +44 1274 300175 blackmarble.com People. Process. Products. What is DevOps? DevOps is the union of people, process, and products to enable continuous delivery of value to your end users. “ ” Build & Test Continuous Delivery Deploy Operate Monitor & Learn Plan & Track Develop Donovan Brown Senior DevOps Program Manager on Microsoft's US Developer Division team
  • 4.
    +44 1274 300175 blackmarble.com High Performance DevOps Companies Achieve… DevOps Faster Time to Market Increased Revenue 2,604x Faster Mean Time to Recover 2,555x Faster Lead Time For Changes 7x Lower Change Failure Rate 46x Deployment Frequency $ rce: 2018 Accelerate: State of DevOps: Strategies for a New Economy." N. Forsgren, J. Humble, G. Kim. DevOps Research and Assessment (DORA)
  • 5.
    +44 1274 300175 blackmarble.com DevOps brings together people, processes, and technology, automating software delivery to provide continuous value to your users. What technologies do I need to support DevOps? Continuous Integration (CI) • Improve software development quality and speed. • When you use Azure Pipelines or Jenkins to build apps in the cloud and deploy to Azure, each time you commit code, it’s automatically built and tested and bugs are detected faster. Continuous Deployment (CD) • By combining continuous integration and infrastructure as code (IaC), you’ll achieve identical deployments and the confidence to deploy to production at any time. • With continuous deployment, you can automate the entire process from code commit to production if your CI/CD tests are successful. Continuous Learning & Monitoring • With Azure Application Insights you can identify how your applications are performing and test if the recent deployment made things better or worse. • Using CI/CD practices, paired with monitoring tools, you’ll be able to safely deliver features to your customers as soon as they’re ready.
  • 6.
    +44 1274 300175 blackmarble.com Summary • Azure DevOps Pipelines are • Any Platform • Any Language • Can help provide a robust DevOps build and release model • Free for OSS projects • Azure DevOps https://azure.com/devops • All the slides, code can be found on https://github.com/rfennell • CI/CD is via public projects on https://dev.azure.com/richardfennell
  • 7.
    +44 1274 300175 blackmarble.com How do I write my own Custom Action? How did we do CI/CD for GitHub? What are GitHub Actions?
  • 8.
    +44 1274 300175 blackmarble.com How did we do CI/CD for GitHub?
  • 9.
    +44 1274 300175 blackmarble.com What are GitHub Actions?
  • 10.
    +44 1274 300175 blackmarble.com Run a workflow on any GitHub event
  • 11.
    +44 1274 300175 blackmarble.com Built to Scale
  • 12.
    +44 1274 300175 blackmarble.com Community-powered workflows
  • 13.
    +44 1274 300175 blackmarble.com Simple, pay-as-you-go pricing
  • 14.
    +44 1274 300175 blackmarble.com Demo: Your first Workflow
  • 15.
    +44 1274 300175 blackmarble.com A Sample Workflow on: push: branches: - master jobs: build-and-deploy: name: Build and Deploy runs-on: ${{ matrix.os }} strategy: matrix: node_version: ['8', '10', '12'] os: [ubuntu-latest, windows-latest, macOS-latest] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@v1 with: node-version: ${{ env.NODE_VERSION }} - name: npm install, build, and test run: | npm install npm run build --if-present npm run test --if-present What event triggers the workflow? Where does it run? What gets run?
  • 16.
    +44 1274 300175 blackmarble.com How do I write my own Custom Action?
  • 17.
    +44 1274 300175 blackmarble.com • Control over logical flow • Use of custom tools not present on the agent • Aid management of complexity • Code reuse Why might you want a custom action?
  • 18.
    +44 1274 300175 blackmarble.com Before you start, remember the Marketplace
  • 19.
    +44 1274 300175 blackmarble.com What do I write my action in? JavaScript • Fast to load • Runs directly on Agent • SDK for Workflows API • Templates available • But requires correct setup • Flexible, any tools any language • Built at runtime or loaded from Docker Registry • Consistent results • Slower to start Docker
  • 20.
    +44 1274 300175 blackmarble.com Anatomy of an Action.yaml file name: 'Apply Version to JSON file' description: 'Adds a version number to a field in a JSON file' author: 'Richard Fennell' inputs: Path: description: 'Source folder Filter (folder under GITHUB_WORKSPACE)' default: '' required: false VersionNumber: description: 'Version Number' default: '' required: true outputs: FileUpdated: description: 'The name of the file updated' runs: using: 'node12' main: 'lib/main.js' branding: icon: 'file-text' color: 'green' runs: using: ’docker' main: ’dockerfile' runs: using: ’docker' main: ’docker://image:tag'
  • 21.
    +44 1274 300175 blackmarble.com Adding a Release Branch # comment out in distribution branches # node_modules/ $ git checkout -b releases/v1 $ npm prune --production $ git add node_modules $ git commit -a -m "prod dependencies" $ git push origin releases/v1
  • 22.
    +44 1274 300175 blackmarble.com Versioning your Action Updates Based on https://github.com/actions/toolkit/blob/master/docs/action-versioning.md master releases/v1 branch: master branch: releases/v1 fix issue from testing create release + tag: 1.0.1 tag: v1 merge or rebase test E2E referencing releases/v1 branch ‘latest’ unreleased Check-in prod dependencies Test E2E fix bug merge or rebase create release + tag: 1.0.2 move tag: v1
  • 23.
    +44 1274 300175 blackmarble.com How to use your action in a workflow? steps: - uses: ./ # Uses a private action in the root directory of workflow repo - uses: rfennell/JSONFileVersioner@74bc508 # a specific commit of a public action - uses: rfennell/JSONFileVersioner@master # a branch of a public action - uses: rfennell/JSONFileVersioner@v1.0.1 # the version of a release of a public action - uses: rfennell/JSONFileVersioner@v1 # the major version of a release of a public action
  • 24.
    +44 1274 300175 blackmarble.com • In your GitHub repo create a new draft release • Select ‘Publish to Marketplace’ • Fix any errors, usually by checking in or editing files • Choose categories • Pick the tag that points to version to release • Click Publish release Finally add it to the GitHub Marketplace
  • 25.
    +44 1274 300175 blackmarble.com Demo: A look at a Custom Action
  • 26.
    +44 1274 300175 blackmarble.com • GitHub Actions are a new alternative for CI/CD • You now don’t have to leave GitHub or provision other resources • They are free for OSS and pay-per-minute for private repo • They are not as rich in features as Azure DevOps Pipelines, yet… • Also, remember they are not limited to CI/CD • They can trigger a workflow on any GitHub event Summary
  • 27.
    +44 1274 300175 blackmarble.com Introducing Azure DevOps Deliver value to your users faster using proven agile tools to plan, track, and discuss work across your teams. Build, test, and deploy with CI/CD that works with any language, platform, and cloud. Connect to GitHub or any other Git provider and deploy continuously. Get unlimited, cloud-hosted private Git repos and collaborate to build better code with pull requests and advanced file management. Test and ship with confidence using manual and exploratory testing tools. Create, host, and share packages with your team, and add artifacts to your CI/CD pipelines with a single click. Azure Boards Azure Repos Azure Pipelines Azure Test Plans Azure Artifacts https://azure.com/devops 
  • 28.
    +44 1274 300175 blackmarble.com Cloud-hosted pipelines for Linux, Windows and macOS, with unlimited minutes for open source Azure Pipelines Any language, any platform, any cloud Build, test, and deploy Node.js, Python, Java, PHP, Ruby, C/C++, .NET, Android, and iOS apps. Run in parallel on Linux, macOS, and Windows. Deploy to Azure, AWS, GCP or on-premises Extensible Explore and implement a wide range of community- built build, test, and deployment tasks, along with hundreds of extensions from Slack to SonarCloud. Support for YAML, reporting and more Best-in-class for open source Ensure fast continuous integration/continuous delivery (CI/CD) pipelines for every open source project. Get unlimited build minutes for all open source projects with up to 10 free parallel jobs across Linux, macOS and Windows Containers and Kubernetes Easily build and push images to container registries like Docker Hub and Azure Container Registry. Deploy containers to individual hosts or Kubernetes.
  • 29.
    +44 1274 300175 blackmarble.com Azure Pipelines Free unlimited build minutes for public projects Up to 10 free parallel jobs across Windows, Linux and macOS Microsoft Open Source
  • 30.
    +44 1274 300175 blackmarble.com Integrated with GitHub Azure Pipelines available now to any developer from the GitHub Marketplace
  • 31.
    +44 1274 300175 blackmarble.com Demo Building an Azure DevOps Pipeline extension, with tasks written in PowerShell & Typescript, then deploying and testing in the Azure DevOps Marketplace
  • 32.
    +44 1274 300175 blackmarble.co m 10 Practices for a Healthy DevOps Life RICHARD FENNELL CTO BLACK MARBLE
  • 33.
    +44 1274 300175 blackmarble.co m 1. Source Control
  • 34.
    +44 1274 300175 blackmarble.co m 2. Work Tracking
  • 35.
    +44 1274 300175 blackmarble.co m 3. Continuous Integration
  • 36.
    +44 1274 300175 blackmarble.co m 4. Continuous Delivery
  • 37.
    +44 1274 300175 blackmarble.co m 5. Infrastructure as Code
  • 38.
    +44 1274 300175 blackmarble.co m 6. Automated Testing
  • 39.
    +44 1274 300175 blackmarble.co m 7. Supply Chain Analysis
  • 40.
    +44 1274 300175 blackmarble.co m 8. Documentation
  • 41.
    +44 1274 300175 blackmarble.co m 9. Exploration
  • 42.
    +44 1274 300175 blackmarble.co m 10. Buy in
  • 43.
    +44 1274 300175 blackmarble.co m Maslow’s Hierarchy Of Needs
  • 44.
    +44 1274 300175 blackmarble.co m “ Culture Eats Strategy For Breakfast ” PETER DRUCKER

Editor's Notes

  • #3 DevOps is the union of people, process and products to enable the continuous delivery of value to your end customers
  • #8 We used an external system
  • #10 A means to do CI/CD inside the GitHub experience. For those familiar with Azure DevOps pipeline you will see known concepts, but this is all new language and action wise Linux, macOS, Windows, and containers Matrix builds Any language
  • #11  Live Logs Built in secret store Multi-container testing
  • #12 Community-powered workflows GitHub Actions connects all of your tools to automate every step of your development workflow. Easily deploy to any cloud, create tickets in Jira, or publish a package to npm. Want to venture off the beaten path? Use the millions of open source libraries available on GitHub to create your own actions. Write them in JavaScript or create a container Action—both can interact with the full GitHub API and any other public API.
  • #14 Add a workflow to a hello world node app When triggered
  • #15 Not limited to Git operations, also webhooks, basically anything on GitHub
  • #17 Control over logical flow Wrapper loads of command Use of custom tools not present on the agent Avoid the need to install something, or use a language not present Aid management of complexity Related to both of the about Code reuse Avoids need to cut and past blocl
  • #20 A metadata file called either action.yml or action.yaml that defines The inputs The outputs Main entrypoint for your action.
  • #21 As the scripts run from the repo needs the dependencies This is a difference from Azure DevOps
  • #27 So does TFS
  • #28 Azure Pipelines is the perfect launchpad for your code – automating your builds and deployments so you spend less time with the nuts and bolts and more time being creative
  • #29 All the builds you need, using the power of Azure you get one service that gives you unlimited build minutes where you can build on Windows Mac and Linux in parallel using a single build YAML file.
  • #31 If you missed the session a similar video is up at https://info.microsoft.com/UK-AZUREPLAT-WBNR-FY19-03Mar-14-DeliveringvaluecontinuouslytoyourenduserswithDevOps-AID-757675-MCW0011124_01Registration-ForminBody.html
  • #32 By the end of this session you might think ‘well we do all that’ and that’s great But too many organisations don’t I am still surprised the out consulting that things I think as basic are new an radical Hope today this is not the case, as anyone giving up weekend is engaged But just because you know it is a good idea does not mean you do it
  • #33 Your safety net All tried a test/refactor and messed it up and need to go back Today you would consider this ‘table stakes’ But not always present (IT and scripts) True to say Git is now the defacto standard irrespective of provider But it does everyone know how to use the tools ( True in Git, maybe more than any other scc as there are less options? This is particularly true for students new hire – there is not much source control taught Source Control if enabled can be part of protection from human error Enforcing rules e.g. branching/merge – requiring pull requests – not a git feature but by providers More of that later….
  • #34 Does not have to be technology – but you need to know what to do and in what order All systems trying to be as good as a postit notes Good if it can be linked to source control for audit This is where process come in Waterfall vs Agile Scrum Kanban Putting arguments side over process, all tend to stress Short delivery cycles Focused teams/delivery Close relationship with client
  • #35 Build has always been important Story me in 80s writing Pascal for HP Mini were doing night builds One of the first appearances in Kent Beck in XP books of whole system Today I would hope we do better Make CI Heart beat of a project Every commit (or at least PR) should be tested it can be build THIS IS IRRESPECTIVE OF LANGUAGE Just because you don’t need to compile do still Lint or equivalent So much can be hung off this a team/project matures (we will keep coming back to it)
  • #36 Defined types of CD Continuous delivery automates deployment of a release to an environment for staging or testing While continuous deployment automatically deploys every release through your pipeline (including testing) and to production. Continuous deployment is an extension of the continuous delivery concept CD is enabled By small releases Feature flags help Build trust on how you can release Like CI it is a core technology that can have other items added into it
  • #37 A major barrier to innovation has always be time to provision hardware The time form ‘loading dock to machine room’ Story – worked project to move updates measure in months to hours Normally when we talk about IAC we are meaning with cloud Where the rental model means it is easy to buy only what you use Vendor agnostic like Teraform, or vendor ARM/Bicep Should be able to ‘stamp’ out a complete instance of your system Lint in CI Deploy in CD But if on prem still can use some of these technologies if running VMWare Hyper V We use Lability to automated provision of complete enviroments on Hyper-V
  • #38 Can be at any level from Unit to UX Invest in the lowest level tests that work for your needs Wire into CI and CD
  • #39 Loads that can be done in CI/CD Range of Tools SonarCloud Synk GitHub Advanced Security Vulnerabilities tracking Dependabot
  • #40 Documentation can mean many thing. The danger is it is an after thought Need to make up to date and easy to consume (be in the right place) Automate its product as part of CI/CD process Use example of my extension
  • #41 Core to agile process Can try out any part of the system to improve it Embrace your inner toddler Story of how adding CI?CD makes exploration cheaper
  • #42 Team and C level management
  • #43 Though can consider the items I have called table stakes – the lower level? Maybe look at them as levels of maturity There is a mapping but it is open to teams view as which is correct for them,
  • #44 Supposedly said by Peter Drucker the management guru in 2006 (origin in dispute) IBM, General Motors, and Procter & Gamble – basically created moder enterprise structures Culture tends to comes first No good being able to release each day, but only if management/business only allows quarterly Looking from the other end Alistair Cockburn ‘Crystal Clear: A Human-Powered Methodology for Small Teams’ talks about a system needs to be Habitable Sneak stuff in – was there a name for that