2 research outputs found

    Supporting incremental builds in a dynamic distributed build environment

    Get PDF
    Abstract. Incremental building in continuous integration is a rare sight and could be used more than it is in the present day. This master’s thesis aims to demonstrate how incremental building could be enabled in a continuous integration server environment, which is also dynamic and distributed by its traits. This study develops a solution called "workspace cache". Its design is based on existing literature and organizational experience. The technological components of the workspace cache are selected based on the existing production system of the client of this study. The produced solution is by its nature a proof-of-concept implementation, and a production implementation requires further work. Evaluating the solution in the production environment is not feasible, and therefore this study constructs a simulation environment for the workspace cache, where the efficiency of the solution can be measured. The solution is tested using two build systems, make and Gradle, and two popular open source software projects that are made with different programming languages. The solution is benchmarked against clean software builds. In addition to build times, source code cloning times and the correctness of the build outputs are measured. The resulting solution enables incremental builds in the target context. The build systems and software projects that the solution was tested with do not guarantee the generalizability of the solution. With make, the correctness of the build outputs produced by the workspace cache does not fully fulfill the set correctness criteria. Future research work should focus on getting the builds from workspace cache to be fully correct, and on making the workspace cache more efficient than a remote cache.Inkrementaalisten ohjelmistokoontien tukeminen dynaamisessa hajautetussa koontiympäristössä. Tiivistelmä. Inkrementaaliset ohjelmistokoonnit ovat vähän käytetty optimointitekniikka jatkuvassa integraatiossa, ja sitä voitaisiin hyödyntää nykyistä enemmän. Tässä diplomityössä demonstroidaan, miten inkrementaaliset ohjelmistokoonnit voidaan tuoda jatkuvan integraation palvelinympäristöön, joka on luonteeltaan dynaaminen ja hajautettu. Tässä tutkimuksessa kehitetään ratkaisu nimeltään "workspace cache". Ratkaisun suunnittelu perustuu aikaisempaan kirjallisuuteen ja asiakasorganisaation kokemukseen. Workspace cachen teknologiset komponenttivalinnat perustuvat asiakkaan olemassa olevaan tuotantoympäristöön. Työssä tuotettu ratkaisu on luonteeltaan konseptitoteutus, ja ratkaisun tuotantoympäristöön vieminen vaatii lisätyötä. Ratkaisun arvioiminen tuotantoympäristössä ei ole mahdollista, joten tässä tutkimuksessa rakennetaan ratkaisulle simulaatioympäristö, jossa ratkaisun tehokkuutta voidaan mitata. Ratkaisua testataan kahdella eri koontijärjestelmällä, Gradlella ja makella, sekä kahdella suositulla avoimen lähdekoodin ohjelmistoprojektilla, jotka käyttävät toisistaan eriäviä ohjelmointikieliä. Ratkaisun suorituskykyä mitataan tyhjästä muodostettua ohjelmistokoontia vastaan sekä nopeuden että oikeellisuuden osalta. Koontienluonnin lisäksi työssä mitataan lähdekoodin kloonaukseen ohjelmistovarastoista kuluvaa aikaa. Toteutettu ratkaisu mahdollistaa inkrementaaliset ohjelmistokoonnit kohdekontekstissa. Tutkimuksessa käytetyt koontijärjestelmät ja ohjelmistoprojektit eivät takaa ratkaisun yleistettävyyttä. Koontijärjestelmä makella ja workspace cachellä tuotetut ohjelmistokoonnit eivät täysin täyttäneet niille asetettuja oikeellisuusehtoja. Tulevaisuuden tutkimustyön tulisi pyrkiä saamaan workspace cachen koontiulostulot täysin oikeellisiksi sekä parantamaan sen suorituskykyä siten, että se olisi tehokkaampi kuin etävälimuistiratkaisut

    Using Remote Cache Service for Bazel

    No full text
    corecore