2017-05-10 2 views
2

Ich habe Teamcity derzeit Setup, um eine Batch-Datei auszuführen, führt diese Batch-Datei einen Fortify-Scan. Es scheint, dass die Umgebungsvariable "PATH" bei einem Versuch korrekt geladen wurde und mit dem Scan begonnen hat. Beim nächsten Build-Versuch konnte die Batch-Datei keine der ausführbaren Dateien finden (sourceanalyzer.exe). Beim Betrachten der benutzerdefinierten Parameter scheinen verschiedene Umgebungsvariablen geladen worden zu sein, als der vorherige Build-Versuch. Es sieht so aus, als ob die Systemumgebungsvariablen bei dem erfolgreichen Versuch geladen werden und dann eine Benutzerumgebungsvariable, die bei dem fehlgeschlagenen Versuch geladen wird. Gibt es eine Möglichkeit, die Umgebungsvariable PATH im Agenten permanent so festzulegen, dass nur die Systemumgebungsvariablen geladen werden?Teamcity nicht laden Umgebungsvariablen - Fortify Automatisierung

UPDATE:

ich mehrere Dinge ausprobiert haben, enthalten in einer Variablen Fortify Umgebung vorbei, die Teamcity erlaubt die Überprüfung zu starten läuft. Es scheint jedoch, als ob ich einen weiteren Haken mit Fortifys Plugin für vs2015 getroffen hätte. Der neue Fehler besagt, dass das Plugin nicht gefunden werden kann. Ich nehme an, das liegt daran, dass die Pfade fest codiert sind? Da TeamCity die Systemumgebungsvariablen nicht verwendet, muss ich sie übergeben, damit TeamCity diese Verzeichnisse findet. Gibt es eine einfachere Möglichkeit, die Batch-Datei zum Laden der Systemumgebungsvariablen zu verwenden, um harte Codierungswege zu vermeiden? Würde setlocal in der Batch-Datei helfen, diese Systemumgebungsvariablen zu laden, also kann ich einfach sourceanalyzer ohne Erstellen von Umgebungsvariablen oder harten Codierungswegen aufrufen?

+0

Sind Sie sicher, dass die Builds auf demselben Agenten ausgeführt werden? Das riecht nach Agentendifferenzen zu mir. – sferencik

+0

@sferencik Ja, sie laufen auf demselben Agenten. –

Antwort

3

IIRC, Teamcity wird Sie fragen, ob Sie den Build Agent auf dem System Konto oder dem Benutzerkonto installieren möchten. Standardmäßig wählt es das System-Konto aus und solange Sie keine GUI-Apps ausführen, werden Sie den Unterschied nicht bemerken ... bis so etwas passiert. Wenn Fortify GUI-basiert ist, installieren Sie den Build-Agent für das Benutzerkonto neu und ignorieren Sie Folgendes. Andernfalls ...

Wenn Sie Ihre PATH Variablen über die erweiterten Systemeinstellungen (Systemsteuerung) einstellen, gibt es zwei Bereiche, einen für den Benutzer und einen für das System. Hier können Sie die System Variablen überprüfen, um sicherzustellen, dass sie korrekt sind.

Was ich in der Regel tun ist, um einen neuen Schlüssel erstellen, sagen FORTIFY_PATH und prepend %FORTIFY_PATH% zum SystemPATH variabel. DANN STELLEN SIE IHRE MASCHINE NEU STARTEN. Der Pfad wird erst korrekt aktualisiert.

Melden Sie sich als nächstes mit PSExec: https://superuser.com/a/596395 am Systemkonto an und versuchen Sie, Ihre Tools über diese Eingabeaufforderung auszuführen, um zu überprüfen, ob sie in der Umgebung des Erstellungsagenten funktionieren. Ich hatte einmal Probleme, ein SVN-Skript zum Hochladen zu bekommen, bis ich mich im System-Konto anmeldete und mein SVN-Passwort zur Verfügung stellte. Einige Einstellungen werden in% APPDATA% gespeichert, was sich vom Benutzerkonto unterscheidet.

Wenn Sie Fortify nicht über die Eingabeaufforderung System ausführen können, sollten Sie Ihren Build Agent wahrscheinlich erneut in Ihrem Benutzerkonto installieren. Oder installiere Fortify (falls möglich) auf das Systemkonto.

Wenn Sie TeamCity-Build-Agents konfigurieren, überprüfen Sie das Agentensystem und die Umgebungsvariablen. Gehen Sie hierzu auf Agents->Agent->Agent Parameters oder den Pfad /agentDetails.html?id=1&tab=agentParameters&kind=env auf Ihrem Server.

Nachdem Sie die Parameter geändert haben, starten Sie den Agenten neu oder starten Sie den Computer des Agenten neu.

+0

Vielen Dank für Ihre Antwort! Die richtige Umgebungsvariable ist im Systemkonto aufgeführt. Ich konnte SourceAnalyzer auch mit PSExec ausführen, aber es scheint, als ob% APPDATA% auf die falschen Fortify- und Plugin-Versionen zeigt. Gibt es eine Möglichkeit,% APPDATA% zu aktualisieren, damit das System auf die neue Version verweist? –

+1

** NICHT ** ändern '% APPDATA%', um woanders zu zeigen. Ich meine, es sei denn, du magst diese Maschine nicht mehr. Prüfen Sie, ob Sie Fortify auf dem Systemkonto installieren oder den Build-Agent auf Ihrem Benutzerkonto neu installieren können. –