Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JUC ISRAEL 2013

JUC ISRAEL 2013

Jenkins User Conference 2013, Sfayim Israel

Haggai Philip Zagury

June 06, 2013
Tweet

More Decks by Haggai Philip Zagury

Other Decks in Programming

Transcript

  1. .Net Open Source CI & CD with Jenkins 06.06.2013 JUC,

    Israel Haggai Philip Zagury, #Jenkinsconf @Jenkinsconf Jenkins User Conference
  2. Haggai Philip Zagury DevOps / PS Engineer “ I am

    a member of Tikal's ALM group. With over 5 members, we meet, share, contribute and code together on a monthly basis whoami ?
  3. Today we are SURE that we made the right decision,

    choosing Tikal “ “ Guy Ben-Porat, Development Manager “ExLibris”
  4. 1600+ Cummunity Members 150+ Blog posts last year 460+ Meet

    up Members 12+ Years old 90+ Tikal’s Experts Team 100+ Projects Last Year TIKAL BY NUMBERS
  5. The keys to success • Implementing CI’s “ 10 commandments

    “ • Dependency Mechanism • Code Quality & analysis
  6. So how to CI & CD for with CI DM

    CQ CD Hopefully answer them one by one …
  7. Continuous Integration The “10 Commandments “ • Maintain a code

    repository (central / shared) • Automate the build • Make the build self-testing • Everyone commits to the baseline every day • Every commit (to baseline) should be built • Keep the build fast • Test in a clone of the production environment • Make it easy to get the latest deliverables • Everyone can see the results of the latest build • Automate deployment
  8. • Maintain a code repository (central / shared) • Automate

    the build • Make the build self-testing Achieving CI
  9. • Maintain a code repository (central / shared) • Automate

    the build • Make the build self-testing • Everyone commits to the baseline every day • Every commit (to baseline) should be built Achieving CI
  10. • Maintain a code repository (central / shared) • Automate

    the build • Make the build self-testing • Everyone commits to the baseline every day • Every commit (to baseline) should be built Achieving CI You could probably achieve CI with TFS – we will see later why it’s not enough ….
  11. So how to CI & CD for with CI DM

    CQ CD MSBUILD NCOVER FXCOP Nant & more
  12. Dependency Management 2nd and 3rd party build & development integration

    Apache / Maven have tried in the past … Reference from SlaeSforce 2008: http://www.slideshare.net/sgreene/dependency- management-in-a-large-agile-environment-presentation A maven .NET implementation Soon to be terminated … Tip: Don’t Push Binaries To Source Control, Use NuGet Wisely Instead
  13. What is NuGet NuGet is a Visual Studio extension that

    makes it easy to install and update third-party libraries and tools in Visual Studio.
  14. From the comfort of NuGet “magic” – the omu.* files

    are references imported by the nuget.exe
  15. Nuget workflow 1. Check for update 2. install to pkg

    dir [ if update needed ] 3. Regular compile sequence [ msbuild ]
  16. NuGet workflow Build Package <?xml version="1.0" encoding="utf-8"?> <package> <metadata> <id>Microsoft.Silverlight.Testing</id>

    <version>4.0.40413.2012</version> <authors>hagzag</authors> <owners>hagzag</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>NuGet package</description> </metadata> </package> nuget pack command: nuget.exe pack <.nuspec file>
  17. NuGet workflow Build Push/Update Package nuget push command: nuget push

    <path to .nupkg> -s <artifact server url> -ApiKey <ApiKey>
  18. Home Grown solution • No ACL / AUTH • Friendly

    URL ? • Friendly UI ? • More …
  19. Jenkins NuGet Plugin Trigger a build based on dependency change

    in NuGet – Check every … Java Guys are saying so what …, Maven does the same thing … 
  20. So how to CI & CD for with CI DM

    CQ CD MSBUILD NCOVER FXCOP Nant & more
  21. So how to CI & CD for with CI DM

    CQ CD MSBUILD NCOVER FXCOP Nant & more
  22. So how to CI & CD for with CI DM

    CQ CD MSBUILD NCOVER FXCOP Nant & more