/ / Variabilná substitúcia v OctopusDeploy - nasadenie chobotnice

Substitúcia premenných v OctopusDeploy - octopus-nasadiť

Ja sa snažím nahradiť # {port} premennú počas nasadenia pomocou OctopusDeploy.

<services>
<service name="SampleService" behaviorConfiguration="ServiceBehaviour">
<host>
<baseAddresses>
<add baseAddress="http://localhost:#{port}/SampleService/" />
</baseAddresses>
</host>
..
</service>

Existuje spôsob, ako tu môžem pridať predvolený port (povedzme25555, takže vývojári ho môžu používať bez toho, aby museli nahradiť # {port} vždy), ale stále určujú, že tento konkrétny port musí byť upravený? (Používam nasadenia viacerých nájomníkov)

odpovede:

1 pre odpoveď č. 1

Môžete použiť funkciu transformácie XML konfiguračných súborov v spojení s nasadením Octopus.

Tieto transformácie môže spúšťať samotný Octopus. Keď kompilujete váš kód, app.config sa premenuje [applicationName].exe.config Ak vytvoríte súbor s názvom [applicationName].exe.release.config a pridajte to do svojho balíka potom môžete použiť rovnaký štýl transformácie, ktorý by ste normálne používali v transformáciách web.config, v tomto súbore. Ak Octopus vidí súbor s názvom *.release.config počas procesu zavádzania bude spúšťať akékoľvek transformácie.

alternatívne Tento blog obsahuje pokyny na rozšírenie vášho projektu, takže môžete použiť transformačnú schopnosť súborov web.config v súboroch app.config.

Takže by ste to mohli urobiť niekoľkými spôsobmi. Majte pevnú kódovanú hodnotu vo vás "základňa" app.config potom majú premennú Octopus ako transformáciu v app.release.config, Keď vytvoríte a zabalíte svoj kód, pokiaľ použijete konfiguráciu "release", transformácia bude oheň a pevná kódovaná hodnota bude nahradená vašou zostavou a pridaná do balíka.

Alebo by ste to mohli urobiť opačne, mať pevne zakódovanú hodnotu v app.debug.config a premenná Octopus v app.config. Keď vývojár spustí ladenie, zostavenie premennej by bolo nahradené hodnotou v debug.config.


1 pre odpoveď č. 2

Chobotnice podporuje if a unless v premenných substitúciách (dokumenty: http://docs.octopusdeploy.com/display/OD/Variable+Substitution+Syntax)

To znamená, že môžete použiť predvolené nastavenie relatívne ľahko.

Po prvé, ak premenná existuje, použite ju:

#{if port}#{port}#{/if}

Po druhé, ak premenná neexistuje, použite predvolenú hodnotu:

#{unless port}25555#{/unless}

Takže ich skombinujte:

#{if port}#{port}#{/if}#{unless port}25555#{/unless}