/ / Zastępowanie zmiennych w OctopusDeploy - octopus-deploy

Zastępowanie zmiennych w OctopusDeploy - ośmiornica-deploy

Próbuję zastąpić zmiennej # {port} podczas wdrażania przy użyciu OctopusDeploy.Możę to zrobić, jeśli bezpośrednio dodać go w moim App.Config w następujący sposób:

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

Czy istnieje sposób, aby dodać tu domyślny port (np25555, aby programiści mogli z niego korzystać bez zastępowania # {portu} zawsze), ale nadal określają OctopusDeploy, że ten konkretny port musi zostać zmodyfikowany? (Korzystam z wdrożeń dla wielu dzierżawców)

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz użyć funkcji transformacji XML plików konfiguracyjnych w połączeniu z wdrożeniem Octopus.

Ośmiornica sama może uruchomić te transformacje. Podczas kompilacji kodu zmieniany jest plik app.config [applicationName].exe.config Jeśli utworzysz plik o nazwie [applicationName].exe.release.config i dodaj to do twojego pakietu, możesz użyć tego samego stylu transformacji, który normalnie używałbyś w transformacjach web.config, w tym pliku. Jeśli Octopus widzi plik o nazwie *.release.config uruchomi wszelkie transformacje podczas procesu wdrażania.

Alternatywnie Ten blog zawiera instrukcje rozszerzenia projektu, dzięki czemu można użyć możliwości transformacji plików web.config w plikach app.config.

Możesz zrobić to na kilka sposobów. Miej w sobie "podstawową" wartość zakodowaną app.config następnie Zmienna Ośmiornicy jako transformacja w app.release.config. Podczas budowania i pakowania kodu, dopóki używana jest konfiguracja "wydania", transformacja zostanie uruchomiona, a zakodowana wartość zostanie zastąpiona przez kompilację i dodana do pakietu.

Lub możesz zrobić to na odwrót, mieć mocno zakodowaną wartość w app.debug.config oraz zmienną Octopus w pliku app.config. Gdy programista uruchomi kompilację debugowania, zmienna zostanie zastąpiona przez wartość w pliku debug.config.


1 dla odpowiedzi nr 2

Obsługa ośmiornicy if i unless w zmiennych substytucjach (docs: http://docs.octopusdeploy.com/display/OD/Variable+Substitution+Syntax)

Oznacza to, że możesz zastosować wartość domyślną ze względną łatwością.

Po pierwsze, jeśli zmienna istnieje, użyj go:

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

Po drugie, jeśli zmienna nie istnieje, użyj wartości domyślnej:

#{unless port}25555#{/unless}

Po prostu połącz je razem:

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