zaterdag 27 februari 2016

Tosca > Ideas to manage your artefacts

A fully developed TA framework based on Tosca can potentially have many artefacts, such as:
  • The Tosca version
  • The Tosca repository (One would almost forget!)
  • Tosca customizations in the form of .dll-s:
    • Special Execution Tasks (SETs)
    • Adapter Customizations
    • Add-ins
  • ODBC drivers for DB access
  • Tosca (.tcs) scripts to run Tosca via the commandline
  • PowerShell scripts which call the .tcs scripts
I am currently faced with the challenge of getting several scrum teams to start using a Tosca TA framework on a daily basis. This means that the framework userbase will increase from 2-4 TA project members which are intimately familiar with the product to 10-20 testers and devs which aren't. And, oh yeah, somewhere amidst all that a CI/CD pipeline will also be set up which will run Tosca scripts as part of its automated testing suite.

We clearly need:
  • A way to 'push' artefact updates to the (vastly increased) userbase
  • Version control on the artefacts
After a bit of research we have decided to go with the "Chocolatey, NuGet, Artifactory, OneGet" stack of technologies to try and implement this. I have next to no experience with these technologies so this should be interesting.

(Note: The technology of our company is predominantly Microsoft based (Windows desktops, Windows servers, C# .NET applications) which has been taken into account when choosing these tools.)

Update:
Ok, let's see if we can get a proof of concept going. We're going with:

  • A powershell script which calls an...
  • Executable which in turn calls
  • UniversalGreeter.dll which reads the target of its greeting from a
  • universalgreeter.config file which contains the word 'World'
Goal #1
  • Squeeze all that in one NuGet (using OneGet?)
  • Commit the NuGet to Artifactory
  • Pull the NuGet from Artifactory for a local install
  • I have as yet no idea where Chocolately comes into play here
Goal #2
  • Same as Goal #1 but with added version history
  • Including being able to install olders version (a rollback scenario)