Windows - Undgå ren fejl (og dermed bygge) fra noget, der låser en build directory

Indlæg af Hanne Mølgaard Plasc

Problem



Windows CMD-prompten er en skyldig - jeg kan undertiden cd ind i en af ​​mine underkataloger for at tjekke noget ud, og medmindre jeg lukker konsollen eller cd'en ud et andet sted, vil min næste build naturligvis svigte, fordi det kan ' t slet bygge mapper.


Så sikker på, jeg kan bare afslutte CMD-prompten eller cd'en, men jeg glemmer, og før jeg ved det, har min CI-server alle disse fejlede bygninger bare på grund af dette.


Jeg kan forestille mig der er ingen måde Ant kan tvinge sletningen, men er der en anden god strategi? Kan Ant blive bedt om at forsøge at slette men ikke fejle, hvis det ikke kan? Jeg kan se, at dette måske ikke er en god ide, men det er noget jeg skal veje specifikt til mit scenario.


Eller i det mindste er der en cmd.exe-løsning eller en alternativ cmd-linje, der ikke låser den nuværende arbejdsmappe?

Bedste reference


Windows vil ikke tillade dig at slette en mappe, hvis en anden er i den pågældende mappe. Det betyder ikke noget om det er et konsolvindue eller et Explorer-vindue. Der er ingen reel vej rundt om det, undtagen ved at dræbe processen først.


Hvilket Kontinuerligt Integrationsværktøj bruger du? Hvis du bruger Jenkins eller Hudson (Jenkins forked off of Hudson for et par måneder siden), kan du se arbejdskataloget ved at klikke på linket Arbejdsregister på venstre side af browservinduet. Det vil give dig et indblik i din arbejdskatalog (så du kan tjekke alt), men vil ikke låse op i biblioteket og forhindre sletning. [1] [2]


Hvis du skal komme på byggemaskinen, skal du deaktivere jobbet, så byggeserveren vil ikke forsøge at bygge, mens du tjekker tingene ud.

Andre referencer 1


For det første tror jeg ikke, at du skal logge ind på din build server og se på underkataloger så ofte, at dette er et konsekvent problem. Er du i færd med at bygge på buildserveren selv? Hvis så er du bedre på at sørge for du kan køre det nøjagtige samme build script fra en udvikler maskine og kan arbejde på det lokalt. Konsistens er nøglen.


Udover det kan du dræbe de sessioner, der er vært for kommandovinduet. Kommandolinjerne vil indgå i interaktive sessioner. Du kan opsætte en planlagt proces for at finde og dræbe inaktive men efterfølgende sessioner. Her er en god vejledning til at gøre det interaktivt, men det kan let scriptes.


http://www.howtogeek.com/howto/windows/command-line-hack-for-terminal-server-has-exceeded-the-maximum-number-of-allowed-connections/[3]


Du skal definere dine egne kriterier for hvornår du skal automatisk dræbe sessioner.

Andre referencer 2


Du ønsker måske at udforske 'stille' og 'failonerror' attributter af ant slette opgaven.
Pas på dog.

Andre referencer 3


Kan det være virusscanning, der forårsager problemer? Måske udelukkende at udelukke denne mappe ville fungere.