提交 f6b43d08 编写于 作者: J Jesse Glick

Removing ArtifactArchiver.latestOnly; LogRotator.artifactNumToKeep handles this more generally.

上级 a8756c6c
......@@ -31,6 +31,7 @@ import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.BuildListener;
import hudson.model.Result;
import hudson.model.listeners.ItemListener;
import hudson.remoting.VirtualChannel;
import hudson.util.FormValidation;
import java.io.File;
......@@ -44,9 +45,14 @@ import org.kohsuke.stapler.QueryParameter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.sf.json.JSONObject;
import javax.annotation.Nonnull;
import jenkins.model.BuildDiscarder;
import jenkins.model.Jenkins;
import org.kohsuke.stapler.DataBoundSetter;
/**
* Copies the artifacts into an archive directory.
......@@ -55,20 +61,20 @@ import javax.annotation.Nonnull;
*/
public class ArtifactArchiver extends Recorder {
private static final Logger LOG = Logger.getLogger(ArtifactArchiver.class.getName());
/**
* Comma- or space-separated list of patterns of files/directories to be archived.
*/
private final String artifacts;
private String artifacts;
/**
* Possibly null 'excludes' pattern as in Ant.
*/
private final String excludes;
private String excludes = "";
/**
* Just keep the last successful artifact set, no more.
*/
private final boolean latestOnly;
@Deprecated
private Boolean latestOnly;
/**
* Fail (or not) the build if archiving returns nothing.
......@@ -86,31 +92,35 @@ public class ArtifactArchiver extends Recorder {
* Default ant exclusion
*/
@Nonnull
private Boolean defaultExcludes;
private Boolean defaultExcludes = true;
@DataBoundConstructor public ArtifactArchiver(String artifacts) {
this.artifacts = artifacts.trim();
}
@Deprecated
public ArtifactArchiver(String artifacts, String excludes, boolean latestOnly) {
this(artifacts, excludes, latestOnly, false, false);
}
@Deprecated
public ArtifactArchiver(String artifacts, String excludes, boolean latestOnly, boolean allowEmptyArchive) {
this(artifacts, excludes, latestOnly, allowEmptyArchive, false);
}
@Deprecated
public ArtifactArchiver(String artifacts, String excludes, boolean latestOnly, boolean allowEmptyArchive, boolean onlyIfSuccessful) {
this(artifacts, excludes , latestOnly , allowEmptyArchive, onlyIfSuccessful , true);
}
@DataBoundConstructor
@Deprecated
public ArtifactArchiver(String artifacts, String excludes, boolean latestOnly, boolean allowEmptyArchive, boolean onlyIfSuccessful, Boolean defaultExcludes) {
this.artifacts = artifacts.trim();
this.excludes = Util.fixEmptyAndTrim(excludes);
this(artifacts);
setExcludes(excludes);
this.latestOnly = latestOnly;
this.allowEmptyArchive = allowEmptyArchive;
this.onlyIfSuccessful = onlyIfSuccessful;
this.defaultExcludes = defaultExcludes;
setAllowEmptyArchive(allowEmptyArchive);
setOnlyIfSuccessful(onlyIfSuccessful);
setDefaultExcludes(defaultExcludes);
}
// Backwards compatibility for older builds
......@@ -132,22 +142,39 @@ public class ArtifactArchiver extends Recorder {
return excludes;
}
@DataBoundSetter public final void setExcludes(String excludes) {
this.excludes = Util.fixEmptyAndTrim(excludes);
}
@Deprecated
public boolean isLatestOnly() {
return latestOnly;
return latestOnly != null ? latestOnly : false;
}
public boolean isOnlyIfSuccessful() {
return onlyIfSuccessful;
}
@DataBoundSetter public final void setOnlyIfSuccessful(boolean onlyIfSuccessful) {
this.onlyIfSuccessful = onlyIfSuccessful;
}
public boolean getAllowEmptyArchive() {
return allowEmptyArchive;
}
@DataBoundSetter public final void setAllowEmptyArchive(boolean allowEmptyArchive) {
this.allowEmptyArchive = allowEmptyArchive;
}
public boolean isDefaultExcludes() {
return defaultExcludes;
}
@DataBoundSetter public final void setDefaultExcludes(boolean defaultExcludes) {
this.defaultExcludes = defaultExcludes;
}
private void listenerWarnOrError(BuildListener listener, String message) {
if (allowEmptyArchive) {
listener.getLogger().println(String.format("WARN: %s", message));
......@@ -236,34 +263,6 @@ public class ArtifactArchiver extends Recorder {
}
}
@Override
public boolean prebuild(AbstractBuild<?, ?> build, BuildListener listener) {
if(latestOnly) {
AbstractBuild<?,?> b = build.getProject().getLastCompletedBuild();
Result bestResultSoFar = Result.NOT_BUILT;
while(b!=null) {
if(b.getResult()!=null){
if (b.getResult().isBetterThan(bestResultSoFar)) {
bestResultSoFar = b.getResult();
} else {
// remove old artifacts
try {
if (b.getArtifactManager().delete()) {
listener.getLogger().println(Messages.ArtifactArchiver_DeletingOld(b.getDisplayName()));
}
} catch (IOException e) {
e.printStackTrace(listener.error(e.getMessage()));
} catch (InterruptedException x) {
x.printStackTrace(listener.error(x.getMessage()));
}
}
}
b = b.getPreviousBuild();
}
}
return true;
}
public BuildStepMonitor getRequiredMonitorService() {
return BuildStepMonitor.NONE;
}
......@@ -301,4 +300,36 @@ public class ArtifactArchiver extends Recorder {
return true;
}
}
@Extension public static final class Migrator extends ItemListener {
@Override public void onLoaded() {
for (AbstractProject<?,?> p : Jenkins.getInstance().getAllItems(AbstractProject.class)) {
ArtifactArchiver aa = p.getPublishersList().get(ArtifactArchiver.class);
if (aa != null && aa.latestOnly != null) {
try {
if (aa.latestOnly) {
BuildDiscarder bd = p.getBuildDiscarder();
if (bd instanceof LogRotator) {
LogRotator lr = (LogRotator) bd;
if (lr.getArtifactNumToKeep() == -1) {
p.setBuildDiscarder(new LogRotator(lr.getDaysToKeep(), lr.getNumToKeep(), lr.getArtifactDaysToKeep(), 1));
} else {
LOG.log(Level.WARNING, "will not clobber artifactNumToKeep={0} in {1}", new Object[] {lr.getArtifactNumToKeep(), p});
}
} else if (bd == null) {
p.setBuildDiscarder(new LogRotator(-1, -1, -1, 1));
} else {
LOG.log(Level.WARNING, "unrecognized BuildDiscarder {0} in {1}", new Object[] {bd, p});
}
}
aa.latestOnly = null;
p.save();
} catch (IOException x) {
LOG.log(Level.WARNING, "could not migrate " + p, x);
}
}
}
}
}
}
......@@ -31,9 +31,6 @@ THE SOFTWARE.
<f:entry title="${%Excludes}" field="excludes">
<f:textbox />
</f:entry>
<f:entry field="latestOnly" >
<f:checkbox title="${%lastBuildOnly}"/>
</f:entry>
<f:entry field="allowEmptyArchive" >
<f:checkbox title="${%allowEmptyArchive}"/>
</f:entry>
......
......@@ -20,7 +20,6 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
lastBuildOnly=Discard all but the last successful/stable artifact to save disk space
allowEmptyArchive=Do not fail build if archiving returns nothing
onlyIfSuccessful=Archive artifacts only if build is successful
defaultExcludes=Use default excludes
\ No newline at end of file
......@@ -21,5 +21,4 @@
# THE SOFTWARE.
Files\ to\ archive=Filer der skal arkiveres
lastBuildOnly=Slet gamle artifakter fra f\u00f8r det seneste succesfulde/stabile byg, for at spare diskplads
Excludes=Ekskluderer
......@@ -21,5 +21,4 @@
# THE SOFTWARE.
Files\ to\ archive=Dateien, die archiviert werden sollen
Excludes=Ausschlüsse
lastBuildOnly=Nur letzten erfolgreichen/stabilen Build archivieren (spart Festplattenplatz).
Excludes=Ausschl\u00fcsse
......@@ -20,6 +20,5 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
lastBuildOnly=Descartar todos los artefactos excepto el último estable y sin errores, para evitar llenar el disco.
Excludes=Excluir
Files\ to\ archive=Ficheros para guardar
......@@ -20,9 +20,8 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Files\ to\ archive=Fichiers \u00E0 archiver
Files\ to\ archive=Fichiers \u00e0 archiver
Excludes=Exclusions
lastBuildOnly=Supprime tous les artefacts, \u00E0 l''exception du dernier artefact stable ou construit avec succ\u00E8s, afin de gagner de l''espace disque
allowEmptyArchive=Ne pas faire \u00E9chouer la construction si l''archive retourn\u00E9e est vide
defaultExcludes=Utilise les exclusions par d\u00E9faut
onlyIfSuccessful=Archive les artifacts seulement si la construction est un succ\u00E8s
allowEmptyArchive=Ne pas faire \u00e9chouer la construction si l''archive retourn\u00e9e est vide
defaultExcludes=Utilise les exclusions par d\u00e9faut
onlyIfSuccessful=Archive les artifacts seulement si la construction est un succ\u00e8s
......@@ -22,5 +22,4 @@
Files\ to\ archive=\u4fdd\u5b58\u3059\u308b\u30d5\u30a1\u30a4\u30eb
Excludes=\u9664\u5916\u3059\u308b\u30d5\u30a1\u30a4\u30eb
lastBuildOnly=\u6700\u65b0\u306e\u6210\u529f/\u5b89\u5b9a\u3057\u305f\u6210\u679c\u7269\u306e\u307f\u3092\u4fdd\u7ba1\u3057\u3066\u30c7\u30a3\u30b9\u30af\u3092\u7bc0\u7d04
allowEmptyArchive=\u6210\u679c\u7269\u304c\u4f55\u3082\u306a\u3044\u5834\u5408\u3067\u3082\u30d3\u30eb\u30c9\u3092\u5931\u6557\u306b\u3057\u306a\u3044
\ No newline at end of file
......@@ -20,6 +20,5 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
lastBuildOnly=Enkel de laatst succesvolle artefacten bijhouden om schijfruimte te sparen.
Files\ to\ archive=Te archiveren bestanden
Excludes=Uitsluitingen
\ No newline at end of file
......@@ -20,7 +20,6 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
lastBuildOnly=Descartar todos menos o \u00faltimo artefato conclu\u00eddo com sucesso para economizar espa\u00e7o em disco
Files\ to\ archive=Arquivos para arquivar
Excludes=Exclus\u00f5es
......@@ -22,4 +22,3 @@
Files\ to\ archive=\u0424\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438
Excludes=\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f
lastBuildOnly=\u041e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b, \u043a\u0440\u043e\u043c\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438, \u0434\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430
......@@ -22,5 +22,4 @@
Files\ to\ archive=Ar\u015fivlenecek dosyalar
Excludes=Harici tutulanlar
lastBuildOnly=Disk \u00fczerinde yer kazanmak ad\u0131na, sonuncu ba\u015far\u0131l\u0131 artefaktlar\u0131n d\u0131\u015f\u0131ndakileri sil
......@@ -20,6 +20,5 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Excludes=\u4E0D\u5305\u542B
Files\ to\ archive=\u7528\u4E8E\u5B58\u6863\u7684\u6587\u4EF6
lastBuildOnly=\u53EA\u4FDD\u7559\u6700\u65B0\u7684\u6210\u529F/\u7A33\u5B9A\u53D1\u5E03\u5305\u4EE5\u8282\u7701\u78C1\u76D8\u7A7A\u95F4
Excludes=\u4e0d\u5305\u542b
Files\ to\ archive=\u7528\u4e8e\u5b58\u6863\u7684\u6587\u4ef6
......@@ -22,5 +22,4 @@
Files\ to\ archive=\u8981\u5c01\u5b58\u7684\u6a94\u6848
Excludes=\u6392\u9664
lastBuildOnly=\u53ea\u4fdd\u7559\u6700\u8fd1\u6210\u529f\u6216\u7a69\u5b9a\u7684\u6210\u54c1\uff0c\u7bc0\u7701\u78c1\u789f\u7a7a\u9593
allowEmptyArchive=\u5c31\u7b97\u6c92\u6709\u5c01\u5b58\u5230\u4efb\u4f55\u6a94\u6848\uff0c\u4e5f\u4e0d\u8981\u5c07\u5efa\u7f6e\u7d50\u679c\u8996\u70ba\u5931\u6557
<div>
<p>
If checked, Jenkins will discard most artifacts from older builds.
Artifacts from the last stable former build (if any) are kept, and also those
from the last unstable build if that is newer, and from the last failed
build if that is newer.
</p>
<p>
This option saves disk space, but still lets you safely create permalinks
such as <code>.../lastStableBuild/artifact/...</code> or
<code>.../lastSuccessfulBuild/artifact/...</code> or
<code>.../lastCompletedBuild/artifact/...</code>.
</p>
<p>
(Since the current build is still running, Jenkins conservatively assumes
that it might yet fail in a publisher - so it keeps at least one older build's
artifacts around.)
</p>
</div>
<div>
<p>
Ist diese Option gewählt, verwirft Jenkins die meisten Artefakte aus
älteren Builds. Artefakte des letzten stabilen Builds (soweit vorhanden)
werden behalten, ebenso wie die des letzten instabilen und fehlgeschlagenen
Builds, sofern diese neuer sind.
</p>
<p>
Diese Option spart Festplattenplatz, ermöglicht aber trotzdem zuverlässige
Permalinks, z.B. auf
<code>.../lastStableBuild/artifact/...</code> oder
<code>.../lastSuccessfulBuild/artifact/...</code> oder
<code>.../lastCompletedBuild/artifact/...</code>.
</p>
<p>
(Da der neueste Build noch läuft, geht Jenkins konservativerweise davon aus,
daß dieser fehlschlagen könnte. Daher behält Jenkins mindestens einen älteren Build
zurück.)
</p>
</div>
<div>
<p>
Si cette option est activée, Jenkins supprimera la plupart des artefacts des
builds les plus anciens.
Les artefacts du dernier build stable (s'il existe) seront conservés, ainsi que
ceux du dernier build instable s'il est plus récent, et ceux du dernier build
en échec s'il est plus récent.
</p>
<p>
Cette option fait gagner de l'espace disque, tout en vous permettant de créer
des links permalinks sans problèmes, comme
<code>.../lastStableBuild/artifact/...</code> ou
<code>.../lastSuccessfulBuild/artifact/...</code> ou
<code>.../lastCompletedBuild/artifact/...</code>.
</p>
<p>
(Puisque le build courant est en cours, Jenkins suppose par précaution qu'il peut
échouer dans un publisher à la fin - il conserve donc les artefacts d'au moins
un build plus ancien.)
</p>
</div>
<div>
<p>
啟用後,Jenkins 就會刪掉先前建置出來的成品。
只保留最近幾次穩定的建置成品,以及最新建置不穩定或失敗的成品。
</p>
<p>
這個選項可以節省空間,也還能讓您放心的建立
<code>.../lastStableBuild/artifact/...</code>
<code>.../lastSuccessfulBuild/artifact/...</code> 或是
<code>.../lastCompletedBuild/artifact/...</code> 這類永久連結。
</p>
<p>
(因為建置當下還沒真的完成,Jenkins 保守假設發佈程式執行時可能會失敗,
所以可能會多保留幾版舊的建置成品。)
</p>
</div>
......@@ -29,7 +29,6 @@ Ant.NotAntDirectory={0} doesn\u2019t look like an Ant directory
Ant.ProjectConfigNeeded= Maybe you need to configure the job to choose one of your Ant installations?
ArtifactArchiver.ARCHIVING_ARTIFACTS=Archiving artifacts
ArtifactArchiver.DeletingOld=Deleting old artifacts from {0}
ArtifactArchiver.DisplayName=Archive the artifacts
ArtifactArchiver.SkipBecauseOnlyIfSuccessful=Skipped archiving because build is not successful
ArtifactArchiver.FailedToArchive=Failed to archive artifacts: {0}
......
......@@ -24,45 +24,44 @@ BuildTrigger.DisplayName=Byg andre projekter
JavadocArchiver.Publishing=Publicerer Javadoc
ArtifactArchiver.ARCHIVING_ARTIFACTS=Arkiverer artifakter
Maven.NotMavenDirectory={0} ligner ikke et Maven direktorie
Fingerprinter.NoArchiving=Der b\u00F8r opsamles filfingeraftryk p\u00E5 Byggeartifakter, men byggeartifakter er ikke sl\u00E5et til
Fingerprinter.NoArchiving=Der b\u00f8r opsamles filfingeraftryk p\u00e5 Byggeartifakter, men byggeartifakter er ikke sl\u00e5et til
Ant.NotADirectory={0} er ikke et direktorie
Fingerprinter.FailedFor=Kunne ikke opsamle filfingeraftryk for {0}
JavadocArchiver.DisplayName=Publicer Javadoc
Maven.ExecFailed=Kommando eksekvering fejlede
BuildTrigger.InQueue={0} er allerede i k\u00F8en
ArtifactArchiver.NoIncludes=Ingen artifakter vil blive arkiveret. \nDu har formentlig glemt at s\u00E6tte film\u00F8nsteret, g\u00E5 til konfigurationen og specificer dette.\nHvis du virkelig mener at du vil arkivere alle filer i arbejdsomr\u00E5det, benyt da "**"
BuildTrigger.InQueue={0} er allerede i k\u00f8en
ArtifactArchiver.NoIncludes=Ingen artifakter vil blive arkiveret. \nDu har formentlig glemt at s\u00e6tte film\u00f8nsteret, g\u00e5 til konfigurationen og specificer dette.\nHvis du virkelig mener at du vil arkivere alle filer i arbejdsomr\u00e5det, benyt da "**"
CommandInterpreter.UnableToDelete=Kan ikke slette skriptfilen {0}
Ant.GlobalConfigNeeded=M\u00E5ske mangler du at konfigurere hvor dine Ant installationer er?
Ant.GlobalConfigNeeded=M\u00e5ske mangler du at konfigurere hvor dine Ant installationer er?
InstallFromApache=Installer fra Apache
Ant.ProjectConfigNeeded=M\u00E5ske mangler du at konfigurere jobbet til at v\u00E6lge en af dine Ant installationer?
Ant.ProjectConfigNeeded=M\u00e5ske mangler du at konfigurere jobbet til at v\u00e6lge en af dine Ant installationer?
ArtifactArchiver.DisplayName=Arkiver artifakterne
Ant.NotAntDirectory={0} ligner ikke et Ant direktorie
Fingerprinter.DigestFailed=Kunne ikke beregne filfingeraftryk for {0}
CommandInterpreter.UnableToProduceScript=Ude af stand til at lave en skriptfil
Shell.DisplayName=K\u00F8r skalkommando
Shell.DisplayName=K\u00f8r skalkommando
BuildTrigger.NotBuildable={0} kan ikke bygges
JavadocArchiver.DisplayName.Generic=Dokument
Ant.ExecFailed=Kommandoeksekvering fejlede
Ant.DisplayName=K\u00F8r Ant
Ant.DisplayName=K\u00f8r Ant
BuildTrigger.Triggering=Starter et nyt byg af {0}
Maven.DisplayName=K\u00F8r top-niveau Maven m\u00E5l
ArtifactArchiver.NoMatchFound=Ingen artifakter matcher film\u00F8nsteret "{0}". Konfigurationsfejl?
Maven.DisplayName=K\u00f8r top-niveau Maven m\u00e5l
ArtifactArchiver.NoMatchFound=Ingen artifakter matcher film\u00f8nsteret "{0}". Konfigurationsfejl?
Fingerprinter.Aborted=Afbrudt
Fingerprinter.DisplayName=Tag filfingeraftryk af filer for at spore brugen af disse
JavadocArchiver.DisplayName.Javadoc=Javadoc
TestJavadocArchiver.DisplayName.Javadoc=Test Javadoc
Ant.ExecutableNotFound=Kan ikke finde en eksekverbar fra den valgte Ant installation "{0}"
BatchFile.DisplayName=K\u00F8r Windows batch kommando
BatchFile.DisplayName=K\u00f8r Windows batch kommando
JavadocArchiver.UnableToCopy=Ude af stand til at kopiere Javadoc fra {0} til {1}
JavadocArchiver.NoMatchFound=Ingen Javadoc fundet i {0}: {1}
Maven.NoExecutable=Kunne ikke finde en eksekverbar i {0}
BuildTrigger.NoSuchProject=Intet s\u00E5kaldt projekt ''{0}''. Mente du ''{1}''?
BuildTrigger.NoSuchProject=Intet s\u00e5kaldt projekt ''{0}''. Mente du ''{1}''?
Fingerprinter.Action.DisplayName=Se Filfingeraftryk
ArtifactArchiver.FailedToArchive=Fejlede under arkivering af artifakter: {0}
Maven.NotADirectory={0} er ikke et direktorie
BuildTrigger.Disabled={0} er sl\u00E5et fra, starter ikke
BuildTrigger.Disabled={0} er sl\u00e5et fra, starter ikke
Fingerprinter.Recording=Opsamler filfingeraftryk
CommandInterpreter.CommandFailed=Kommandoeksekvering fejlede
Fingerprinter.NoWorkspace=Ude af stand til at opsamle filfingeraftryk, da der ikke er et arbejdsomr\u00E5de
Fingerprinter.NoWorkspace=Ude af stand til at opsamle filfingeraftryk, da der ikke er et arbejdsomr\u00e5de
Fingerprinter.Failed=Kunne ikke opsamle filfingeraftryk
ArtifactArchiver.DeletingOld=Sletter gamle artifakter fra {0}
......@@ -21,57 +21,56 @@
# THE SOFTWARE.
Ant.DisplayName=Ant aufrufen
Ant.ExecFailed=Befehlsausfhrung fehlgeschlagen.
Ant.ExecutableNotFound=Die ausfhrbaren Programme der Ant-Installation "{0}" konnten nicht gefunden werden.
Ant.GlobalConfigNeeded=Eventuell mssen Sie noch Ihre Ant-Installationen konfigurieren.
Ant.ExecFailed=Befehlsausf\u00fchrung fehlgeschlagen.
Ant.ExecutableNotFound=Die ausf\u00fchrbaren Programme der Ant-Installation "{0}" konnten nicht gefunden werden.
Ant.GlobalConfigNeeded=Eventuell m\u00fcssen Sie noch Ihre Ant-Installationen konfigurieren.
Ant.NotADirectory={0} ist kein Verzeichnis
Ant.NotAntDirectory={0} sieht nicht wie ein Ant-Verzeichnis aus.
Ant.ProjectConfigNeeded=Eventuell mssen Sie fr den Job noch eine Ihrer Ant-Installationen auswhlen.
Ant.ProjectConfigNeeded=Eventuell m\u00fcssen Sie f\u00fcr den Job noch eine Ihrer Ant-Installationen ausw\u00e4hlen.
ArtifactArchiver.ARCHIVING_ARTIFACTS=Archiviere Artefakte
ArtifactArchiver.DeletingOld=L\u00F6sche alte Artefakte von {0}
ArtifactArchiver.DisplayName=Artefakte archivieren
ArtifactArchiver.FailedToArchive=Artefakte konnten nicht archiviert werden: {0}
ArtifactArchiver.NoIncludes=Es sind keine Artefakte zur Archivierung konfiguriert.\n\u00DCberpr\u00FCfen Sie, ob in den Einstellungen ein Dateisuchmuster angegeben ist.\nWenn Sie alle Dateien archivieren m\u00F6chten, geben Sie "**" an.
ArtifactArchiver.NoMatchFound=Keine Artefakte gefunden, die mit dem Dateisuchmuster "{0}" bereinstimmen. Ein Konfigurationsfehler?
ArtifactArchiver.NoIncludes=Es sind keine Artefakte zur Archivierung konfiguriert.\n\u00dcberpr\u00fcfen Sie, ob in den Einstellungen ein Dateisuchmuster angegeben ist.\nWenn Sie alle Dateien archivieren m\u00f6chten, geben Sie "**" an.
ArtifactArchiver.NoMatchFound=Keine Artefakte gefunden, die mit dem Dateisuchmuster "{0}" \u00fcbereinstimmen. Ein Konfigurationsfehler?
BatchFile.DisplayName=Windows Batch-Datei ausfhren
BatchFile.DisplayName=Windows Batch-Datei ausf\u00fchren
BuildTrigger.Disabled={0} ist deaktiviert. Keine Auslsung des Builds.
BuildTrigger.Disabled={0} ist deaktiviert. Keine Ausl\u00f6sung des Builds.
BuildTrigger.DisplayName=Weitere Projekte bauen
BuildTrigger.InQueue={0} ist bereits geplant.
BuildTrigger.NoSuchProject=Kein Projekt ''{0}'' gefunden. Meinten Sie ''{1}''?
BuildTrigger.NoProjectSpecified=Kein Projekt angegeben
BuildTrigger.NotBuildable={0} kann nicht gebaut werden.
BuildTrigger.Triggering=L\u00F6se einen neuen Build von {0} aus
BuildTrigger.Triggering=L\u00f6se einen neuen Build von {0} aus
CommandInterpreter.CommandFailed=Befehlsausf\u00FChrung fehlgeschlagen
CommandInterpreter.UnableToDelete=Kann Skriptdatei {0} nicht lschen
CommandInterpreter.CommandFailed=Befehlsausf\u00fchrung fehlgeschlagen
CommandInterpreter.UnableToDelete=Kann Skriptdatei {0} nicht l\u00f6schen
CommandInterpreter.UnableToProduceScript=Kann keine Skriptdatei erstellen
Fingerprinter.Aborted=Abgebrochen
Fingerprinter.Action.DisplayName=Fingerabdrcke ansehen
Fingerprinter.DigestFailed=Berechnung der Prfsumme fr {0} fehlgeschlagen
Fingerprinter.DisplayName=Fingerabdrcke von Dateien aufzeichnen, um deren Verwendung zu verfolgen
Fingerprinter.Failed=Aufzeichnen der Fingerabdrcke fehlgeschlagen
Fingerprinter.FailedFor=Aufzeichnen des Fingerabdrucks fr {0} fehlgeschlagen
Fingerprinter.NoArchiving=Die Fingerabdrcke von Build-Artefakten sollen aufgezeichnet werden, aber die Archivierung der Artefakte ist nicht konfiguriert.
Fingerprinter.NoWorkspace=Fingerabdrcke knnen nicht aufgezeichnet werden, weil der Arbeitsbereich fehlt.
Fingerprinter.Recording=Zeichne Fingerabrcke auf
Fingerprinter.Action.DisplayName=Fingerabdr\u00fccke ansehen
Fingerprinter.DigestFailed=Berechnung der Pr\u00fcfsumme f\u00fcr {0} fehlgeschlagen
Fingerprinter.DisplayName=Fingerabdr\u00fccke von Dateien aufzeichnen, um deren Verwendung zu verfolgen
Fingerprinter.Failed=Aufzeichnen der Fingerabdr\u00fccke fehlgeschlagen
Fingerprinter.FailedFor=Aufzeichnen des Fingerabdrucks f\u00fcr {0} fehlgeschlagen
Fingerprinter.NoArchiving=Die Fingerabdr\u00fccke von Build-Artefakten sollen aufgezeichnet werden, aber die Archivierung der Artefakte ist nicht konfiguriert.
Fingerprinter.NoWorkspace=Fingerabdr\u00fccke k\u00f6nnen nicht aufgezeichnet werden, weil der Arbeitsbereich fehlt.
Fingerprinter.Recording=Zeichne Fingerabr\u00fccke auf
InstallFromApache=Installiere von Apache
JavadocArchiver.DisplayName=Javadoc verffentlichen
JavadocArchiver.DisplayName=Javadoc ver\u00f6ffentlichen
JavadocArchiver.DisplayName.Generic=Dokumentation
JavadocArchiver.DisplayName.Javadoc=Javadocs
JavadocArchiver.NoMatchFound=Keine Javadocs in {0} gefunden: {1}
JavadocArchiver.Publishing=Verffentliche Javadocs
JavadocArchiver.Publishing=Ver\u00f6ffentliche Javadocs
JavadocArchiver.UnableToCopy=Kann Javadocs nicht von {0} nach {1} kopieren
Maven.DisplayName=Maven Goals aufrufen
Maven.ExecFailed=Befehlsausfhrung fehlgeschlagen
Maven.ExecFailed=Befehlsausf\u00fchrung fehlgeschlagen
Maven.NotMavenDirectory={0} sieht nicht wie ein Maven-Verzeichnis aus.
Maven.NoExecutable=Konnte keine ausfhrbare Datei in {0} finden
Maven.NoExecutable=Konnte keine ausf\u00fchrbare Datei in {0} finden
Maven.NotADirectory={0} ist kein Verzeichnis
Shell.DisplayName=Shell ausfhren
Shell.DisplayName=Shell ausf\u00fchren
......@@ -21,30 +21,29 @@
# THE SOFTWARE.
Ant.DisplayName=Ejecutar Ant
Ant.ExecFailed=Fall la ejecucin del comando
Ant.ExecutableNotFound=No se encuentra el archivo ejecutable para la instalacin de ant seleccionada "{0}"
Ant.GlobalConfigNeeded= Posiblemente tengas que configurar dnde se encuentra tu instalacin de ''ant''
Ant.ExecFailed=Fall\u00f3 la ejecuci\u00f3n del comando
Ant.ExecutableNotFound=No se encuentra el archivo ejecutable para la instalaci\u00f3n de ant seleccionada "{0}"
Ant.GlobalConfigNeeded= Posiblemente tengas que configurar d\u00f3nde se encuentra tu instalaci\u00f3n de ''ant''
Ant.NotADirectory={0} no es un directorio
Ant.NotAntDirectory={0} no parece un directorio de ''ant''
Ant.ProjectConfigNeeded= Es posible que tengas que configurar la tarea para que utilice una de tus instalaciones de ''ant''
ArtifactArchiver.ARCHIVING_ARTIFACTS=Guardando archivos
ArtifactArchiver.DeletingOld=Borrando archivos antiguos de {0}
ArtifactArchiver.DisplayName=Guardar los archivos generados
ArtifactArchiver.FailedToArchive=Error al guardar los archivos generados: {0}
ArtifactArchiver.NoIncludes=No hay archivos configurados para guardar.\nEs probable que olvidaras configurar el patr\u00F3n.\nSi lo que quieres es guardar todos los ficheros del espacio de trabajo, utiliza "**"
ArtifactArchiver.NoMatchFound=No se encontraron archivos que cumplan el patrn "{0}". Comprueba la configuracin
ArtifactArchiver.NoIncludes=No hay archivos configurados para guardar.\nEs probable que olvidaras configurar el patr\u00f3n.\nSi lo que quieres es guardar todos los ficheros del espacio de trabajo, utiliza "**"
ArtifactArchiver.NoMatchFound=No se encontraron archivos que cumplan el patr\u00f3n "{0}". Comprueba la configuraci\u00f3n
BatchFile.DisplayName=Ejecutar un comando de Windows
BuildTrigger.Disabled={0} est desactivado. Ejecucin omitida
BuildTrigger.Disabled={0} est\u00e1 desactivado. Ejecuci\u00f3n omitida
BuildTrigger.DisplayName=Ejecutar otros proyectos
BuildTrigger.InQueue={0} ya est en la cola
BuildTrigger.InQueue={0} ya est\u00e1 en la cola
BuildTrigger.NoSuchProject=No existe el proyecto ''{0}''. Quizas te refieras a ''{1}''
BuildTrigger.NotBuildable={0} no es ejecutable
BuildTrigger.Triggering=Lanzando una nueva ejecucin de {0}
BuildTrigger.Triggering=Lanzando una nueva ejecuci\u00f3n de {0}
CommandInterpreter.CommandFailed=la ejecucin del comando ha fallado
CommandInterpreter.CommandFailed=la ejecuci\u00f3n del comando ha fallado
CommandInterpreter.UnableToDelete=Imposible borrar el fichero de script {0}
CommandInterpreter.UnableToProduceScript=Imposible de crear un fichero de script
......@@ -54,7 +53,7 @@ Fingerprinter.DigestFailed=Imposible de calcular la firma para {0}
Fingerprinter.DisplayName=Almacenar firma de ficheros para poder hacer seguimiento
Fingerprinter.Failed=Imposible de grabar firmas
Fingerprinter.FailedFor=fallo al grabar la firma de {0}
Fingerprinter.NoArchiving=Se supone que la produccion de artefactos debe ser firmada pero no est configurada la opcin de guardar artefactos.
Fingerprinter.NoArchiving=Se supone que la produccion de artefactos debe ser firmada pero no est\u00e1 configurada la opci\u00f3n de guardar artefactos.
Fingerprinter.NoWorkspace=No se pueden guardar firmas porque no hay o no se ha creado el espacio de trabajo
Fingerprinter.Recording=Almacenando firmas
......@@ -68,12 +67,12 @@ JavadocArchiver.Publishing=Publicando Javadoc
JavadocArchiver.UnableToCopy=Imposible copiar javadocs desde {0} a {1}
Maven.DisplayName=Ejecutar tareas ''maven'' de nivel superior
Maven.ExecFailed=fall la ejecucin del comando
Maven.ExecFailed=fall\u00f3 la ejecuci\u00f3n del comando
Maven.NotMavenDirectory={0} no parece un directorio ''maven''
Maven.NoExecutable=No hay ningn fichero ejecutable en {0}
Maven.NoExecutable=No hay ning\u00fan fichero ejecutable en {0}
Maven.NotADirectory={0} no es un directorio
Shell.DisplayName=Ejecutar linea de comandos (shell)
BuildTrigger.NoProjectSpecified=No se ha especificado ningn proyecto.
BuildTrigger.NoProjectSpecified=No se ha especificado ning\u00fan proyecto.
TestJavadocArchiver.DisplayName.Javadoc=Probar javadoc.
......@@ -21,57 +21,56 @@
# THE SOFTWARE.
Ant.DisplayName=Appeler Ant
Ant.ExecFailed=L''ex\u00E9cution de la commande a \u00E9chou\u00E9.
Ant.ExecutableNotFound=Impossible de trouver l''ex\u00E9cutable correspondant \u00E0 l''installation de Ant choisie "{0}"
Ant.GlobalConfigNeeded=Avez-vous configur\u00E9 l''endroit o\u00F9 se trouvent les installations de Ant?
Ant.NotADirectory={0} n''est pas un r\u00E9pertoire
Ant.NotAntDirectory={0} ne semble pas \u00EAtre un r\u00E9pertoire Ant
Ant.ProjectConfigNeeded=Avez-vous configur\u00E9 le job de fa\u00E7on \u00E0 choisir une de vos installations de Ant?
Ant.ExecFailed=L''ex\u00e9cution de la commande a \u00e9chou\u00e9.
Ant.ExecutableNotFound=Impossible de trouver l''ex\u00e9cutable correspondant \u00e0 l''installation de Ant choisie "{0}"
Ant.GlobalConfigNeeded=Avez-vous configur\u00e9 l''endroit o\u00f9 se trouvent les installations de Ant?
Ant.NotADirectory={0} n''est pas un r\u00e9pertoire
Ant.NotAntDirectory={0} ne semble pas \u00eatre un r\u00e9pertoire Ant
Ant.ProjectConfigNeeded=Avez-vous configur\u00e9 le job de fa\u00e7on \u00e0 choisir une de vos installations de Ant?
ArtifactArchiver.DeletingOld=Suppression des anciens artefacts de {0}
ArtifactArchiver.DisplayName=Archiver des artefacts
ArtifactArchiver.FailedToArchive=Echec lors de l''archivage des artefacts: {0}
ArtifactArchiver.NoIncludes=\
Aucun artefact n''est configur\u00E9 pour l''archivage.\n\
Vous avez probablement oubli\u00E9 de positionner le pattern pour les noms des fichiers; merci de retourner \u00E0 la configuration et de le sp\u00E9cifier.\n\
Si vous souhaitez r\u00E9ellement archiver tous les fichiers dans le workspace, indiquez "**".
Aucun artefact n''est configur\u00e9 pour l''archivage.\n\
Vous avez probablement oubli\u00e9 de positionner le pattern pour les noms des fichiers; merci de retourner \u00e0 la configuration et de le sp\u00e9cifier.\n\
Si vous souhaitez r\u00e9ellement archiver tous les fichiers dans le workspace, indiquez "**".
ArtifactArchiver.NoMatchFound=Aucun artefact ne correspond au pattern "{0}". Erreur de configuration?
BatchFile.DisplayName=Ex\u00E9cuter une ligne de commande batch Windows
BatchFile.DisplayName=Ex\u00e9cuter une ligne de commande batch Windows
BuildTrigger.Disabled={0} est d\u00E9sactiv\u00E9. Lancement non fait.
BuildTrigger.Disabled={0} est d\u00e9sactiv\u00e9. Lancement non fait.
BuildTrigger.DisplayName=Construire d''autres projets (projets en aval)
BuildTrigger.InQueue={0} est d\u00E9j\u00E0 en file d''attente
BuildTrigger.InQueue={0} est d\u00e9j\u00e0 en file d''attente
BuildTrigger.NoSuchProject=Pas de projet ''{0}''. Vouliez-vous dire ''{1}''?
BuildTrigger.NotBuildable={0} ne peut pas \u00EAtre construit
BuildTrigger.NotBuildable={0} ne peut pas \u00eatre construit
BuildTrigger.Triggering=Lancement d''un nouveau build de {0}
CommandInterpreter.CommandFailed=L''ex\u00E9cution de la commande a \u00E9chou\u00E9.
CommandInterpreter.CommandFailed=L''ex\u00e9cution de la commande a \u00e9chou\u00e9.
CommandInterpreter.UnableToDelete=Impossible de supprimer le fichier de script {0}
CommandInterpreter.UnableToProduceScript=Impossible de produire un fichier de script
Fingerprinter.Aborted=Annul\u00E9
Fingerprinter.Action.DisplayName=Voir les empreintes num\u00E9riques
Fingerprinter.DigestFailed=Impossible de calculer le r\u00E9sum\u00E9 pour {0}
Fingerprinter.DisplayName=Enregistrer les empreintes num\u00E9riques des fichiers pour en suivre l''utilisation
Fingerprinter.Failed=Impossible d''enregistrer les empreintes num\u00E9riques
Fingerprinter.FailedFor=Impossible d''enregistrer les empreintes num\u00E9riques pour {0}
Fingerprinter.NoArchiving=Les artefacts du build sont suppos\u00E9s recevoir une empreinte num\u00E9rique, mais l''archivage n''a pas \u00E9t\u00E9 activ\u00E9
Fingerprinter.NoWorkspace=Impossible d''enregistrer les empreintes num\u00E9riques, parce qu''il n''y a pas de r\u00E9pertoire de travail
Fingerprinter.Recording=Enregistrement des empreintes num\u00E9riques
Fingerprinter.Aborted=Annul\u00e9
Fingerprinter.Action.DisplayName=Voir les empreintes num\u00e9riques
Fingerprinter.DigestFailed=Impossible de calculer le r\u00e9sum\u00e9 pour {0}
Fingerprinter.DisplayName=Enregistrer les empreintes num\u00e9riques des fichiers pour en suivre l''utilisation
Fingerprinter.Failed=Impossible d''enregistrer les empreintes num\u00e9riques
Fingerprinter.FailedFor=Impossible d''enregistrer les empreintes num\u00e9riques pour {0}
Fingerprinter.NoArchiving=Les artefacts du build sont suppos\u00e9s recevoir une empreinte num\u00e9rique, mais l''archivage n''a pas \u00e9t\u00e9 activ\u00e9
Fingerprinter.NoWorkspace=Impossible d''enregistrer les empreintes num\u00e9riques, parce qu''il n''y a pas de r\u00e9pertoire de travail
Fingerprinter.Recording=Enregistrement des empreintes num\u00e9riques
JavadocArchiver.DisplayName=Publier les Javadocs
JavadocArchiver.DisplayName.Generic=Documentation du code
JavadocArchiver.DisplayName.Javadoc=Javadoc
TestJavadocArchiver.DisplayName.Javadoc=Test Javadoc
JavadocArchiver.NoMatchFound=Pas de javadoc trouv\u00E9 dans {0}\: {1}
JavadocArchiver.NoMatchFound=Pas de javadoc trouv\u00e9 dans {0}\: {1}
JavadocArchiver.Publishing=Publication des Javadocs
JavadocArchiver.UnableToCopy=Impossible de copier les Javadocs de {0} vers {1}
Maven.DisplayName=Invoquer les cibles Maven de haut niveau
Maven.ExecFailed=L''ex\u00E9cution de la commande a \u00E9chou\u00E9.
Maven.NotMavenDirectory={0} ne semble pas \u00EAtre un r\u00E9pertoire Maven
Maven.NoExecutable=Impossible de trouver un ex\u00E9cutable dans {0}
Maven.NotADirectory={0} n''est pas un r\u00E9pertoire
Maven.ExecFailed=L''ex\u00e9cution de la commande a \u00e9chou\u00e9.
Maven.NotMavenDirectory={0} ne semble pas \u00eatre un r\u00e9pertoire Maven
Maven.NoExecutable=Impossible de trouver un ex\u00e9cutable dans {0}
Maven.NotADirectory={0} n''est pas un r\u00e9pertoire
Shell.DisplayName=Ex\u00E9cuter un script shell
Shell.DisplayName=Ex\u00e9cuter un script shell
......@@ -29,7 +29,6 @@ Ant.NotAntDirectory={0}\u306b\u306fAnt\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb
Ant.ProjectConfigNeeded=\u3069\u306eAnt\u3092\u4f7f\u3046\u304b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u306e\u3067\u306f\uff1f
ArtifactArchiver.ARCHIVING_ARTIFACTS=\u6210\u679c\u7269\u3092\u4fdd\u5b58\u4e2d
ArtifactArchiver.DeletingOld=\u53e4\u3044\u6210\u679c\u7269\u3092\u524a\u9664\u4e2d
ArtifactArchiver.DisplayName=\u6210\u679c\u7269\u3092\u4fdd\u5b58
ArtifactArchiver.FailedToArchive=\u6210\u679c\u7269\u306e\u4fdd\u5b58\u306e\u5931\u6557\u3057\u307e\u3057\u305f
ArtifactArchiver.NoIncludes=\u4fdd\u5b58\u3059\u308b\u6210\u679c\u7269\u304c\u4f55\u3082\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n\u6050\u3089\u304f\u30d5\u30a1\u30a4\u30eb\u30d1\u30bf\u30fc\u30f3\u306e\u6307\u5b9a\u3092\u5fd8\u308c\u305f\u306e\u3067\u3057\u3087\u3046\u3002\u8a2d\u5b9a\u30da\u30fc\u30b8\u306b\u623b\u3063\u3066\u30d1\u30bf\u30fc\u30f3\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\n\u3082\u3057\u672c\u5f53\u306b\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u306e\u5168\u3066\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3059\u308b\u3064\u3082\u308a\u306a\u3089\u3001"**"\u3068\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
......
......@@ -25,9 +25,8 @@ Ant.ExecFailed=uitvoeren commando gefaald.
Ant.GlobalConfigNeeded= Misschien dient u uw Ant installaties nog te configureren?
Ant.NotADirectory={0} is geen folder
Ant.NotAntDirectory={0} is geen Ant folder
Ant.ProjectConfigNeeded= Misschien dient u uw job te configureren om \u00E9\u00E9n van je Ant installaties te gebruiken?
Ant.ProjectConfigNeeded= Misschien dient u uw job te configureren om \u00e9\u00e9n van je Ant installaties te gebruiken?
ArtifactArchiver.DeletingOld=Verwijder oude artefacten van {0}
ArtifactArchiver.DisplayName=Archiveer de artefacten
ArtifactArchiver.FailedToArchive=Fout bij het archiveren van de artefacten: {0}
ArtifactArchiver.NoIncludes=Er werden geen artefacten voor archivering geconfigureerd.\nWaarschijnlijk werd geen bestands-selectiepatroon geconfigureerd. Gelieve dit te configureren.\n
......@@ -62,7 +61,7 @@ JavadocArchiver.DisplayName.Generic=Document
JavadocArchiver.DisplayName.Javadoc=Javadoc
TestJavadocArchiver.DisplayName.Javadoc=Test Javadoc
JavadocArchiver.Publishing=Javadoc wordt gepubliceerd
JavadocArchiver.UnableToCopy=Kon Javadoc niet copi\u00EBren van {0} naar {1}
JavadocArchiver.UnableToCopy=Kon Javadoc niet copi\u00ebren van {0} naar {1}
Maven.DisplayName=Voer top-niveau Maven taken uit
Maven.ExecFailed=uitvoer commando is gefaald
......
......@@ -21,30 +21,29 @@
# THE SOFTWARE.
Ant.DisplayName=Chamar Ant
Ant.ExecFailed=Execuo de comando falhou.
Ant.GlobalConfigNeeded= necessrio configurar onde sua instalao do Ant est.
Ant.NotADirectory={0} no um diretrio
Ant.NotAntDirectory={0} no parece ser um diretrio Ant
Ant.ProjectConfigNeeded= necessrio configurar a job para escolher uma de suas instalaes do Ant.
Ant.ExecFailed=Execu\u00e7\u00e3o de comando falhou.
Ant.GlobalConfigNeeded= \u00c9 necess\u00e1rio configurar onde sua instala\u00e7\u00e3o do Ant est\u00e1.
Ant.NotADirectory={0} n\u00e3o \u00e9 um diret\u00f3rio
Ant.NotAntDirectory={0} n\u00e3o parece ser um diret\u00f3rio Ant
Ant.ProjectConfigNeeded= \u00c9 necess\u00e1rio configurar a job para escolher uma de suas instala\u00e7\u00f5es do Ant.
ArtifactArchiver.DeletingOld=Removendo artefatos antigos de {0}
ArtifactArchiver.DisplayName=Arquivar os artefatos
ArtifactArchiver.FailedToArchive=Falha ao arquivar os artefatos: {0}
ArtifactArchiver.NoIncludes=Nenhum artefato est configurado para arquivamento.\n necessrio informar o padro de arquivo, volte para a configurao e especifique-o.\nSe necessitar arquivar todos os arquivos do workspace, por favor especifique "**"
ArtifactArchiver.NoMatchFound=Nenhum artefato encontrado casa com o padro de arquivo "{0}". Erro de configurao?
ArtifactArchiver.NoIncludes=Nenhum artefato est\u00e1 configurado para arquivamento.\n \u00c9 necess\u00e1rio informar o padr\u00e3o de arquivo, volte para a configura\u00e7\u00e3o e especifique-o.\nSe necessitar arquivar todos os arquivos do workspace, por favor especifique "**"
ArtifactArchiver.NoMatchFound=Nenhum artefato encontrado casa com o padr\u00e3o de arquivo "{0}". Erro de configura\u00e7\u00e3o?
BatchFile.DisplayName=Executar no comando do Windows
BuildTrigger.Disabled={0} est desabilitado. A trigger foi pulada
BuildTrigger.Disabled={0} est\u00e1 desabilitado. A trigger foi pulada
BuildTrigger.DisplayName=Construir outros projetos
BuildTrigger.InQueue={0} j esto na fila
BuildTrigger.NoSuchProject=No existe tal projeto ''{0}''. Voc quis dizer ''{1}''?
BuildTrigger.NotBuildable={0} no pode ser construdo
BuildTrigger.InQueue={0} j\u00e1 est\u00e3o na fila
BuildTrigger.NoSuchProject=N\u00e3o existe tal projeto ''{0}''. Voc\u00ea quis dizer ''{1}''?
BuildTrigger.NotBuildable={0} n\u00e3o pode ser constru\u00eddo
BuildTrigger.Triggering=Disparando um novo build de {0}
CommandInterpreter.CommandFailed=execuo de comando falhou
CommandInterpreter.UnableToDelete=No foi possvel apagar o arquivo de script {0}
CommandInterpreter.UnableToProduceScript=No foi possvel produzir um arquivo de script
CommandInterpreter.CommandFailed=execu\u00e7\u00e3o de comando falhou
CommandInterpreter.UnableToDelete=N\u00e3o foi poss\u00edvel apagar o arquivo de script {0}
CommandInterpreter.UnableToProduceScript=N\u00e3o foi poss\u00edvel produzir um arquivo de script
Fingerprinter.Aborted=Abortado
Fingerprinter.Action.DisplayName=Ver fingerprints
......@@ -52,8 +51,8 @@ Fingerprinter.DigestFailed=Falhou ao computar resumo para {0}
Fingerprinter.DisplayName=Gravar fingerprints de arquivos para trilhar o uso
Fingerprinter.Failed=Falhou ao gravar fingerprints
Fingerprinter.FailedFor=Falhou ao gravar fingerprint para {0}
Fingerprinter.NoArchiving=Os artenfatos de builds devem ter o fingerprint marcado, mas o arquivamento de artefato de builds no est configurado
Fingerprinter.NoWorkspace=No foi possvel gravar fingerprints porque no h nenhum workspace
Fingerprinter.NoArchiving=Os artenfatos de builds devem ter o fingerprint marcado, mas o arquivamento de artefato de builds n\u00e3o est\u00e1 configurado
Fingerprinter.NoWorkspace=N\u00e3o foi poss\u00edvel gravar fingerprints porque n\u00e3o h\u00e1 nenhum workspace
Fingerprinter.Recording=Gravando fingerprints
JavadocArchiver.DisplayName=Publicar Javadoc
......@@ -63,15 +62,15 @@ TestJavadocArchiver.DisplayName.Javadoc=Test Javadoc
JavadocArchiver.Publishing=Publicando Javadoc
JavadocArchiver.UnableToCopy=Incapaz de copiar Javadoc de {0} para {1}
Maven.DisplayName=Chamar alvos Maven de alto nvel
Maven.ExecFailed=execuo de comando falhou
Maven.NotMavenDirectory={0} no parece ser um diretrio Maven
Maven.NoExecutable=No pode encontrar nenhum executvel em {0}
Maven.NotADirectory={0} no um diretrio
Maven.DisplayName=Chamar alvos Maven de alto n\u00edvel
Maven.ExecFailed=execu\u00e7\u00e3o de comando falhou
Maven.NotMavenDirectory={0} n\u00e3o parece ser um diret\u00f3rio Maven
Maven.NoExecutable=N\u00e3o pode encontrar nenhum execut\u00e1vel em {0}
Maven.NotADirectory={0} n\u00e3o \u00e9 um diret\u00f3rio
Shell.DisplayName=Executar shell
# Cannot find executable from the choosen Ant installation "{0}"
Ant.ExecutableNotFound=No pode ser executado pela instalao ANT "{0}"
Ant.ExecutableNotFound=N\u00e3o pode ser executado pela instala\u00e7\u00e3o ANT "{0}"
# Archiving artifacts
ArtifactArchiver.ARCHIVING_ARTIFACTS=Arquivando artefatos
# Install from Apache
......
......@@ -20,56 +20,55 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant.DisplayName=\u0412\u044B\u0437\u0432\u0430\u0442\u044C Ant
Ant.ExecFailed=\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043F\u0440\u043E\u0432\u0430\u043B\u0438\u043B\u043E\u0441\u044C.
Ant.GlobalConfigNeeded=\u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u0430\u043C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C, \u0433\u0434\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432\u0430\u0448\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u043B\u044F\u0446\u0438\u044F Ant?
Ant.NotADirectory={0} \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0435\u0439
Ant.NotAntDirectory={0} \u043D\u0435 \u043F\u043E\u0445\u043E\u0436\u0430 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044E Ant
Ant.ProjectConfigNeeded= \u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u0430\u043C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u0435, \u0433\u0434\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432\u0430\u0448\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u043B\u044F\u0446\u0438\u044F Ant?
Ant.DisplayName=\u0412\u044b\u0437\u0432\u0430\u0442\u044c Ant
Ant.ExecFailed=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u043b\u043e\u0441\u044c.
Ant.GlobalConfigNeeded=\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0430\u0448\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f Ant?
Ant.NotADirectory={0} \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439
Ant.NotAntDirectory={0} \u043d\u0435 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e Ant
Ant.ProjectConfigNeeded= \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0430\u0448\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f Ant?
ArtifactArchiver.DeletingOld=\u0423\u0434\u0430\u043B\u044F\u044E \u0441\u0442\u0430\u0440\u044B\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B \u0438\u0437 {0}
ArtifactArchiver.DisplayName=\u0417\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B
ArtifactArchiver.FailedToArchive=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B\: {0}
ArtifactArchiver.DisplayName=\u0417\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b
ArtifactArchiver.FailedToArchive=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b\: {0}
ArtifactArchiver.NoIncludes=\
\u041D\u0435\u0442 \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u043E\u0432 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0445 \u0434\u043B\u044F \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438.\n\
\u041F\u043E\u0445\u043E\u0436\u0435, \u0432\u044B \u0437\u0430\u0431\u044B\u043B\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0435\u0440\u043D\u0438\u0442\u0435\u0441\u044C \u043D\u0430 \u044D\u043A\u0440\u0430\u043D \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u0443\u043A\u0430\u0436\u0438\u0442\u0435 \u0435\u0433\u043E.\n\
\u0415\u0441\u043B\u0438 \u0432\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0444\u0430\u0439\u043B\u044B \u0432 \u0441\u0431\u043E\u0440\u043E\u0447\u043D\u043E\u0439 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438, \u0443\u043A\u0430\u0436\u0438\u0442\u0435 "**"
ArtifactArchiver.NoMatchFound=\u0410\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u043E\u0432, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 "{0}", \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E. \u041E\u0448\u0438\u0431\u043B\u0438\u0441\u044C \u043F\u0440\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438?
\u041d\u0435\u0442 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438.\n\
\u041f\u043e\u0445\u043e\u0436\u0435, \u0432\u044b \u0437\u0430\u0431\u044b\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0435\u0433\u043e.\n\
\u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u0443\u043a\u0430\u0436\u0438\u0442\u0435 "**"
ArtifactArchiver.NoMatchFound=\u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u0443 "{0}", \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e. \u041e\u0448\u0438\u0431\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438?
BatchFile.DisplayName=\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443 Windows
BatchFile.DisplayName=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 Windows
BuildTrigger.Disabled={0} \u043F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D. \u041D\u0435 \u043C\u043E\u0433\u0443 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C
BuildTrigger.DisplayName=\u0421\u043E\u0431\u0440\u0430\u0442\u044C \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0440\u043E\u0435\u043A\u0442
BuildTrigger.InQueue={0} \u0443\u0436\u0435 \u0432 \u043E\u0447\u0435\u0440\u0435\u0434\u0438
BuildTrigger.NoSuchProject=\u041D\u0435\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 ''{0}''. \u0412\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443 ''{1}''?
BuildTrigger.NotBuildable={0} \u043D\u0435\u0441\u043E\u0431\u0438\u0440\u0430\u0435\u043C\u044B\u0439
BuildTrigger.Triggering=\u0418\u043D\u0438\u0446\u0438\u0438\u0440\u0443\u044E \u043D\u043E\u0432\u0443\u044E \u0441\u0431\u043E\u0440\u043A\u0443 {0}
BuildTrigger.Disabled={0} \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d. \u041d\u0435 \u043c\u043e\u0433\u0443 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c
BuildTrigger.DisplayName=\u0421\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442
BuildTrigger.InQueue={0} \u0443\u0436\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438
BuildTrigger.NoSuchProject=\u041d\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 ''{0}''. \u0412\u044b \u0438\u043c\u0435\u043b\u0438 \u0432 \u0432\u0438\u0434\u0443 ''{1}''?
BuildTrigger.NotBuildable={0} \u043d\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0439
BuildTrigger.Triggering=\u0418\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u044e \u043d\u043e\u0432\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 {0}
CommandInterpreter.CommandFailed=\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C
CommandInterpreter.UnableToDelete=\u041D\u0435 \u043C\u043E\u0433\u0443 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u043A\u0440\u0438\u043F\u0442 {0}
CommandInterpreter.UnableToProduceScript=\u041D\u0435 \u043C\u043E\u0433\u0443 \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u043A\u0440\u0438\u043F\u0442
CommandInterpreter.CommandFailed=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c
CommandInterpreter.UnableToDelete=\u041d\u0435 \u043c\u043e\u0433\u0443 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 {0}
CommandInterpreter.UnableToProduceScript=\u041d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
Fingerprinter.Aborted=\u041F\u0440\u0435\u0440\u0432\u0430\u043D\u043E
Fingerprinter.Action.DisplayName=\u0421\u043C\u043E\u0442\u0440\u0438 \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 (fingerprints)
Fingerprinter.DigestFailed=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044C \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0443\u044E \u0441\u0443\u043C\u043C\u0443 {0}
Fingerprinter.DisplayName=\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 \u0444\u0430\u0439\u043B\u043E\u0432 (fingerprints) \u0434\u043B\u044F \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F
Fingerprinter.Failed=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438
Fingerprinter.FailedFor=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 {0}
Fingerprinter.NoArchiving=\u0410\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B \u0441\u0431\u043E\u0440\u043A\u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u0430\u043D\u044B, \u043D\u043E \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044F \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u043E\u0432 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u0430
Fingerprinter.NoWorkspace=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438, \u0442.\u043A. \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0430 \u0441\u0431\u043E\u0440\u043E\u0447\u043D\u0430\u044F \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
Fingerprinter.Recording=\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u044E \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 (fingerprints)
Fingerprinter.Aborted=\u041f\u0440\u0435\u0440\u0432\u0430\u043d\u043e
Fingerprinter.Action.DisplayName=\u0421\u043c\u043e\u0442\u0440\u0438 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 (fingerprints)
Fingerprinter.DigestFailed=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443 {0}
Fingerprinter.DisplayName=\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 (fingerprints) \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f
Fingerprinter.Failed=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438
Fingerprinter.FailedFor=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 {0}
Fingerprinter.NoArchiving=\u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u044b, \u043d\u043e \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430
Fingerprinter.NoWorkspace=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u0442.\u043a. \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
Fingerprinter.Recording=\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u044e \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 (fingerprints)
JavadocArchiver.DisplayName=\u041E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u0442\u044C Javadoc
JavadocArchiver.DisplayName.Generic=\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442
JavadocArchiver.DisplayName=\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c Javadoc
JavadocArchiver.DisplayName.Generic=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442
JavadocArchiver.DisplayName.Javadoc=Javadoc
TestJavadocArchiver.DisplayName.Javadoc=Test Javadoc
JavadocArchiver.Publishing=\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u044E Javadoc
JavadocArchiver.UnableToCopy=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C Javadoc \u0438\u0437 {0} \u0432 {1}
JavadocArchiver.Publishing=\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u044e Javadoc
JavadocArchiver.UnableToCopy=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c Javadoc \u0438\u0437 {0} \u0432 {1}
Maven.DisplayName=\u0412\u044B\u0437\u0432\u0430\u0442\u044C \u0446\u0435\u043B\u0438 Maven \u0432\u0435\u0440\u0445\u043D\u0435\u0433\u043E \u0443\u0440\u043E\u0432\u043D\u044F
Maven.ExecFailed=\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C
Maven.NotMavenDirectory={0} \u043D\u0435 \u043F\u043E\u0445\u043E\u0436\u0430 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044E Maven
Maven.NoExecutable=\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u043D\u044F\u0435\u043C\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 {0}
Maven.NotADirectory={0} \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0435\u0439
Maven.DisplayName=\u0412\u044b\u0437\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u0438 Maven \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f
Maven.ExecFailed=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c
Maven.NotMavenDirectory={0} \u043d\u0435 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e Maven
Maven.NoExecutable=\u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 {0}
Maven.NotADirectory={0} \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439
Shell.DisplayName=\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443 shell
Shell.DisplayName=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 shell
......@@ -20,56 +20,55 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant.DisplayName=Ant \u00E7al\u0131\u015Ft\u0131r
Ant.ExecFailed=Komut \u00E7al\u0131\u015Ft\u0131rma ba\u015Far\u0131s\u0131z oldu.
Ant.GlobalConfigNeeded= Ant kurulumunun nerede oldu\u011Fu ile ilgili bir konfig\u00FCrasyon sorunu olabilir?
Ant.NotADirectory={0}, bir dizin de\u011Fil
Ant.DisplayName=Ant \u00e7al\u0131\u015ft\u0131r
Ant.ExecFailed=Komut \u00e7al\u0131\u015ft\u0131rma ba\u015far\u0131s\u0131z oldu.
Ant.GlobalConfigNeeded= Ant kurulumunun nerede oldu\u011fu ile ilgili bir konfig\u00fcrasyon sorunu olabilir?
Ant.NotADirectory={0}, bir dizin de\u011fil
Ant.NotAntDirectory={0}, bir Ant dizinine benzemiyor
Ant.ProjectConfigNeeded= \u00C7al\u0131\u015Ft\u0131rd\u0131\u011F\u0131n\u0131z i\u015F i\u00E7in bir Ant kurulumu se\u00E7meniz gerekiyor olabilir?
Ant.ProjectConfigNeeded= \u00c7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z i\u015f i\u00e7in bir Ant kurulumu se\u00e7meniz gerekiyor olabilir?
ArtifactArchiver.DeletingOld={0}''dan, eski artefaktlar siliniyor
ArtifactArchiver.DisplayName=Artefaktlar\u0131 Ar\u015Fivle
ArtifactArchiver.FailedToArchive=Artefakt ar\u015Fivleme ba\u015Far\u0131s\u0131z oldu\: {0}
ArtifactArchiver.DisplayName=Artefaktlar\u0131 Ar\u015fivle
ArtifactArchiver.FailedToArchive=Artefakt ar\u015fivleme ba\u015far\u0131s\u0131z oldu\: {0}
ArtifactArchiver.NoIncludes=\
Herhangi bir artefakt, ar\u015Fivleme i\u00E7in ayarlanmad\u0131.\n\
Konfig\u00FCrasyon k\u0131sm\u0131nda File Pattern ayarlar\u0131n\u0131 kontrol edin.\n\
\u00C7al\u0131\u015Fma alan\u0131ndaki t\u00FCm dosyalar\u0131 ar\u015Fivlemek istiyorsan\u0131z, "**" olarak belirtin.
ArtifactArchiver.NoMatchFound="{0}" file pattern''ine uyan herhangi bir artefakt bulunamad\u0131. Konfig\u00FCrasyonu kontrol edin?
Herhangi bir artefakt, ar\u015fivleme i\u00e7in ayarlanmad\u0131.\n\
Konfig\u00fcrasyon k\u0131sm\u0131nda File Pattern ayarlar\u0131n\u0131 kontrol edin.\n\
\u00c7al\u0131\u015fma alan\u0131ndaki t\u00fcm dosyalar\u0131 ar\u015fivlemek istiyorsan\u0131z, "**" olarak belirtin.
ArtifactArchiver.NoMatchFound="{0}" file pattern''ine uyan herhangi bir artefakt bulunamad\u0131. Konfig\u00fcrasyonu kontrol edin?
BatchFile.DisplayName=Windows batch komutu \u00E7al\u0131\u015Ft\u0131r
BatchFile.DisplayName=Windows batch komutu \u00e7al\u0131\u015ft\u0131r
BuildTrigger.Disabled={0} devre d\u0131\u015F\u0131 b\u0131rak\u0131lm\u0131\u015F. Tetikleme es ge\u00E7ildi.
BuildTrigger.DisplayName=Di\u011Fer projeleri yap\u0131land\u0131r
BuildTrigger.Disabled={0} devre d\u0131\u015f\u0131 b\u0131rak\u0131lm\u0131\u015f. Tetikleme es ge\u00e7ildi.
BuildTrigger.DisplayName=Di\u011fer projeleri yap\u0131land\u0131r
BuildTrigger.InQueue={0} zaten s\u0131rada
BuildTrigger.NoSuchProject=''{0}'' diye bir proje yok. ''{1}'' olabilir mi?
BuildTrigger.NotBuildable={0} yap\u0131land\u0131r\u0131labilir de\u011Fil
BuildTrigger.NotBuildable={0} yap\u0131land\u0131r\u0131labilir de\u011fil
BuildTrigger.Triggering={0} yap\u0131land\u0131rmas\u0131 tetikleniyor
CommandInterpreter.CommandFailed=komut \u00E7al\u0131\u015Ft\u0131rma ba\u015Far\u0131s\u0131z oldu
CommandInterpreter.CommandFailed=komut \u00e7al\u0131\u015ft\u0131rma ba\u015far\u0131s\u0131z oldu
CommandInterpreter.UnableToDelete=Script dosyas\u0131 {0} silinemiyor
CommandInterpreter.UnableToProduceScript=Bir script dosyas\u0131 olu\u015Fturulam\u0131yor
CommandInterpreter.UnableToProduceScript=Bir script dosyas\u0131 olu\u015fturulam\u0131yor
Fingerprinter.Aborted=Durduruldu
Fingerprinter.Action.DisplayName=Parmakizlerini g\u00F6zden ge\u00E7ir
Fingerprinter.DigestFailed={0} i\u00E7in digest olu\u015Fturma ba\u015Far\u0131s\u0131z oldu
Fingerprinter.DisplayName=Takip ama\u00E7l\u0131 dosyalar\u0131n parmakizlerini kaydet
Fingerprinter.Failed=Parmakizi kayd\u0131 ba\u015Far\u0131s\u0131z oldu
Fingerprinter.FailedFor={0} i\u00E7in parmakizi kayd\u0131 ba\u015Far\u0131s\u0131z oldu
Fingerprinter.NoArchiving=Yap\u0131land\u0131rma artefaktlar\u0131n\u0131n parmakizlerinin al\u0131nmas\u0131 gerekirdi, fakat yap\u0131land\u0131rma artefaktlar\u0131 i\u00E7in bir ar\u015Fivleme konfig\u00FCrasyonu yap\u0131lmam\u0131\u015F.
Fingerprinter.NoWorkspace=Herhangi bir \u00E7al\u0131\u015Fma alan\u0131 olmad\u0131\u011F\u0131 i\u00E7in parmakzi kaydedilemiyor.
Fingerprinter.Action.DisplayName=Parmakizlerini g\u00f6zden ge\u00e7ir
Fingerprinter.DigestFailed={0} i\u00e7in digest olu\u015fturma ba\u015far\u0131s\u0131z oldu
Fingerprinter.DisplayName=Takip ama\u00e7l\u0131 dosyalar\u0131n parmakizlerini kaydet
Fingerprinter.Failed=Parmakizi kayd\u0131 ba\u015far\u0131s\u0131z oldu
Fingerprinter.FailedFor={0} i\u00e7in parmakizi kayd\u0131 ba\u015far\u0131s\u0131z oldu
Fingerprinter.NoArchiving=Yap\u0131land\u0131rma artefaktlar\u0131n\u0131n parmakizlerinin al\u0131nmas\u0131 gerekirdi, fakat yap\u0131land\u0131rma artefaktlar\u0131 i\u00e7in bir ar\u015fivleme konfig\u00fcrasyonu yap\u0131lmam\u0131\u015f.
Fingerprinter.NoWorkspace=Herhangi bir \u00e7al\u0131\u015fma alan\u0131 olmad\u0131\u011f\u0131 i\u00e7in parmakzi kaydedilemiyor.
Fingerprinter.Recording=Parmakizi kaydediliyor
JavadocArchiver.DisplayName=Javadoc yay\u0131nla
JavadocArchiver.DisplayName.Generic=Dok\u00FCman
JavadocArchiver.DisplayName.Generic=Dok\u00fcman
JavadocArchiver.DisplayName.Javadoc=Javadoc
TestJavadocArchiver.DisplayName.Javadoc=Test Javadoc
JavadocArchiver.Publishing=Javadoc yay\u0131nlan\u0131yor
JavadocArchiver.UnableToCopy={0}''dan {1}''e Javadoc kopyalanam\u0131yor
Maven.DisplayName=En \u00FCst seviye Maven hedeflerini \u00E7al\u0131\u015Ft\u0131r
Maven.ExecFailed=Komut \u00E7al\u0131\u015Ft\u0131rma ba\u015Far\u0131s\u0131z
Maven.DisplayName=En \u00fcst seviye Maven hedeflerini \u00e7al\u0131\u015ft\u0131r
Maven.ExecFailed=Komut \u00e7al\u0131\u015ft\u0131rma ba\u015far\u0131s\u0131z
Maven.NotMavenDirectory={0}, bir Maven dizinine benzemiyor
Maven.NoExecutable={0} i\u00E7erisinde herhangi bir \u00E7al\u0131\u015Ft\u0131r\u0131labilir bulunamad\u0131
Maven.NotADirectory={0}, bir dizin de\u011Fil
Maven.NoExecutable={0} i\u00e7erisinde herhangi bir \u00e7al\u0131\u015ft\u0131r\u0131labilir bulunamad\u0131
Maven.NotADirectory={0}, bir dizin de\u011fil
Shell.DisplayName=Shell \u00E7al\u0131\u015Ft\u0131r
Shell.DisplayName=Shell \u00e7al\u0131\u015ft\u0131r
......@@ -29,7 +29,6 @@ Ant.NotAntDirectory={0} \u4e0d\u50cf\u662f Ant \u76ee\u9304
Ant.ProjectConfigNeeded=\u4e5f\u8a31\u60a8\u61c9\u8a72\u8a2d\u5b9a\u5c08\u6848\uff0c\u6311\u9078\u4e00\u4efd Ant?
ArtifactArchiver.ARCHIVING_ARTIFACTS=\u5c01\u5b58\u6210\u54c1
ArtifactArchiver.DeletingOld=\u7531 {0} \u522a\u9664\u820a\u6210\u54c1
ArtifactArchiver.DisplayName=\u5c01\u5b58\u6210\u54c1
ArtifactArchiver.FailedToArchive=\u7121\u6cd5\u5c01\u5b58\u6210\u54c1: {0}
ArtifactArchiver.NoIncludes=\
......
......@@ -33,13 +33,9 @@ import hudson.model.BuildListener;
import hudson.model.FreeStyleBuild;
import hudson.model.FreeStyleProject;
import hudson.model.Result;
import hudson.model.StreamBuildListener;
import hudson.tasks.LogRotatorTest.TestsFail;
import static hudson.tasks.LogRotatorTest.build;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import jenkins.util.VirtualFile;
......@@ -49,98 +45,19 @@ import static org.junit.Assume.*;
import org.junit.Rule;
import org.junit.Test;
import org.jvnet.hudson.test.Bug;
import org.jvnet.hudson.test.FailureBuilder;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.TestBuilder;
import org.jvnet.hudson.test.recipes.LocalData;
/**
* Verifies that artifacts from the last successful and stable builds of a job will be kept if requested.
*/
public class ArtifactArchiverTest {
@Rule public JenkinsRule j = new JenkinsRule();
@Test
public void testSuccessVsFailure() throws Exception {
FreeStyleProject project = j.createFreeStyleProject();
project.getPublishersList().replaceBy(Collections.singleton(new ArtifactArchiver("f", "", true, false)));
assertEquals("(no artifacts)", Result.FAILURE, build(project)); // #1
assertFalse(project.getBuildByNumber(1).getHasArtifacts());
project.getBuildersList().replaceBy(Collections.singleton(new CreateArtifact()));
assertEquals(Result.SUCCESS, build(project)); // #2
assertTrue(project.getBuildByNumber(2).getHasArtifacts());
project.getBuildersList().replaceBy(Arrays.asList(new CreateArtifact(), new FailureBuilder()));
assertEquals(Result.FAILURE, build(project)); // #3
assertTrue(project.getBuildByNumber(2).getHasArtifacts());
assertTrue(project.getBuildByNumber(3).getHasArtifacts());
assertEquals(Result.FAILURE, build(project)); // #4
assertTrue(project.getBuildByNumber(2).getHasArtifacts());
assertTrue(project.getBuildByNumber(3).getHasArtifacts());
assertTrue(project.getBuildByNumber(4).getHasArtifacts());
assertEquals(Result.FAILURE, build(project)); // #5
assertTrue(project.getBuildByNumber(2).getHasArtifacts());
assertFalse("no better than #4", project.getBuildByNumber(3).getHasArtifacts());
assertTrue(project.getBuildByNumber(4).getHasArtifacts());
assertTrue(project.getBuildByNumber(5).getHasArtifacts());
project.getBuildersList().replaceBy(Collections.singleton(new CreateArtifact()));
assertEquals(Result.SUCCESS, build(project)); // #6
assertTrue("#2 is still lastSuccessful until #6 is complete", project.getBuildByNumber(2).getHasArtifacts());
assertFalse(project.getBuildByNumber(3).getHasArtifacts());
assertFalse(project.getBuildByNumber(4).getHasArtifacts());
assertTrue(project.getBuildByNumber(5).getHasArtifacts());
assertTrue(project.getBuildByNumber(6).getHasArtifacts());
assertEquals(Result.SUCCESS, build(project)); // #7
assertFalse("lastSuccessful was #6 for ArtifactArchiver", project.getBuildByNumber(2).getHasArtifacts());
assertFalse(project.getBuildByNumber(3).getHasArtifacts());
assertFalse(project.getBuildByNumber(4).getHasArtifacts());
assertFalse(project.getBuildByNumber(5).getHasArtifacts());
assertTrue(project.getBuildByNumber(6).getHasArtifacts());
assertTrue(project.getBuildByNumber(7).getHasArtifacts());
}
@Test
@Bug(2417)
public void testStableVsUnstable() throws Exception {
FreeStyleProject project = j.createFreeStyleProject();
Publisher artifactArchiver = new ArtifactArchiver("f", "", true, false);
project.getPublishersList().replaceBy(Collections.singleton(artifactArchiver));
project.getBuildersList().replaceBy(Collections.singleton(new CreateArtifact()));
assertEquals(Result.SUCCESS, build(project)); // #1
assertTrue(project.getBuildByNumber(1).getHasArtifacts());
project.getPublishersList().replaceBy(Arrays.asList(artifactArchiver, new TestsFail()));
assertEquals(Result.UNSTABLE, build(project)); // #2
assertTrue(project.getBuildByNumber(1).getHasArtifacts());
assertTrue(project.getBuildByNumber(2).getHasArtifacts());
assertEquals(Result.UNSTABLE, build(project)); // #3
assertTrue(project.getBuildByNumber(1).getHasArtifacts());
assertTrue(project.getBuildByNumber(2).getHasArtifacts());
assertTrue(project.getBuildByNumber(3).getHasArtifacts());
assertEquals(Result.UNSTABLE, build(project)); // #4
assertTrue(project.getBuildByNumber(1).getHasArtifacts());
assertFalse(project.getBuildByNumber(2).getHasArtifacts());
assertTrue(project.getBuildByNumber(3).getHasArtifacts());
assertTrue(project.getBuildByNumber(4).getHasArtifacts());
project.getPublishersList().replaceBy(Collections.singleton(artifactArchiver));
assertEquals(Result.SUCCESS, build(project)); // #5
assertTrue(project.getBuildByNumber(1).getHasArtifacts());
assertFalse(project.getBuildByNumber(2).getHasArtifacts());
assertFalse(project.getBuildByNumber(3).getHasArtifacts());
assertTrue(project.getBuildByNumber(4).getHasArtifacts());
assertTrue(project.getBuildByNumber(5).getHasArtifacts());
assertEquals(Result.SUCCESS, build(project)); // #6
assertFalse(project.getBuildByNumber(1).getHasArtifacts());
assertFalse(project.getBuildByNumber(2).getHasArtifacts());
assertFalse(project.getBuildByNumber(3).getHasArtifacts());
assertFalse(project.getBuildByNumber(4).getHasArtifacts());
assertTrue(project.getBuildByNumber(5).getHasArtifacts());
assertTrue(project.getBuildByNumber(6).getHasArtifacts());
}
@Test
@Bug(3227)
public void testEmptyDirectories() throws Exception {
FreeStyleProject project = j.createFreeStyleProject();
Publisher artifactArchiver = new ArtifactArchiver("dir/", "", false, false);
Publisher artifactArchiver = new ArtifactArchiver("dir/");
project.getPublishersList().replaceBy(Collections.singleton(artifactArchiver));
project.getBuildersList().replaceBy(Collections.singleton(new TestBuilder() {
public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
......@@ -169,7 +86,9 @@ public class ArtifactArchiverTest {
@Bug(10502)
public void testAllowEmptyArchive() throws Exception {
FreeStyleProject project = j.createFreeStyleProject();
project.getPublishersList().replaceBy(Collections.singleton(new ArtifactArchiver("f", "", false, true)));
ArtifactArchiver aa = new ArtifactArchiver("f");
aa.setAllowEmptyArchive(true);
project.getPublishersList().replaceBy(Collections.singleton(aa));
assertEquals("(no artifacts)", Result.SUCCESS, build(project));
assertFalse(project.getBuildByNumber(1).getHasArtifacts());
}
......@@ -190,7 +109,9 @@ public class ArtifactArchiverTest {
return true;
}
});
p.getPublishersList().add(new ArtifactArchiver("dir/lodge", "", false, true));
ArtifactArchiver aa = new ArtifactArchiver("dir/lodge");
aa.setAllowEmptyArchive(true);
p.getPublishersList().add(aa);
FreeStyleBuild b = j.assertBuildStatusSuccess(p.scheduleBuild2(0));
FilePath ws = b.getWorkspace();
assertNotNull(ws);
......@@ -217,37 +138,6 @@ public class ArtifactArchiverTest {
fail("Build " + buildNumber + " did not created.");
}
@Test
public void testPrebuildWithConcurrentBuilds() throws IOException, Exception{
FreeStyleProject project = j.createFreeStyleProject();
j.jenkins.setNumExecutors(4);
//logest build
project.getBuildersList().add(new Shell("sleep 100"));
project.setConcurrentBuild(true);
Publisher artifactArchiver = new ArtifactArchiver("dir/", "", true, false);
runNewBuildAndStartUnitlIsCreated(project);
//shortest build
project.getBuildersList().clear();
j.buildAndAssertSuccess(project);
//longest build
project.getBuildersList().add(new Shell("sleep 100"));
runNewBuildAndStartUnitlIsCreated(project);
AbstractBuild build = project.getLastBuild();
BuildListener listner = new StreamBuildListener(BuildListener.NULL.getLogger(), Charset.defaultCharset());
try{
System.out.println("last build is " + project.getLastBuild());
for(AbstractBuild b: project.getBuilds()){
System.out.println(" build " + b + " sttus " + b.getResult());
}
boolean ok = artifactArchiver.prebuild(build, listner);
assertTrue("Artefact archiver should not have any problem.", ok);
}
catch(Exception e){
fail("Artefact archiver should not throw exception " + e + " for concurrent builds");
}
}
static class CreateArtifact extends TestBuilder {
public boolean perform(AbstractBuild<?,?> build, Launcher launcher, BuildListener listener) throws IOException, InterruptedException {
build.getWorkspace().child("f").write("content", "UTF-8");
......@@ -266,11 +156,12 @@ public class ArtifactArchiverTest {
@Bug(22698)
public void testArchivingSkippedWhenOnlyIfSuccessfulChecked() throws Exception {
FreeStyleProject project = j.createFreeStyleProject();
project.getPublishersList().replaceBy(Collections.singleton(new ArtifactArchiver("f", "", false, false, false)));
ArtifactArchiver aa = new ArtifactArchiver("f");
project.getPublishersList().replaceBy(Collections.singleton(aa));
project.getBuildersList().replaceBy(Collections.singleton(new CreateArtifactAndFail()));
assertEquals(Result.FAILURE, build(project));
assertTrue(project.getBuildByNumber(1).getHasArtifacts());
project.getPublishersList().replaceBy(Collections.singleton(new ArtifactArchiver("f", "", false, false, true)));
aa.setOnlyIfSuccessful(true);
assertEquals(Result.FAILURE, build(project));
assertTrue(project.getBuildByNumber(1).getHasArtifacts());
assertFalse(project.getBuildByNumber(2).getHasArtifacts());
......@@ -316,7 +207,8 @@ public class ArtifactArchiverTest {
public void testDefaultExcludesOff() throws Exception {
FreeStyleProject project = j.createFreeStyleProject();
Publisher artifactArchiver = new ArtifactArchiver("**", "", false, false, true, false);
ArtifactArchiver artifactArchiver = new ArtifactArchiver("**");
artifactArchiver.setDefaultExcludes(false);
project.getPublishersList().replaceBy(Collections.singleton(artifactArchiver));
project.getBuildersList().replaceBy(Collections.singleton(new CreateDefaultExcludesArtifact()));
......@@ -325,4 +217,18 @@ public class ArtifactArchiverTest {
assertTrue(artifacts.child(".svn").child("file").exists());
assertTrue(artifacts.child("dir").child(".svn").child("file").exists());
}
@LocalData
@Test public void latestOnlyMigration() throws Exception {
FreeStyleProject p = j.jenkins.getItemByFullName("sample", FreeStyleProject.class);
assertNotNull(p);
@SuppressWarnings("deprecation")
LogRotator lr = p.getLogRotator();
assertNotNull(lr);
assertEquals(1, lr.getArtifactNumToKeep());
String xml = p.getConfigFile().asString();
assertFalse(xml, xml.contains("<latestOnly>"));
assertTrue(xml, xml.contains("<artifactNumToKeep>1</artifactNumToKeep>"));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册