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

Multi-Environment Build & Deploy of uPortal using Maven & Jenkins

Multi-Environment Build & Deploy of uPortal using Maven & Jenkins

University of Wisconsin - Madison is using Maven and Jenkins to manage build and deployment of uPortal and portlets across five different environments from one central UI. The WAR Overlay feature of the Maven WAR Plugin is used to inject environment specific configuration into uPortal and each portlet. Jenkins automatically builds and deploys portlets in the development and test environments when changes or new releases are detected reducing developer overhead and turnaround time. A key-pair based token encryption tool is used to securely store credentials a version control system allowing them only to be decrypted at build time on the target server.

Eric Dalquist

June 03, 2013
Tweet

More Decks by Eric Dalquist

Other Decks in Programming

Transcript

  1. May 21, 2013 Multi-Environment Build & Deploy of uPortal using

    Maven & Jenkins Tim Levett & Eric Dalquist 1 Monday, June 3, 13
  2. May 21, 2013 Overview • Components – Jenkins – Maven

    & Maven plugins – Token Encryption • Commit/Build/Deploy Process • Overlay Process • Environment Differences 2 Monday, June 3, 13
  3. May 21, 2013 Components - Jenkins • Runs Maven Builds

    • Deploys Code • Updates Maven Repositories • Notifies team of failed builds via IM/Email • Pushes relevant Jira issues through workflow • Capable of much much more... (plugins) 3 Monday, June 3, 13
  4. May 21, 2013 Components - Maven • Nexus Maven Repository

    • Stores SNAPSHOT and release builds • Can create our own group ids and artifacts 5 Monday, June 3, 13
  5. May 21, 2013 Components - Token Encryption • Encrypts Strings

    and Files • Easy web interface • Maven plugin for decryption • Create new keys • CL interface 6 Monday, June 3, 13
  6. May 21, 2013 High Level Overview - Jenkins Posts a

    new snapshot to maven repository 13 Monday, June 3, 13
  7. May 21, 2013 High Level Overview - Jenkins test overlay

    build detects a new snapshot and builds 14 Monday, June 3, 13
  8. May 21, 2013 High Level Overview - Jenkins Notices a

    new test overlay build artifact and builds uPortal 15 Monday, June 3, 13
  9. May 21, 2013 High Level Overview - New Version of

    the Portlet now in place 17 Monday, June 3, 13
  10. May 21, 2013 ENVIRONMENT DIFFERENCES Dev & Test vs QA

    & Production 23 Monday, June 3, 13
  11. May 21, 2013 Environment Differences - Dev & Test -

    • Allows Snapshot builds (1.1.0-SNAPSHOT) • All developers can commit to the overlay projects • Setup for fast commit -> build -> deploy • Rolling restarts happen with every build 24 Monday, June 3, 13
  12. May 21, 2013 Environment Differences - QA & Prod -

    • No Snapshots (1.1.0) • Only admins can commit to the overlay projects • Rolling restarts are scheduled 25 Monday, June 3, 13