Ich war mit dem gleichen Problem fest und stimmte für das von Evgeny erwähnte Thema. Eine Lösung, die wir, wie erwähnt, sergiussergius, betrachteten, bestand darin, einen letzten Schritt in der Build-Step-Sequenz hinzuzufügen, um manuell die nächste Build-Konfiguration auszulösen, indem benutzerdefinierte Build-Parameter mit der REST-API übergeben werden. In diesem Fall verlieren wir jedoch die Informationen zur Build-Chain. Mit TeamCity 9.x konnte ich einige Dinge in der REST-API ausprobieren und eine Lösung implementieren, die es ermöglicht, das auslösende (Vorgänger-) Build und seine Parameter vom ausgelösten (untergeordneten) Build abzurufen. unter Verwendung der Umgebungsvariablen werden von Teamcity Das erste, was wir tun, ist die aktuelle Build erhalten:
https://<host>/httpAuth/app/rest/builds/number:<env.BUILD_NUMBER>,buildType:(name:<env.TEAMCITY_BUILDCONF_NAME>,project:<env.TEAMCITY_PROJECT_NAME>)
In der Antwort von dem REST-API, haben wir ein /build/ausgelöst Tag die Informationen über den Auslöser enthält . Es sieht aus wie dieses
<triggered type="unknown" details="##triggeredByBuildType='<triggering-build-configuration-internalId>' triggeredByBuild='<triggering-build-number>'" date="20160105T190642+0700"/>
Die sieht aus wie btxxx für uns. Von ihm können wir die auslösenden-build (Vorfahre) unter Verwendung der folgenden Anforderung an die REST-API zugreifen:
https://<host>/httpAuth/app/rest/builds/number:<triggering-build-number>'4,buildType:(internalId:<triggering-build-configuration-internalId>1,project:name:<env.TEAMCITY_PROJECT_NAME>)
aus der Antwort können wir die Vorfahr-build-Parameter-Werte, und legen Sie es in der aktuellen bekommen Verwendung bauen:
echo "##teamcity[setParameter name='env.ENV_AAA' value='aaaaaaaaaa']")
Hinweise:
- diesen Beitrag Referenzteamcity Version 7.x. Ich habe dies mit TeamCity Version 9.X gemacht und konnte es nicht mit einer früheren Version versuchen. Ich weiß nicht, ob die in meinem Beitrag genannten REST-API-Aufrufe in den vorherigen Versionen ähnlich sind.
- In dieser Lösung befinden sich die Build-Konfiguration des Vorfahren (die den Build auslöst) und die Build-Konfiguration des Kindes (die ausgelöste) im selben Projekt. Ich habe den Test nicht mit Build-Konfigurationen in zwei verschiedenen Projekten durchgeführt: Ich würde erwarten, dass das Tag "trigger" Informationen über das Projekt des Vorfahren liefert. Es wäre schön, wenn jemand den Test machen könnte.
Ich hoffe, diese Lösung kann helfen!
Schöne kleine Powershell suff. Aber das kann keine Entschuldigung für JetBrains-Jungs sein, diese Funktion nicht in Teamcity selbst zu haben. –