CI-järjestelmän käyttöönotto yrityksessä
Kivelä, Petteri (2023)
Kivelä, Petteri
2023
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202304266471
https://urn.fi/URN:NBN:fi:amk-202304266471
Tiivistelmä
Opinnäytetyön taustana oli työnantajayrityksen tarve ottaa käyttöön jatkuvan integraation järjestelmä ohjelmistokehityksessä. Työn aikana hankittua tietoa ja osaamista oli tarkoitus hyödyntää myös tulevissa projekteissa ja lisäksi olla tukena muulle ohjelmistokehitystiimille. Tavoitteena työssä oli luoda toimiva CI-järjestelmä tukiasematesterin ohjelmistokehitykseen ja aloittaa testien kehitys järjestelmän toimivuuden varmistamiseksi.
Työn teoriaosuudessa tutustutaan ensin jatkuvaan integraatioon kuuluviin asioihin ja vaiheisiin. Testiautomaatio on tärkeimpiä asioita jatkuvassa integraatiossa. Testiautomaation vaatimista resursseista, tavoitteista ja haasteista kerrotaan työn alkuvaiheessa. Lyhyesti käydään läpi myös erilaisia testaustapoja ja -vaiheita. Työn aikana tutustuttiin kahteen CI-alustaan, joiden ominaisuuksia ja soveltuvuutta yrityksen käyttöön tutkittiin. Teoriaosuudessa esitellään yleistä tietoa näistä alustoista.
Seuraava oleellinen osa jatkuvaa integraatiota on versionhallinta. Versionhallintaan liittyy tarvittavia toimintatapoja ohjelmistokehittäjiltä riittävän hyödyn saamiseksi ja CI-järjestelmän toiminnan varmistamiseksi. Työssä esitellään tämän hetken suosituin versionhallintajärjestelmä Git ja kerrotaan sen toiminnasta.
Tutkittaviksi CI-alustoiksi valikoituivat Jenkins ja GitHub Actions. Jenkinsiä tutkittiin ensisijaisena vaihtoehtona sen yleisyyden ja monipuolisuuden ansiosta, mutta lopulta päädyttiin käyttämään GitHub Actionsiä. GHA on suosiotaan kasvattava ja helppokäyttöinen GitHubiin integroitu CI- palvelu. GitHub on Git-koodirepositorioiden tallennuspaikka. Vaatimuksena CI-järjestelmälle olikin yhteensopivuus GitHubin kanssa, joka oli helpoin toteuttaa GHA:n avulla. Järjestelmän muina vaatimuksina oli mahdollisuus kehittää yksikkötestejä Visual Studio-ympäristössä kehitetylle tukiasematesterin ohjelmistolle.
Työn toteutusvaiheessa aloitettiin GitHub Actionsin käyttö yrityksen organisaatiolle luodulla GitHub-tilillä ja testattiin ohjelmistokoodin rakentamista GHA:n testiympäristössä. Seuraavana vaiheena perehdyttiin yksikkötestien kehitykseen Visual Studiolla ja tukiasematesterin testaamiseen vaativiin asioihin. Testiautomaation kehittämiseen sisältyi runsaasti opeteltavaa aikaisemman kokemuksen puuttuessa, mutta tavoitteen mukaisesti testien kehitys päästiin aloittamaan. Loppuvaiheessa perehdyttiin ohjelmiston vaatimien ohjelmistopakettien hallintaan GitHub Packages -palvelun avulla.
Työn teoriaosuudessa tutustutaan ensin jatkuvaan integraatioon kuuluviin asioihin ja vaiheisiin. Testiautomaatio on tärkeimpiä asioita jatkuvassa integraatiossa. Testiautomaation vaatimista resursseista, tavoitteista ja haasteista kerrotaan työn alkuvaiheessa. Lyhyesti käydään läpi myös erilaisia testaustapoja ja -vaiheita. Työn aikana tutustuttiin kahteen CI-alustaan, joiden ominaisuuksia ja soveltuvuutta yrityksen käyttöön tutkittiin. Teoriaosuudessa esitellään yleistä tietoa näistä alustoista.
Seuraava oleellinen osa jatkuvaa integraatiota on versionhallinta. Versionhallintaan liittyy tarvittavia toimintatapoja ohjelmistokehittäjiltä riittävän hyödyn saamiseksi ja CI-järjestelmän toiminnan varmistamiseksi. Työssä esitellään tämän hetken suosituin versionhallintajärjestelmä Git ja kerrotaan sen toiminnasta.
Tutkittaviksi CI-alustoiksi valikoituivat Jenkins ja GitHub Actions. Jenkinsiä tutkittiin ensisijaisena vaihtoehtona sen yleisyyden ja monipuolisuuden ansiosta, mutta lopulta päädyttiin käyttämään GitHub Actionsiä. GHA on suosiotaan kasvattava ja helppokäyttöinen GitHubiin integroitu CI- palvelu. GitHub on Git-koodirepositorioiden tallennuspaikka. Vaatimuksena CI-järjestelmälle olikin yhteensopivuus GitHubin kanssa, joka oli helpoin toteuttaa GHA:n avulla. Järjestelmän muina vaatimuksina oli mahdollisuus kehittää yksikkötestejä Visual Studio-ympäristössä kehitetylle tukiasematesterin ohjelmistolle.
Työn toteutusvaiheessa aloitettiin GitHub Actionsin käyttö yrityksen organisaatiolle luodulla GitHub-tilillä ja testattiin ohjelmistokoodin rakentamista GHA:n testiympäristössä. Seuraavana vaiheena perehdyttiin yksikkötestien kehitykseen Visual Studiolla ja tukiasematesterin testaamiseen vaativiin asioihin. Testiautomaation kehittämiseen sisältyi runsaasti opeteltavaa aikaisemman kokemuksen puuttuessa, mutta tavoitteen mukaisesti testien kehitys päästiin aloittamaan. Loppuvaiheessa perehdyttiin ohjelmiston vaatimien ohjelmistopakettien hallintaan GitHub Packages -palvelun avulla.