Azure DevOps, czyli spinamy proces

Instalacja skryptów bazodanowych na kolejnym środowisku to zawsze ważne wydarzenie w Twoim projekcie? Wydarzenie, które zabiera czas i energię dla wielu osób. Od programistów, przez administratorów, po osoby, które muszę zatwierdzić kod, którego nie widziały na oczy. W poniższym artykule przedstawię proces, który sprawia, że instalacje stają się codziennością.
Do prezentacji wykorzystam Azure DevOps oraz opisane we wcześniejszych artykułach metody i narzędzia. Głównie skupię się tutaj na tym, co może stać się z kodem i w jaki sposób może zostać zainstalowany po uzyskaniu akceptacji w Pull Requeście. Wykorzystam konfigurację utworzoną na Azure DevOps. Repozytorium będzie utrzymywane właśnie tam. Dla potrzeb artykułu uruchomiłem lokalnie na swoim komputerze bazę danych w kontenerze Dockera. Mój komputer został połączony jako maszyna wirtualna do Azuee, dzięki czemu mogę wykorzystać go w procesie instalacji.
Kroki procesu wyglądają następująco. W pierwszym z nich Programista commituje kod do repozytorium, które jest hostowane na Azure DevOps. Tworzy Pull Requesta, który uruchamia zdefiniowanego wcześniej Pipeline. Pipeline uruchamia proces na wcześniej zdefiniowanej maszynie, na której jest uruchomiona baza danych w kontenerze. Ściąga tam repozytorium, uruchamia liquibase instalującego skrypty bazodanowe, uruchamia testy sprawdzające poprawność instalacji i zamyka proces. Całość trwa kilkanaście sekund, po których mamy pewność i wiedzę, że kod, który utworzyliśmy, instaluje się poprawnie, a testy nie wykryły żadnych zmian.
Kod konfiguracyjny może wyglądać w ten sposób:
# azure-pipelines.yml
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
branches:
include:
- master
stages:
- stage: deploy
jobs:
- deployment: Test_Deploy
displayName: Test_Deploy_from_Azure_to_PC
# wskazanie, na środowisko uruchomienia skryptu - w tym przypadku wcześniej dodany PC
environment:
name: dev-local-pc
resourceType: VirtualMachine
strategy:
runOnce:
deploy:
steps:
# Pobranie kodu z repozytorium
- checkout: self
displayName: 'Checkout git repository'
- script: ./utils/liquibase.bat --changeLogFile=master.xml --defaultsFile=utils\liquibase.properties status --verbose
displayName: 'List scripts to install'
- script: ./utils/liquibase.bat --changeLogFile=master.xml --defaultsFile=utils\liquibase.properties --log-level=info update
displayName: 'Install scripts on database'
- script: ./utils/ci/check_invalid.bat
displayName: 'Recompile invalid objects'
- script: ./utils/utPLSQL-cli/bin/utplsql.bat run user/password@localhost:1521/orclpdb1
displayName: 'Run Database Tests'
Jest to tylko przykładowa konfiguracja, która umożliwia automatyczną instalację skryptów na bazie danych. Można ją rozszerzyć o inne środowiska i dodać kolejne kroki.
Mam nadzieję, że dzięki serii artykułów proces CI oraz CD został przybliżony i przestał być tak mocno skomplikowany. Liczę, że wszystkie te wskazówki pomogą w automatyzacji deploymentów, dzięki czemu przyśpiesza proces wytwarzania oprogramowania w bazach danych Oracle.
W przypadku, jeśli któryś z czytelników miałby jakieś pytania lub uwagi do artykułu, zachęcam do kontaktu. Z chęcią pomogę wdrożyć proces CI i CD w Twoim projekcie oraz odpowiem na nurtujące pytania.
Najnowsze komentarze