Domanda

Ho definito una build in TFS 2010 con una posizione di caduta come "\ Server \ Builddrop \".Quando faccio la cottura, lascia cadere la build in qualcosa come "\ Server \ Builddrop \ mybuild \ mybuild_20120309.1".

Mi piacerebbe essere in grado di definire una build che cadrà in una posizione esatta che non cambia mai. Posso modificare la definizione di build per rilasciare sempre in una posizione come questa?

1) \ server \ builddrop \ mybuild \
o
. 2) \ Server \ Builddrop \ mybuild \ Ultime \

È stato utile?

Soluzione

Se le persone vogliono sapere dove trovare le ultime build, penso che sia meglio educarli su dove si trova la posizione di caduta e quali sono i nomi di build in modo che possano facilmente determinare quale è l'ultimo se stesso. Se si desidera copiare l'output del luogo di rilascio nella stessa directory, è necessario creare un modello personalizzato (modificando il modello predefinito) che esegue la build. Durante la mia build, dopo aver copiato i file nella posizione di rilascio, eseguo uno script per copiare i file nella posizione di caduta in una "ultima" directory comune. Tuttavia, è possibile effettuare facilmente problemi in cui le persone stanno accedendo ai file nell'ultima directory della directory mentre si esegue una build, e quindi la bobina non riesce perché non può sovrascrivere tali file.

Se si desidera determinare la posizione di rilascio dell'ultima build di successo è possibile farlo anche a livello di programmazione. Di seguito è riportato uno snippet di un'attività personalizzata che ho scritto per fare proprio questo:

        string tfsUri = "http://pathToTfsServer:8080/tfs";
        string projectName = "MyTfsProject";
        string buildDefinition = "MyTfsBuildDefinitionName";

        // connect to the Project and query the builds of the BuildDefinition
        var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(tfsUri), new UICredentialsProvider());
        tfs.EnsureAuthenticated();
        var buildServer = tfs.GetService<IBuildServer>();
        var buildDetails = buildServer.QueryBuilds(projectName, buildDefinition);

        // sort builds based on start time
        Array.Sort(buildDetails, delegate(IBuildDetail build1, IBuildDetail build2)
        {
            return build1.StartTime.CompareTo(build2.StartTime);
        });

        // return only the last successful build that currently exists
        for (int i = buildDetails.Length - 1; i >= 0; i--)
        {
            if (buildDetails[i].Status == BuildStatus.Succeeded && buildDetails[i].IsDeleted == false)
                return buildDetails[i];
        }
.

Se stai cercando di personalizzare il team build 2010, suggerisco di leggere Esercitazioni di Ewald Hoffman sull'argomento .

Altri suggerimenti

Quando viene attivata una build, verrà creata una cartella nella posizione di caduta specificata come

    .
  • mybuild_20120309.1
  • mybuild_20120309.2
  • mybuild_20120310.1

    La convenzione di denominazione della cartella è "Build Definition"_"yyyymmdd"."build number" Il numero di build è il numero di build indicato in un giorno.Quindi, quando si attiva una build, puoi andare la posizione di build drop e basta andare la cartella più recente (in base alla convenzione di denominazione) e ottenere la configurazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top