Montag, Juni 1, 2020

Wie kann ich das überschreiben der <default> branch-name in TeamCity 7.1 verwenden von Git-Verzweigungen unterstützen?

Habe ich einen CI-build ziehen Funktions-Zweige von Github und Gebäude/Verpackung Sie in einen lokalen Ordner mit einem Ordner Namenskonvention basiert auf dem Projekt -, branch-und die build-Nummer.

Benannten Zweige (feature1, feature2) das funktioniert Super.

Das problem ist, dass wenn ich einen commit auf dem master, TeamCity macht teamcity.bauen.Niederlassung als <default> – was bedeutet, dass, wenn die build-Schritt erweitert

E:\Packages\MyProject\%teamcity.build.branch%\

es ist Ende mit E:\Packages\MyProject\<default> – die dann den Absturz des build-Schritt, da es kein Gültiger Windows-Pfad.

Ich kann finden Sie in der master-branch name in der voll-qualifizierte build-parameter:

teamcity.build.branch                         <default>
teamcity.build.checkoutDir                    C:\TeamCity\BuildAgents\agent-mulder\work\2151838a7933464d
teamcity.build.default.checkoutDir            2151838a7933464d
teamcity.build.id                             16347
teamcity.build.vcs.branch.github_myproject    refs/heads/master

idealerweise aber ich brauche, um master als teamcity.bauen.Niederlassung für den Einsatz in meinem build-Schritte.

Kann ich mich verwandeln die parameter zur Laufzeit? Überschreiben Sie das Verhalten? Ich habe sogar versucht die Einstellung der VCS-Niederlassung Namen DO_NOT_USE in der Hoffnung, dass der „master“ würde nicht mehr mit dem Standard – aber dies scheint nicht zu funktionieren.

  • Ich habe ein ticket für Ihre YouTrack Projekt für TeamCity, leider ist es gerade betrachtet wird, als eine Frage, kein usability-problem, aber wenn wir mehr Leute kommentieren, kann es helfen: youtrack.jetbrains.com/issue/TW-23699
  • warum nicht fügen Sie eine bedingte, um das build-Skript die Karten "<default>" zu "master"?

4 Kommentare

  1. 4

    In teamcity 7 einfach %vcsroot.Zweig%
    dass die Rendite entwickeln.

    In meinem Fall habe ich

    %MajorVersion%.%MinorVersion%.%PatchVersion%-%vcsroot.branch%
    

    Die in der build-Parameter.
    Das Zahlenformat %BuildFormatSemVer%, das ist der Stoff, oben und . {0}

    %BuildFormatSemVer%.{0}
    

    Gibt

    #1.0.0-develop.4
    
    • Hatte das gleiche problem. Scheint zu funktionieren groß, so weit, alle Szenarien, in denen es nicht so funktioniert wie %teamcity.bauen.Zweig% würde?
    • feature-branches (vorausgesetzt, Sie bauen Sie wie alles andere auch) würde zu Problemen führen, aufgrund der /
    • Mithilfe der Klammern in der Branche Spezifikation helfen? Mindestens %teamcity.bauen.Zweig% verwendet, dass nur ein Teil des namens. Zum Beispiel: +:refs/heads/hotfix/(*) +:refs/heads/release/(*)
    • Ich habe in dieser Einrichtung gitflow; dies war ein guter start Punkt tigranetworks.co.uk/blogs/electricdreams/… um ehrlich zu sein fand ich die TeamCity Dokumentation ein bisschen hit & miss. Leider ist meine große Zeit-Investition ist jetzt bei der alten Firma ><
    • Diese Lösung funktionierte nicht für mich. Wenn ich %vcsroot.Zweig%, ich bekomme immer den Namen der default-Zweig, auch beim Bau anderer Branchen.
    • Sie müssen, um die Niederlassung Skillung ala stackoverflow.com/a/22384276/52912
    • Danke Chris, das habe ich versucht so gut und bekam das gleiche Ergebnis. Ich habe auch versucht, die teamcity dot build dot branchParameter dot useDisplayName Eigenschaft für teamcity, und dass nicht die einen Unterschied machen entweder. Schließlich habe ich nur noch einen build-Schritt, das strahlt ##teamcity[buildNumber „] und das funktionierte gut für jetzt.
    • Ich habe diesen Vorschlag und es funktioniert. Allerdings habe ich nur ersetzen Sie den Zweig mit vcsroot.Filiale wenn der ursprüngliche Zweig zurückgegeben „<default>“.

  2. 3

    Nicht ideal, aber ich war in der Lage, um es durch die Schaffung einer neuen Niederlassung in git mit dem Namen „teamcity“ und einstellen, dass als default-Zweig in TeamCity, scheint es, dass der Zweig tatsächlich vorhanden, da es funktionierte, habe ich den Zweig, aber nicht, wenn Sie gerade in eine gefälschte Namen.

    Hoffentlich Sie tatsächlich dieses Problem zu lösen, denn das ist definitiv ein hack.

  3. 2

    Wir haben dieses problem mehrere Male beim erstellen von Rohrleitungen. Es ist die am meisten sichtbar, wenn Sie versuchen, um automatisch zu erstellen-feature und release-Zweigen, die mit dem Gitflow-workflow. Das, was wir tun konnten, war der Einsatz von teamcity.build.vcs.branch.github_myproject und einem regulären Ausdruck, in sed zu bereinigen, die Zeichenfolge, Wann immer wir es nutzen wollen. Dies ist vor allem auf Wasserzeichen Artefakte für debugging-Zwecke.

    Das größere Problem, zumindest für uns, ist, dass die TeamCity 7.1.1 version nicht automatisch das Feuer aus der Abhängigkeit baut für alles, was nicht der Standard zu bauen, die in der VCS-root. Offensichtlich ist dies eine große Schmerzen zeigen, wie wir sind, jetzt gehen zu müssen, klicken Sie auf manuell in das tool. Wir haben noch nicht herausgefunden, eine saubere Art und Weise zu bekommen, um dieses andere als hooks in git die Nutzung der HTTP-API-Aufruf aus, um die richtige build-Schritt.

  4. 1

    Ich weiß nicht, ob dies war bisher beantwortet oder nicht mehr relevant.

    In TeamCity 10.0.2 erstellen Sie einen benutzerdefinierten parameter ein, wie %Git.Referenz%. Wenn Sie benötigen ein ziehen (oder schieben) von TC, git, wählen Sie „ref/Kopf/Dev“ oder „ref/Kopf/yourbranch“. Verwenden Sie diese in Ihrem ‚VCS-root‘ – Referenz.

Kostenlose Online-Tests