Staattisten sivujen generointi Azure DevOpsin kautta

Published on Sunday, January 13, 2019

Yleistä löpinää

Staattisten websivujen jatkuva manuaalinen päivittäminen jokaisesta pienestä muutoksesta voi tuntua turhauttavalta, jonka takia kyseinen operaatio kannattaa automatisoida.

Tässä tekstissä tehdään Azure DevOpsin avulla automatisointi, joka generoi staattiset sivut automaattisesti uudelleen, kun uutta sisältöä lisätään git-versionhallintaan. Käyttökohteena on tämän blogin sisältö, jota generoidaan Wyamin avulla.

Luonnollisesti Azure DevOpsin sijaan voi valita jonkin muun vastaavan palvelun oman automatisoinnin tekemiseen, kuten esim. Travis CI tai AppVeyor.

Azure DevOps

Azure DevOps on Microsoftin yhdistelmä projekteista, versionhallinnasta, automatisoinnista ja testauksesta. Palvelu on siis ominaisuuksiensa puolesta tarkoitettu ensisijaisesti erilaisille ohjelmistoprojekteille, mutta sitä voi käyttää myös moniin muihin asioihin. Palvelun ilmainen versio riittää hyvin näin pienessä projektissa.

Käyttöönotto

Ensimmäinen askel Azure DevOpsin kanssa on palvelun käyttöönotto. Jos käytössä ei vielä ole Microsoft-tiliä, täytyy se luoda aluksi. Tämän jälkeen kirjaudutaan Azure DevOps -sivustolle ja luodaan uusi projekti

Azure DevOps ja uusi projekti

Uudesta projektista tehdään tässä tapauksessa yksityinen (Private), koska blogin varsinainen sisältö sijaitsee GitHubissa, ja Azure DevOpsia käytetään vain staattisten sivujen generointiin ja siirtoon paikalleen, jolloin tähän projektiin ei tarvitse kaikkien päästä käsiksi.

Kun projekti on luotu, tehdään jotain täysin odottamatonta, ja otetaan uusia ominaisuuksia pois käytöstä, jotta automatisointiketjun saa tehtyä helpommin valmiiksi. Tämä tapahtuu valitsemalla omasta profiilista Preview features

Azure DevOps ja Preview features

ja ottamalla valinnan pois New YAML pipeline creation experience -kohdasta, jonka jälkeen palvelu latautuu uudelleen

Azure DevOps ja New YAML pipeline

Automatisoinnin voi luonnollisesti tehdä myös uuden YAML pipeline -toiminnon kanssa, mutta toistaiseksi se ei tarjoa yhtä hyviä visuaalisia työkaluja toimintojen luontiin.

Uuden pipelinen eli automaation luonti

Valitaan vasemman reunan Pipelines -osion alta Builds

Azure DevOps ja Pipelines Builds

ja tehdään uusi Pipeline valitsemalla New -nappi.

Ensimmäiseksi valitaan mistä automatisoinnissa käsiteltävä sisältö haetaan. Tässä tapauksessa valitaan GitHub, joka autentikoidaan erikseen Azure DevOpsia varten

Azure DevOps ja GitHub

Templaten osalta valitaan tyhjä eli Empty job, koska varsinaiset valmiit pohjat ovat pääsääntöisesti tarkoitettu ohjelmistoprojekteille, jonka takia ne eivät kelpaa tähän yksinkertaiseen tehtävään kovin hyvin

Azure DevOps ja Empty job

Kun tyhjä pohja on valmis, aletaan sitä täyttämään tehtävillä, eli taskeilla. Tämä tapahtuu painamalla +-nappia Agent job -kohdassa

Azure DevOps ja Add a task

Ensimmäiseksi lisätään uusi .NET Core SDK Installer -tehtävä, jolla asennetaan haluttu .NET Core SDK:n versio, tässä tapauksessa siis 2.2.102 versionumeroksi. Oletuksena Build Agentin käyttämä .NET Core on muuten aina uusin vakaa versio. Asentamalla tietyn version voimme pitää huolen siitä, että .NET Coren mahdolliset tulevat päivitykset eivät aiheuta ongelmia automaatiolle.

Azure DevOps ja Use NET Core sdk

Toiseksi lisätään uusi Command Line -tehtävä Wyamin asentamista varten. Homma hoituu yksinkertaisesti tutulla tavalla eli

dotnet tool install -g Wyam.Tool

(kuten tästä huomataan, ovat automatisoinnin komennot aivan samoja DevOpsissa, kun omalla koneella)

Azure DevOps ja Wyamin asentaminen

Ja lopulta tehdään staattisten sivujen generoinnille oma Command Line -tehtävä kutsumalla

wyam --recipe Blog --theme CleanBlog

Azure DevOps ja Wyam build

Tässä vaihessa kannattaa käyttää Save & queue -toimintoa, joka tallentaa automaation ja suorittaa sen. Jos kaikki on mennyt oikein, pitäisi tuloksen näyttää alla löytyvän kuvan mukaiselta

Azure DevOps ja build läpi

Seuraavassa blogitekstissä otetaan automaatioon mukaan sisällön siirto Amazonin S3:seen.