Ich habe Jenkins LTS 2.60.2 auf Windows Server 2016 und unter Verwendung dieser Plugins:Jenkins Copy Artifact nicht gefunden Ordner/multiProjectPipeline/branchWithSlash
- Folders Plugin (6.1.0)
- Copy Artifact Plugin (1,38 .1)
- Pipeline-Plugin (2,5) + alle abhängigen Pipeline Unter Plugins
- Verschiedene andere abhängige Plugins ...
Siehe Pipeline to use artifacts from 2 projects associated by the same git branch name, um weitere Informationen über mein Setup, aber um es zusammenzufassen Ich habe folgende Artikel:
- Spielplatz (einen Ordner mit dem Ordner Plugin Gruppe alle diese folgenden Elemente erstellt)
- Frontend (mehrfach verzweigten Pipeline)
- Backend (mehrfach verzweigten Rohrleitung)
- configure (Pipeline mit einem Parameter genannt branch_name)
Das Frontend- und Backend-git Repos, beide haben eine Filiale namens Master und eine Release/2017.2.
Die Idee ist es, die konfigurieren Pipeline automatisch nach jedem erfolgreichen Build, die Weitergabe der Git-Zweig-Namen. Das automatische Auslösen der konfigurieren Pipeline funktioniert.
Was funktioniert nicht und ich brauche Ihre Hilfe zu beheben, ist der Schritt innerhalb der konfigurieren Pipeline, um die Artefakte aus einer MultibranchPipeline/specificBranch zu kopieren.
Wenn für den Parameter BRANCH_NAME (oder die Upstream-Pipeline) Master ist, funktioniert es. Wenn branch_name ist: release/2017,2 ich diesen Fehler:
ERROR: Unable to find project for artifact copy: playground/frontend/release%2f2017.2 This may be due to incorrect project name or permission settings; see help for project name in job configuration. Finished: FAILURE
Die configure Pipeline wie folgt aussieht:
node {
stage('Prepare') {
def projectname = "playground/frontend/" + "${BRANCH_NAME}".replace("/", "%2f")
step([$class: 'CopyArtifact', projectName: "${projectname}", selector: [$class: 'StatusBuildSelector', stable: false]])
}
stage('Archive') {
archiveArtifacts '**'
}
}
Wie Sie mich schon ersetzen/mit% 2f sehen (es ist erforderlich).
Wenn ich nicht den Ordner "Spielplatz" (alle meine Pipelines wie es ist, nicht in einem Ordner Element), funktioniert es. Wenn ich den Ordner verwende und den Master-Zweig verwende, funktioniert es. Es funktioniert nicht, wenn ich den Ordner und einen Zweignamen wie 2017.2 verwende. Was mache ich falsch? Kannst du dazu beitragen, dass es funktioniert? Gut, wenn es ein Bug ist (ich habe in https://issues.jenkins-ci.org gesucht und einige Fehler gefunden, bei denen ein ähnliches Setup mit dem Ordner nicht funktioniert, aber sie wurden behoben ... so frage ich mich wirklich ...) im Copy-Artefakt-Plugin, bitte Datei der Fehler und teilen Sie den Link hier, so können wir alle seinen Fortschritt überwachen ...
Vielen Dank.
Es ist auch möglich, dass ich einen etwas anderen Fehler bekommen habe und dass dies Ihr Problem nicht lösen wird. Dennoch zeigt es, dass das, was Sie zu tun versuchen, machbar ist. – Kdawg
Danke für Ihre Antwort Kdawg, vielleicht habe ich nicht angegeben, aber das Problem liegt im * configure * Job. Ich führe erfolgreich den * Frontend * Job aus (der letzte Teil ruft * configure * auf Ich versuche es und fang so, auch wenn es fehlschlägt, der Build wird als erfolgreich markiert), dann führe ich den configure Job erneut aus, indem ich den Parameter " release/2017.2 "Hier zeigt sich der Fehler. In meinem Setup verwende ich nicht github, sondern gerrit für das git-Repository. Vielleicht funktioniert es auf github, aber auf anderen git-Servern tut es das nicht? – firepol
Kdawg, * quietPeriod * und * wait * helfen, den Build zu beschleunigen und zu vermeiden, * try/catch * zu verwenden, aber die * configure * -Pipeline schlägt immer mit folgendem Fehler fehl: 'ERROR: Projekt für Artefaktkopie kann nicht gefunden werden: playground/frontend/release% 2f2017.2 Dies kann an falschen Projektnamen oder Berechtigungseinstellungen liegen; Siehe Hilfe zum Projektnamen in der Jobkonfiguration. Beendet: FAILURE – firepol