wpadłem na ten sam problem i postanowił widelec Multiple wtyczki SCM, aby go naprawić: https://github.com/JakeStoeffler/multiple-scms-plugin
Jeśli chcesz, po prostu sklonować mojego repo i prowadzonym mvn
zbudować plik HPI (znajdujący się w target/multiple-scms.hpi
) , które można przesłać ręcznie i zainstalować w Jenkins. Jeśli wolisz zrobić to szczypanie siebie, klon the original repo bezpośrednio otworzyć MultiSCM.java
i zastąpić kod w metodzie buildEnvVars()
z czymś, co następuje:
@Override
public void buildEnvVars(AbstractBuild<?,?> build, Map<String, String> env) {
// Add each SCM's env vars, appending indices where needed to avoid collisions
for (int i = 0; i < scms.size(); i++) {
try {
EnvVars currScmVars = new EnvVars();
scms.get(i).buildEnvVars(build, currScmVars);
for (Entry<String, String> entry : currScmVars.entrySet()) {
if (env.containsKey(entry.getKey())) {
// We have a collision; append the index of this SCM to the env var name
env.put(entry.getKey() + "_" + i, entry.getValue());
} else {
// No collision; just put the var as usual
env.put(entry.getKey(), entry.getValue());
}
}
}
catch(NullPointerException npe) {}
}
}
Mam nadzieję, że komentarze są dość oczywiste tam. Zasadniczo błąd w oryginalnym kodzie jest taki, że gdy masz wiele SCM z tymi samymi nazwami zmiennych środowiskowych, zmienne zostają nadpisane podczas ich iteracji. Pracujemy nad tym, zapobiegając tym zastąpieniom i zamiast tego dodajemy indeks do nazwy zmiennej.
Oto przykład, w jaki sposób z niego korzystać: jeśli nasz projekt ma 3 Git SCM skonfigurowany, możemy teraz dostęp do najnowszych popełnić hash każdego repo Git indywidualnie za pomocą env vars GIT_COMMIT
, GIT_COMMIT_1
i GIT_COMMIT_2
. Dołączone indeksy odpowiadają porządkowi SCM w konfiguracji projektu w Jenkins.
Oczywiście jest to szybkie i brudne rozwiązanie, ale działa na to, co muszę zrobić. Możesz go dostosować do swoich potrzeb.
Dzięki, że popatrzę. – Jason
Dlaczego ta prośba nie została skierowana do Jenkinsa? – Will
@Will Zostało scalone - patrz [PR] (https://github.com/jenkinsci/multiple-scms-plugin/pull/12). –