W dzisiejszym świecie CI/CD praktycznie w każdym przypadku potrzebujemy możliwości podmiany lub przypisania zmiennych i sekretów. Zarówno na etapie budowania projektu, ale także na etapie „Release’a”. Jednym z kluczowych elementów umożliwiających elastyczność i dostosowanie procesów CI/CD są zmienne. W tym wpisie przyjrzymy się, jak zmienne w Azure DevOps mogą pomóc w efektywnym zarządzaniu projektem i jego wdrażaniem.
Czym są zmienne w Azure DevOps?
Zmienne w Azure DevOps to sposób na przechowywanie danych, które mogą być używane i ponownie używane w różnych etapach procesu CI/CD. Mogą to być ścieżki do katalogów, hasła, tokeny dostępu, nazwy środowisk i wiele innych. Zmienne mogą być ustawiane na poziomie pipeline’ów, etapów, zadań, a nawet agentów. W tym wpisie skupimy się na utworzeniu zmiennych zarówno dla etapu Release jak i Pipeline’u.
Jak zacząć?
Założenie wstępne jakie musimy poczynić to założony wcześniej projekt na platformie Azure DevOps. Repozytorium nie będzie konieczne. Najpierw zaczynamy od utworzenia grupy zmiennych, które można będzie wykorzystać w Build Pipeline. Wchodzimy do zakładki Library i dodajemy Variable group.
Teraz możemy zmienić nazwę grupy a także dodać zmienne / sekrety będące jej częścią. Poprzez zakładkę Security możemy ograniczyć dostęp do tej grupy zmiennych.
W tym momencie mamy już dostępną grupę zmiennych do której mamy dostęp w plikach YAML.
Oto składnia dzięki której sięgamy do tych zmiennych.
Drugim etapem jest dodanie zmiennych na poziomie Release. Co ważne możemy tam też skorzystać ze zmiennych zdefiniowanych w „Variable Group” poprzez ich linkowanie. Wchodzimy do zakładki Variables w Releases. Tutaj dodajemy sekrety widoczne tylko w przypadku Release’a.
W zakładce Variable Groups możemy dodać referencję do grupy dodanej wcześniej.
W kolejnej części dowiemy się jak wykorzystać te zmienne w budowaniu i wdrażaniu projektów.
Linki do rozszerzenia wiedzy:
https://medium.com/@sobisw/demystifying-variable-groups-in-azure-devops-2d0c2bf64373
https://damienaicheh.github.io/azure/devops/2021/02/10/variable-templates-azure-devops-en.html