Entity Framework 6 Code First je přístup, který nám umožňuje popsat datový model pomocí C# tříd a na základě těchto tříd vytvořit migrační script, který se spustí nad databází.

 

V databázi se potom udržuje tabulka dbo.__MigrationHistory, která uchovává informace o aplikovaných migracích.

 

EntityFramework nuget balíček obsahuje migrate.exe, který naleznete na adrese \packages\EntityFramework.{Version}\tools. Migrate.exe tool umožňuje spustit EF migrace v příkazovém řádku.

Aby migrate.exe fungoval správně, musí se nacházet spolu s assembly, která obsahuje migration configuration type.

migrate.PNG


1) Build

Přidáme dva tasky typu Copy Files. První vykopíruje migrate.exe do vámi určené speciální složky a druhý nakopíruje do stejné složky skompilovanou aplikaci.

copy2.PNGcopy2.PNG

 

2) Release

Přidáme task typu Command Line, kde spustíme soubor migrate.exe s parametry connectionString a connectionProviderName. $(connectionstring) je proměnná, jejiž hodnotu máme uloženou v release variables.

cl.PNG 




Azure DevOps nabízí hned několik služeb pro správu vašeho projektu, které jsou mezi sebou propojené. Jedny z těchto služeb jsou taky CI/CD.

Continuous Integration - je souhr úkolů, které integrují a validují práci jednotlivých vývojářů na projektu. Můžeme si to představit jako souhrn úkolů, které započnou od commitnutí změn do repozitáře, následný build a analýza kódu, až po spuštění automatických testů.

Continuous Delivery - má potom za úkol doručit vytvořený build v CI někam na server.

Pro nastavení CI se musíme proklikat v Azure DevOps do záložky Pipelines a následně Builds. Při vytváření nové build pipeline musíme první zvolit zdroj pro stahování zdrojových kódu. Máme hned několik možností - Azure DevOps Git, Gighub, SVN,...

CI_RepoSource.PNG

Já mám uložené zdrojové kody přímo v Azure DevOps Repos, tak vyberu zdroj - Azure DevOps Git

Dále si musím vybrat šablonu pro build, která nám vyhovuje. Jelikož se jedná o ASP.NET aplikaci, tak zvolíme šablonu ASP.NET, která zahrnuje kroky - build, test.

CI_Templates.PNG

A dále nám vyskočí souhrn kroků vybrané šablony - nuget restore, build, test, publish artifacts, které můžeme libovolně dále upravovat.

Pokud bychom do pipeline chtěli přidat ještě analýzu kódu pomoci SonarCloud, tak stačí k Agentovi přidat další tasky - Prepare analysis on SonarCloudRun Code Analysis, které slouží pro integraci se zmíněným SonarCloudem.

CI_Steps.PNG

Finální build pipeline potom bude vypadat následovně. Build pipeline se bude potom automaticky spouštět na základě změn ve dříve vybraném repozitáři a branche.

CI_Final.PNG

Tak a teď bychom potřebovali zaintegrované změny a buildy nějak dostat na náš server, aby změny byly viditelné.

To už se odehrává v záložce Releases, kde vytvoříme novou release pipeline.
Musíme nastavit dva kroky. První z nich je abychom vybrali šablonu pro to, co se má vykonat za akci. V našem případě půjde o Azure App Service deployment, které vyžaduje připojení na naše Azure předplatné a již vytvořenou službu Web App service, do které chcete aplikaci vypublikovat.

CD_Template.PNG

A druhý krok je nastavit zdroj artefaktů. V našem případě budeme chtít vytvořené artefakty z naší CI build pipeline.

CD_Artifacts.PNG

Pokud chceme, aby se release prováděl po každé úspěšné CI build pipelině, musíme zapnout trigger v nastavení artefaktů.

CD_Final.PNG

Vše uložímé a můžeme vyzkoušet celý CI/CD proces provedením změn v repozitáři..