active commerce product build automation - …€¦ · active commerce product build automation ......
TRANSCRIPT
![Page 1: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/1.jpg)
Active Commerce Product Build AutomationNick Wesselman
April 26, 2016
![Page 2: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/2.jpg)
Or…
“Anything is possible with enough time and
PowerShell.”
![Page 3: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/3.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 3
• What is Active Commerce?
• Goals and challenges of automating our product builds
• How we did it
• What does it look like
Agenda
![Page 4: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/4.jpg)
What is Active Commerce?
![Page 5: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/5.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 5
Native Sitecore E-commerce
![Page 6: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/6.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 6
Quick to Market via Theming
![Page 7: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/7.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 7
Flexible Architecture
![Page 8: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/8.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 8
Integration and Extension
![Page 9: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/9.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 9
Targeted at the Mid-market
F100
Oracle/ATG
B2C B2B
SM
B
SAP/Hybris
JDA
Micros Retail
IBM
eBay
Enterprise
Demandware
Digital River
NetSuite
EPiServer
Magneto
NetSuite/Venda
Shopify
InSite
Sitecore
Commerce
![Page 10: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/10.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 10
Version Compatibility
![Page 11: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/11.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 11
Customers
![Page 12: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/12.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 12
Partners
UNITED STATES CANADA NORWAY
AUSTRALIA
![Page 13: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/13.jpg)
For more information
Stop by our table during lunch or
one of the breaks today
http://help.activecommerce.com
13
![Page 14: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/14.jpg)
![Page 15: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/15.jpg)
Automation Challenges and
Goals
![Page 16: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/16.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
What was our product build process?
![Page 17: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/17.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 17
Everything in one Solution
![Page 18: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/18.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 18
Supporting multiple Sitecore versions
master (SC72)
master-SC75
master-SC80
![Page 19: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/19.jpg)
19
![Page 20: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/20.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 20
• Reduce time and error setting up environments (development, testing)
• Reduce time and error creating product releases
• Support multiple versions of Sitecore without forking /branching
• Allow plugins to be versioned and released independently
• Automation of testing
Goals for Automation Project
![Page 21: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/21.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 21
Setup Development Environment
• One PowerShell command for any Sitecore Version
• Easily toggle between Sitecore versions
• No forking for version-specific Sitecore logic
Product and Plugin Debug Builds
• On every checkin
Setup Test Environments
• Via configuration file / PowerShell command
Desired Process
![Page 22: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/22.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 22
Development Environment
Product Build
Test Environment
Processes
Source
CodeLocal Install
Source
CodeBuild Install
Sitecore
Package
Sitecore
PackageTest Install
![Page 23: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/23.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 23
• Items are important
• Items need to be deployed
• Installing Sitecore and dependent modules
• Build dependencies / lack of Sitecore nuget
• Maintenance tasks (publishing, links database, index rebuild)
Challenges – Sitecore build automation
![Page 24: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/24.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 24
• Supporting and testing on multiple versions of Sitecore
• Creating Sitecore Zip packages for product installation
• Additional installation steps
• Plugin builds that are dependent on product builds
• Integration tests (NUnit Web Test Runner)
Challenges – Active Commerce build automation
![Page 25: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/25.jpg)
25
![Page 26: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/26.jpg)
How we did it(and what it can
do for you)
![Page 27: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/27.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
Visual Studio
MSBuild
Team Development for Sitecore
NUnit Web Test Runner
PowerShell
PowerShell
Octopus Deploy
Azure Virtual Machines
Azure Blob Storage
Atlassian Bamboo
PowerShell
PowerShell
ProGet
SlowCheetah
Sitecore Instance Manager
Sitecore PowerShell Extensions
PowerShell
PowerShell
Tools
![Page 28: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/28.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• Separate solution for core product and each plugin
• Nuget for all dependencies
• Build properties for Sitecore version differences, populated by PowerShell scripts
• “Templated” solution structure for all plugins
What it can do for you
• Simplify dependency management via nuget
• Automate build activities using MSBuild
Tools – Visual Studio, Nuget and MSBuild
![Page 29: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/29.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 29
Using Build Properties
![Page 30: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/30.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 30
Using Build Properties
![Page 31: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/31.jpg)
31
![Page 32: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/32.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• Source control of serialized items
• Building Update Packages for environment setup and product builds
• Dev Root > Web Root Builds
• Codegen of content Templates for Glass Mapper
What it can do for you
• Allow distributed Sitecore development
• Automatic and GUI-based item synchronization with your Visual Studio solution
• Environment configuration replacement / management
• Automated validations against checked in templates and items
• Post-deployment operations (Publish, Links database, reindexing)
• Item merging
• Content file sync
• And much more…
Tools – Team Development for Sitecore
![Page 33: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/33.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• Private nuget repository for Sitecoreassemblies and other dependencies not on public nuget servers
• Debug and release product build references for plugins
• Symbol server for debugging product issues with plugins
• Version-specific Sitecore files and Web.config
• Used with a customized Sitecore NugetPackage Generator (Alen Pelin)
What it can do for you
• Internal nuget server (or npm, or Bower, or chocolatey…)
Tools – ProGet
![Page 34: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/34.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 34
Nuget Packages
![Page 35: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/35.jpg)
35
![Page 36: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/36.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• Transform base Sitecore Web.config to a Web.config with Active Commerce additions for specific Sitecore versions
• Transform Active Commerce configuration files for specific Sitecore versions
• Transform Sitecore + Active Commerce Web.config with plugin-specific adds
What it can do for you
• XDT transforms for any config file
• Transform “unpatchable” base SitecoreWeb.config with your additions, before adding build-specific XDT transforms
Tools – SlowCheetah
![Page 37: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/37.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 37
SlowCheetah Use
![Page 38: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/38.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• Execute NUnit tests with a full Sitecore and HTTP context
• Some legacy tests that should become unit tests
• Some Sitecore/SES dependencies that make unit testing difficult
• Some true integration tests
• Results available as JSON – pull in via NUnitTestCaseSource
What it can do for you
• Run integration tests
• Test code w/ Sitecore dependencies when FakeDB or similar tools not possible/practical
Tools – NUnit Web Test Runner
![Page 39: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/39.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 39
JSON Test Results
![Page 40: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/40.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• Invoke via custom PowerShell wrapper to create Sitecore instances for development, product build, and testing
• Install Sitecore Zip packages
• Customize SIM pipelines with PowerShell-based steps
• Redirect SIM output to the shell
What it can do for you
• Manage Sitecore instances
• Install Sitecore Zip packages
• Backup/Restore Sitecore instances
• Export/Import Sitecore instances
• Tail Sitecore logs
• Generate Sitecore nuget packages
• Install MongoDB
• and more…
Tools – Sitecore Instance Manager
![Page 41: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/41.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 41
Wrapping and Extending SIM
![Page 42: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/42.jpg)
42
![Page 43: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/43.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 43
• Invoking SIM classes directly
• Initializing SIM without its GUI
• Passing data to SIM steps via environment variables
• Deleting / cleaning up instances requires extra work
CAUTION: This turned out pretty hacky
![Page 44: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/44.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• SPE Remoting allows us to execute logic on a remote Sitecore instance
• Publishing
• Links DB Rebuild
• Index Rebuilds
• Initializing the Active Commerce database
• Script-based builds of Sitecore Zip packages
What it can do for you
• Change your life
• Content maintenance / manipulation
• Custom reporting
• Data exports / imports
• Content Editor extensions (context menu, ribbon buttons, gutter…)
• Automation of almost anything inside Sitecore
Tools – Sitecore PowerShell Extensions
![Page 45: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/45.jpg)
45
![Page 46: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/46.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 46
Sitecore PowerShell = MAGIC
![Page 47: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/47.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• Package our automation scripts, SIM, and build artifacts
• Securely deploy to product build or test environment using “tentacles” installed on the servers
• Invoke a deployment PowerShell script to create the environment
• Monitor script output
What it can do for you
• Deployment automation
• Continuous Deployment
• Automate IIS and much more
• Blue-green deployment
• Integrate with your existing build system
Tools – Octopus Deploy
![Page 48: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/48.jpg)
48
![Page 49: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/49.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• VMs for product build and test environments
• Multiple environments per VM
• Scripted to shut down / start up only during business hours
• Install and run Sitecore from Temporary Storage (much faster)
What it can do for you
• VM option when you can’t run PaaS
Tools – Azure Virtual Machines (IaaS)
![Page 50: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/50.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• Cloud file storage for build dependencies and artifacts
• Sitecore and module installers, license files
• Base product Sitecore Zip packages (debug and release)
• Plugin Sitecore Zip packages (debug and release)
• AzCopy provides scriptable upload/download including delta synchronization
What it can do for you
• Serving images or documents directly to a browser
• Storing files for distributed access
• Streaming video and audio
• Performing secure backup and disaster recovery
• Storing data for analysis by an on-premises or Azure-hosted service
Tools – Azure Blob Storage and AzCopy
![Page 51: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/51.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• Glue everything together
• Functions for common developer tasks, build steps
• Structured into a PowerShell Module
• Scripts managed in their own git repository
• PowerShell Tools for Visual Studio
• JSON files for global and instance configuration
What it can do for you
• What can’t it do?
Tools – PowerShell PowerShell PowerShell
![Page 52: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/52.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 52
JSON Configuration
![Page 53: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/53.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 53
JSON Configuration
![Page 54: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/54.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
How we use it
• Triggered and scheduled builds
• Most steps just execute PowerShell
• Build dashboard
• Build reports in HipChat
What it can do for you
• A nice build / continuous integration server if you are already drinking the Atlassian kool-aid
Tools – Atlassian Bamboo
![Page 55: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/55.jpg)
55
![Page 56: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/56.jpg)
What’s it look like?
![Page 57: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/57.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
Setup a new development environment for a Sitecore version
Initialize-AcDev -SitecoreVersion 8.1
Switch the active Sitecore version
Switch-SitecoreVersion -SitecoreVersion 7.2
The same for plugins
Initialize-AcPluginDev -ActiveCommerceVersion 3.3 -SitecoreVersion 8.1
Switch-AcPluginVersion -ActiveCommerceVersion 3.3 -SitecoreVersion 7.2
Install a new Active Commerce instance based on a predefined config
New-AcInstance -ConfigPath .\AC33SC81.json -InstanceName Sherpa
PowerShell Commands
![Page 58: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/58.jpg)
58
![Page 59: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/59.jpg)
Development Environment
Setup
![Page 60: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/60.jpg)
![Page 61: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/61.jpg)
Product Build in Bamboo
![Page 62: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/62.jpg)
![Page 63: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/63.jpg)
Test Environment Setup
![Page 64: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/64.jpg)
![Page 65: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/65.jpg)
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
• TeamCity (Build templates for plugins)
• Enhance SIM for easier scripting
• Move version-specific Sitecore logic to its own assembly
• Docker containers for product builds
• Selenium integration tests
Future Improvements
![Page 66: Active Commerce Product Build Automation - …€¦ · Active Commerce Product Build Automation ... Oracle/ATG B2C B2B SM B SAP/Hybris JDA ... New-AcInstance -ConfigPath .\AC33SC81.json](https://reader030.vdocuments.mx/reader030/viewer/2022021618/5b86b4577f8b9a212e8cbe58/html5/thumbnails/66.jpg)
Acknowledgements
Pavel Veller
Brian Beckham
Adam Najmanowicz
Michael West
Vincent Séguin
Alen Pelin
Alexander Doroshenko
Jorge Lusar
Sean Kearney
Charles Turano
Alex de Groot
and more…