2016-04-26 4 views
2

Ich habe eine teamcity-Pipeline mit mehreren Build-Konfigurationen. Einige von ihnen benötigen eine Datenbank zum Testen. Bis jetzt habe ich einen Pool von Datenbankschemata, die in TeamCity als freigegebene Ressource konfiguriert sind. Jede Build-Konfiguration sperrt ein Schema und stellt die DB als ersten Schritt dort bereit. Jetzt hätte ich gerne eine Build-Konfiguration, die eine Ressource sperrt, db bereitstellt und dann von anderen Builds in der Pipeline verwendet werden soll.Eine Sperre für die freigegebene Ressource in der TC-Pipeline (zwischen den Build-Konfigurationen) beibehalten

Etwas wie:

deploy_db -> build_binaries -> unit tests 
          -> integration tests 
          -> ... other tests 

I-Test parallel baut laufen möchten. Dafür müsste ich ein Schema in deploy_db sperren und dann eine Sperre an andere Builds übergeben. Ist es möglich?

Vielleicht könnte ich einen beliebigen Wert aus Schemapool in deploy_db sperren und dann in anderen Buildkonfigurationen% dep.deploy_db.locked_schema% verwenden, um einen bestimmten Wert zu sperren.

Aber dann ist es wahrscheinlich möglich, dass Build für einen anderen Zweig deploy_db auslösen kann, die das gleiche Schema sperren könnte (mit "jeden Wert sperren")? Ich meine, es ist wahrscheinlich möglich, wenn es nach deploy_db beendet wird und bevor der nächste Build die Sperre ausführt? Nach der Veröffentlichung von deploy_db und vor der erneuten Erfassung würde es kurze Zeit dauern, bis die Sperre aufgehoben wird. Technisch könnte ein anderer Build in dieser Zeit denselben Wert sperren. Kann das verhindert werden?

Zum Beispiel kann ich einen Wert im ersten Build von einer Pipeline sperren und in der letzten freigeben?

Antwort

Verwandte Themen