Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Versiosta 7.04 alkaen PVS-Studio-analysaattorissa C- ja C++-kielille Linuxissa ja macOS:ssä on testivaihtoehto määritettyjen tiedostojen luettelon tarkistamiseksi. Uuden tilan avulla voit määrittää analysaattorin tarkistamaan sitoumukset ja vetopyynnöt. Tämä artikkeli näyttää, kuinka voit määrittää GitHub-projektitiedostoluettelon tarkistuksen suosituissa CI (Continuous Integration) -järjestelmissä, kuten Travis CI, Buddy ja AppVeyor.

Tiedostoluettelon tarkistustila

PVS-studio on työkalu virheiden ja mahdollisten haavoittuvuuksien havaitsemiseen C-, C++-, C#- ja Java-kielillä kirjoitettujen ohjelmien lähdekoodissa. Toimii 64-bittisissä järjestelmissä Windowsissa, Linuxissa ja macOS:ssä.

PVS-Studio 7.04:n Linux- ja macOS-versiossa on tila lähdetiedostojen luettelon tarkistamiseksi. Tämä toimii projekteissa, joiden rakennusjärjestelmän avulla voit luoda tiedoston compile_commands.json. Sitä tarvitaan, jotta analysaattori voi poimia tietoja määritettyjen tiedostojen kokoamisesta. Jos koontijärjestelmäsi ei tue compile_commands.json-tiedoston luomista, voit yrittää luoda sellaisen tiedoston apuohjelmalla Bear.

Myös tiedostolistan tarkistustilaa voidaan käyttää yhdessä kääntäjäajojen strace trace -jäljen kanssa (pvs-studio-analyzer trace). Tätä varten sinun on ensin suoritettava projektin täydellinen koontiversio ja seurattava sitä, jotta analysaattori kerää täydelliset tiedot kaikkien tarkistettavien tiedostojen käännösparametreista.

Tällä vaihtoehdolla on kuitenkin merkittävä haittapuoli - joudut joko suorittamaan koko projektin täydellisen koontijäljityksen jokaisen käynnistyksen yhteydessä, mikä itsessään on ristiriidassa nopean sitoumustarkistuksen ajatuksen kanssa. Tai jos tallennat itse jäljitystuloksen välimuistiin, analysaattorin myöhemmät käynnistykset voivat osoittautua epätäydellisiksi, jos lähdetiedoston riippuvuusrakenne muuttuu jäljityksen jälkeen (esimerkiksi uusi #include lisätään johonkin lähdetiedostoista).

Siksi emme suosittele tiedostoluettelon tarkistustilan käyttöä jäljityslokin kanssa toimitusten tai vetopyyntöjen tarkistamiseen. Jos voit tehdä inkrementaalisen koontiversion, kun tarkistat sitoutumisen, harkitse tilan käyttöä inkrementaalinen analyysi.

Analysoitavien lähdetiedostojen luettelo tallennetaan tekstitiedostoon ja välitetään analysaattorille parametrin avulla -S:

pvs-studio-analyzer analyze ... -f build/compile_commands.json -S check-list.txt

Tämä tiedosto määrittää suhteelliset tai absoluuttiset polut tiedostoihin, ja jokaisen uuden tiedoston on oltava uudella rivillä. Analysoitavien tiedostojen nimien lisäksi on sallittua määrittää myös erilaisia ​​​​tekstejä. Jäsentäjä huomaa, että tämä ei ole tiedosto ja jättää rivin huomioimatta. Tästä voi olla hyötyä kommenteissa, jos tiedostot määritetään manuaalisesti. Usein tiedostoluettelo luodaan kuitenkin CI-jäsentämisen aikana, esimerkiksi tiedostot vahvistuksesta tai vetopyynnöstä.

Nyt käyttämällä tätä tilaa, voit nopeasti testata uutta koodia ennen kuin se pääsee pääkehityshaaraan. Jotta varmennusjärjestelmä reagoisi analysaattorin varoituksiin, apuohjelma plog-muunnin lippu lisätty --ilmaista-varoitukset:

plog-converter ... --indicate-warnings ... -o /path/to/report.tasks ...

Tällä lipulla muunnin palauttaa nollasta poikkeavan koodin, jos analysaattoriraportissa on varoituksia. Paluukoodilla voit estää precommit-hook-, commit- tai pull-pyynnön ja näyttää generoidun analysaattoriraportin näytöllä, jakaa sen tai lähettää sen postitse.

Huomautus. Kun aloitat tiedostoluettelon analysoinnin ensimmäistä kertaa, koko projekti analysoidaan, koska analysaattorin on luotava tiedosto projektin lähdetiedostojen riippuvuuksista otsikkotiedostoista. Tämä on C- ja C++-tiedostojen jäsennysominaisuus. Jatkossa riippuvuustiedosto voidaan tallentaa välimuistiin ja analysaattori päivittää sen automaattisesti. Toimitusten tarkistuksen etuna käytettäessä tiedostoluettelon tarkistustilaa inkrementaaliseen jäsennystilaan verrattuna on, että vain kyseinen tiedosto täytyy tallentaa välimuistiin, ei objektitiedostoja.

Vetopyyntöanalyysin yleiset periaatteet

Koko projektin analysointi vie paljon aikaa, joten on järkevää tarkistaa vain osa siitä. Ongelmana on, että sinun on erotettava uudet tiedostot muista projektitiedostoista.

Harkitse esimerkkiä sitomispuusta, jossa on kaksi oksaa:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla

Oletetaan, että sitoutuminen A1 sisältää melko suuren määrän koodia, joka on jo tarkistettu. Hieman aikaisemmin teimme haaran sitoumuksesta A1 ja muutti joitain tiedostoja.

Tietysti huomasit sen jälkeenpäin A1 oli vielä kaksi sitoumusta, mutta nämä olivat myös muiden toimialojen fuusioita, koska emme sitoudu mestari. Ja nyt on tullut aika, jolloin hotfix valmis. Siksi yhdistämistä koskeva vetopyyntö ilmestyi B3 и A3.

Tietenkin olisi mahdollista tarkistaa niiden yhdistämisen koko tulos, mutta se olisi liian pitkä ja perusteeton, koska vain muutama tiedosto muuttui. Siksi on tehokkaampaa analysoida vain muuttuneita.

Tätä varten saamme eron haarojen välillä, koska olemme sen haaran PÄÄssä, josta haluamme sulautua masteriksi:

git diff --name-only HEAD origin/$MERGE_BASE > .pvs-pr.list

$MERGE_BASE harkitsemme tarkemmin myöhemmin. Tosiasia on, että kaikki CI-palvelut eivät tarjoa tarvittavia tietoja yhdistämisen perustasta, joten joka kerta sinun on keksittävä uusia tapoja saada nämä tiedot. Tästä kerrotaan alla kussakin kuvatuissa verkkopalveluissa.

Joten saimme eron haarojen välillä, tai pikemminkin luettelon muuttuneista tiedostonimistä. Nyt meidän on annettava tiedosto .pvs-pr.list (ohjasimme yllä olevan lähdön siihen) analysaattoriin:

pvs-studio-analyzer analyze -j8 
                            -o PVS-Studio.log 
                            -S .pvs-pr.list

Analyysin jälkeen meidän on muutettava lokitiedosto (PVS-Studio.log) luettavaan muotoon:

plog-converter -t errorfile PVS-Studio.log --cerr -w

Tämä komento luettelee virheet stderr (normaali virhelähtövirta).

Vain täällä meidän ei tarvitse vain näyttää virheitä, vaan myös ilmoittaa kokoonpano- ja testauspalvelullemme ongelmista. Tätä varten muuntimeen lisättiin lippu -W (--ilmaista-varoitukset). Jos analysaattorissa on vähintään yksi varoitus, apuohjelman palautuskoodi plog-muunnin muuttuu 2:ksi, mikä puolestaan ​​ilmoittaa CI-palvelulle, että vetopyyntötiedostoissa on mahdollisia virheitä.

Travis CI

Konfigurointi tehdään tiedoston muodossa .travis.yml. Mukavuuden vuoksi suosittelen laittamaan kaikki erilliseen bash-skriptiin funktioilla, joita kutsutaan tiedostosta .travis.yml (bash-skriptin_nimi.sh-funktion_nimi).

Lisäämme tarvittavan koodin skriptiin kemut, joten saamme lisää toimintoja. Osassa asentaa kirjoitetaan seuraavaa:

install:
  - bash .travis.sh travis_install

Jos sinulla oli ohjeita, voit siirtää ne skriptiin poistamalla väliviivat.

Avataan tiedosto .travis.sh ja lisää analysaattorin asetukset toimintoon travis_install():

travis_install() {
  wget -q -O - https://files.viva64.com/etc/pubkey.txt 
    | sudo apt-key add -
  sudo wget -O /etc/apt/sources.list.d/viva64.list 
    https://files.viva64.com/etc/viva64.list
  
  sudo apt-get update -qq
  sudo apt-get install -qq pvs-studio 
}

Lisätään nyt osioon käsikirjoitus suorita analyysi:

script:
  - bash .travis.sh travis_script

Ja bash-skriptillä:

travis_script() {
  pvs-studio-analyzer credentials $PVS_USERNAME $PVS_KEY
  
  if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
    git diff --name-only origin/HEAD > .pvs-pr.list
    pvs-studio-analyzer analyze -j8 
                                -o PVS-Studio.log 
                                -S .pvs-pr.list 
                                --disableLicenseExpirationCheck
  else
    pvs-studio-analyzer analyze -j8 
                                -o PVS-Studio.log 
                                --disableLicenseExpirationCheck
  fi
  
  plog-converter -t errorfile PVS-Studio.log --cerr -w
}

Tämä koodi on suoritettava projektin rakentamisen jälkeen, jos sinulla oli esimerkiksi CMake-koontiversio:

travis_script() {
  CMAKE_ARGS="-DCMAKE_EXPORT_COMPILE_COMMANDS=On ${CMAKE_ARGS}"
  cmake $CMAKE_ARGS CMakeLists.txt
  make -j8
}

Siitä tulee näin:

travis_script() {
  CMAKE_ARGS="-DCMAKE_EXPORT_COMPILE_COMMANDS=On ${CMAKE_ARGS}"
  cmake $CMAKE_ARGS CMakeLists.txt
  make -j8
  
  pvs-studio-analyzer credentials $PVS_USERNAME $PVS_KEY
  
  if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
    git diff --name-only origin/HEAD > .pvs-pr.list
    pvs-studio-analyzer analyze -j8 
                                -o PVS-Studio.log 
                                -S .pvs-pr.list 
                                --disableLicenseExpirationCheck
  else
    pvs-studio-analyzer analyze -j8 
                                -o PVS-Studio.log 
                                --disableLicenseExpirationCheck
  fi
  
  plog-converter -t errorfile PVS-Studio.log --cerr -w
}

Olet luultavasti jo huomannut määritetyt ympäristömuuttujat. $TRAVIS_PULL_REQUEST и $TRAVIS_BRANCH. Travis CI ilmoittaa ne yksinään:

  • $TRAVIS_PULL_REQUEST tallentaa vetopyynnön numeron tai vääräjos se on normaali haara;
  • $TRAVIS_REPO_SLUG tallentaa projektivaraston nimen.

Tämän funktion algoritmi:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Travis CI vastaa palautuskoodeihin, joten varoitusten läsnäolo käskee palvelua ilmoittamaan sitoumuksen bugiseksi.

Katsotaanpa tarkemmin tätä koodiriviä:

git diff --name-only origin/HEAD > .pvs-pr.list

Tosiasia on, että Travis CI yhdistää haarat automaattisesti vetopyynnön analysoinnin aikana:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Siksi analysoimme A4Eikä B3->A3. Tämän ominaisuuden vuoksi meidän on laskettava ero A3, joka on vain oksan yläosa alkuperä.

Yksi tärkeä yksityiskohta säilyy - otsikkotiedostojen riippuvuuksien tallentaminen käännösyksiköihin (*.c, *.cc, *.cpp jne.) välimuistiin. Analysaattori laskee nämä riippuvuudet ensimmäisellä käynnistyksellä tiedostoluettelon tarkistustilassa ja tallentaa ne sitten .PVS-Studio-hakemistoon. Travis CI:n avulla voit tallentaa kansiot välimuistiin, joten tallennamme hakemistotiedot .PVS-Studio/:

cache:
  directories:
    - .PVS-Studio/

Tämä koodi on lisättävä tiedostoon .travis.yml. Tämä hakemisto tallentaa erilaisia ​​analyysin jälkeen kerättyjä tietoja, mikä nopeuttaa huomattavasti myöhempiä tiedostoluetteloanalyysin tai inkrementaalisen analyysin suorittamista. Jos tätä ei tehdä, analysaattori itse asiassa analysoi kaikki tiedostot joka kerta.

Kaveri

Kuten Travis C.I. Kaveri tarjoaa mahdollisuuden automaattisesti rakentaa ja testata GitHubiin tallennettuja projekteja. Toisin kuin Travis CI, se konfiguroidaan verkkokäyttöliittymässä (bash-tuki on saatavilla), joten projektiin ei tarvitse tallentaa asetustiedostoja.

Ensinnäkin meidän on lisättävä uusi toiminto rakennusriville:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Määritä kääntäjä, jota käytettiin projektin rakentamiseen. Huomaa tähän toimintoon asennettu telakointisäiliö. Esimerkiksi GCC:tä varten on erityinen kontti:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Asennataan nyt PVS-Studio ja tarvittavat apuohjelmat:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Lisää seuraavat rivit editoriin:

apt-get update && apt-get -y install wget gnupg jq

wget -q -O - https://files.viva64.com/etc/pubkey.txt | apt-key add -
wget -O /etc/apt/sources.list.d/viva64.list 
  https://files.viva64.com/etc/viva64.list

apt-get update && apt-get -y install pvs-studio

Siirrytään nyt Suorita-välilehteen (ensimmäinen kuvake) ja lisätään seuraava koodi vastaavaan muokkauskenttään:

pvs-studio-analyzer credentials $PVS_USERNAME $PVS_KEY

if [ "$BUDDY_EXECUTION_PULL_REQUEST_NO" != '' ]; then
  PULL_REQUEST_ID="pulls/$BUDDY_EXECUTION_PULL_REQUEST_NO"
  MERGE_BASE=`wget -qO - 
    https://api.github.com/repos/${BUDDY_REPO_SLUG}/${PULL_REQUEST_ID} 
    | jq -r ".base.ref"`

  git diff --name-only HEAD origin/$MERGE_BASE > .pvs-pr.list
  pvs-studio-analyzer analyze -j8 
                              -o PVS-Studio.log 
                              --disableLicenseExpirationCheck 
                              -S .pvs-pr.list
else
  pvs-studio-analyzer analyze -j8 
                              -o PVS-Studio.log 
                              --disableLicenseExpirationCheck
fi

plog-converter -t errorfile PVS-Studio.log --cerr -w

Jos olet lukenut Travs-CI-osion, tämä koodi on sinulle jo tuttu, mutta nyt on uusi vaihe:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Tosiasia on, että nyt emme analysoi yhdistämisen tulosta, vaan sen haaran PÄÄTÄ, josta vetopyyntö tehdään:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Olemme siis ehdollisissa sitoumuksissa B3 ja meidän täytyy saada ero A3:

PULL_REQUEST_ID="pulls/$BUDDY_EXECUTION_PULL_REQUEST_NO"
  MERGE_BASE=`wget -qO - 
    https://api.github.com/repos/${BUDDY_REPO_SLUG}/${PULL_REQUEST_ID} 
    | jq -r ".base.ref"`
git diff --name-only HEAD origin/$MERGE_BASE > .pvs-pr.list

Määritä A3 Käytetään GitHub API:ta:

https://api.github.com/repos/${USERNAME}/${REPO}/pulls/${PULL_REQUEST_ID}

Käytimme seuraavia Buddyn toimittamia muuttujia:

  • $BUDDY_EXECUTION_PULL_REQEUST_NO - vedä pyynnön numero;
  • $BUDDY_REPO_SLUG - käyttäjätunnuksen ja arkiston yhdistelmä (esimerkiksi max / testi).

Tallennetaan nyt muutokset alla olevalla painikkeella ja otetaan käyttöön vetopyyntöanalyysi:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Toisin kuin Travis CI, meidän ei tarvitse määrittää .pvs-studio välimuistiin, koska Buddy tallentaa kaikki tiedostot automaattisesti välimuistiin myöhempiä käynnistyksiä varten. Siksi viimeinen asia on tallentaa PVS-Studion käyttäjätunnus ja salasana Buddyyn. Muutosten tallentamisen jälkeen palaamme putkilinjaan. Meidän on siirryttävä muuttujien asettamiseen ja lisättävä sisäänkirjautuminen ja avain PVS-Studiolle:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Sen jälkeen uuden vetopyynnön tai sitoumuksen ilmestyminen käynnistää tarkistuksen. Jos sitoumus sisältää virheitä, Buddy osoittaa sen vetopyyntösivulla.

AppVeyor

AppVeyorin käyttöönotto on samanlaista kuin Buddy, koska kaikki tapahtuu verkkokäyttöliittymässä eikä *.yml-tiedostoa tarvitse lisätä projektiarkistoon.

Siirrytään projektin yleiskatsauksen Asetukset-välilehteen:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Vieritetään tätä sivua alaspäin ja otetaan käyttöön välimuistin tallennus vetopyyntöjä varten:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Siirrytään nyt Ympäristö-välilehteen, jossa määritetään rakennettava kuva ja tarvittavat ympäristömuuttujat:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Jos olet lukenut edelliset kohdat, tunnet nämä kaksi muuttujaa hyvin − PVS_KEY и PVS_USERNAME. Jos ei, haluan muistuttaa, että ne ovat välttämättömiä PVS-Studio-analysaattorin lisenssin tarkistamiseksi. Tulevaisuudessa tapaamme heidät jälleen Bash-skripteissä.

Määritä samalla sivulla välimuistiin tallennettava kansio:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Jos emme tee tätä, analysoimme koko projektin muutaman tiedoston sijaan, mutta saamme tulosteen määritettyjen tiedostojen perusteella. Siksi on tärkeää kirjoittaa oikea hakemiston nimi.

Nyt on aika testata käsikirjoitusta. Avaa Testit-välilehti ja valitse Komentosarja:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Liitä seuraava koodi tähän lomakkeeseen:

sudo apt-get update && sudo apt-get -y install jq

wget -q -O - https://files.viva64.com/etc/pubkey.txt 
  | sudo apt-key add -
sudo wget -O /etc/apt/sources.list.d/viva64.list 
  https://files.viva64.com/etc/viva64.list

sudo apt-get update && sudo apt-get -y install pvs-studio

pvs-studio-analyzer credentials $PVS_USERNAME $PVS_KEY

PWD=$(pwd -L)
if [ "$APPVEYOR_PULL_REQUEST_NUMBER" != '' ]; then
  PULL_REQUEST_ID="pulls/$APPVEYOR_PULL_REQUEST_NUMBER"
  MERGE_BASE=`wget -qO - 
    https://api.github.com/repos/${APPVEYOR_REPO_NAME}/${PULL_REQUEST_ID} 
    | jq -r ".base.ref"`

  git diff --name-only HEAD origin/$MERGE_BASE > .pvs-pr.list
  pvs-studio-analyzer analyze -j8 
                              -o PVS-Studio.log 
                              --disableLicenseExpirationCheck 
                              --dump-files --dump-log pvs-dump.log 
                              -S .pvs-pr.list
else
  pvs-studio-analyzer analyze -j8 
                              -o PVS-Studio.log 
                              --disableLicenseExpirationCheck
fi

plog-converter -t errorfile PVS-Studio.log --cerr -w

Katsotaanpa seuraavaa koodin osaa:

PWD=$(pwd -L)
if [ "$APPVEYOR_PULL_REQUEST_NUMBER" != '' ]; then
  PULL_REQUEST_ID="pulls/$APPVEYOR_PULL_REQUEST_NUMBER"
  MERGE_BASE=`wget -qO - 
   https://api.github.com/repos/${APPVEYOR_REPO_NAME}/${PULL_REQUEST_ID} 
   | jq -r ".base.ref"`

  git diff --name-only HEAD origin/$MERGE_BASE > .pvs-pr.list
  pvs-studio-analyzer analyze -j8 
                              -o PVS-Studio.log 
                              --disableLicenseExpirationCheck 
                              --dump-files --dump-log pvs-dump.log 
                              -S .pvs-pr.list
else
  pvs-studio-analyzer analyze -j8 
                              -o PVS-Studio.log 
                              --disableLicenseExpirationCheck
fi

Pwd-komennon arvon melko tarkka määrittäminen muuttujalle, jonka pitäisi tallentaa tämä oletusarvo, vaikuttaa ensi silmäyksellä oudolta, mutta selitän kaiken hetkessä.

Asettaessani analysaattoria AppVeyorissa törmäsin analysaattorin äärimmäisen kummalliseen käyttäytymiseen. Toisaalta kaikki toimi oikein, mutta analyysi ei käynnistynyt. Vietin paljon aikaa huomatakseni, että olemme /home/appveyor/projects/testcalc/-hakemistossa, ja analysaattori on varma, että olemme hakemistossa /opt/appveyor/build-agent/. Sitten tajusin, että $PWD-muuttuja on hieman valhe. Tästä syystä päivitin sen arvon manuaalisesti ennen analyysin aloittamista.

Ja sitten kaikki, kuten ennenkin:

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla
Harkitse nyt seuraavaa katkelmaa:

PULL_REQUEST_ID="pulls/$APPVEYOR_PULL_REQUEST_NUMBER"
MERGE_BASE=`wget -qO - 
  https://api.github.com/repos/${APPVEYOR_REPO_NAME}/${PULL_REQUEST_ID} 
  | jq -r ".base.ref"`

Siinä saamme eron niiden haarojen välillä, joissa vetopyyntö on ilmoitettu. Tätä varten tarvitsemme seuraavat ympäristömuuttujat:

  • $APPVEYOR_PULL_REQUEST_NUMBER - vetopyynnön numero;
  • $APPVEYOR_REPO_NAME - käyttäjätunnus ja projektivarasto.

Johtopäätös

Emme tietenkään ole huomioineet kaikkia mahdollisia jatkuvan integroinnin palveluita, mutta niillä kaikilla on hyvin samankaltaiset työspesifiteetit. Välimuistia lukuun ottamatta jokainen palvelu tekee oman "pyöränsä", joten kaikki on aina erilaista.

Jossain, kuten Travis-CI:ssä, pari riviä koodia ja välimuisti toimii moitteettomasti; jossain, kuten AppVeyorissa, sinun on vain määritettävä kansio asetuksissa; mutta jossain sinun on luotava ainutlaatuisia avaimia ja yritettävä saada järjestelmä antamaan sinulle mahdollisuus korvata välimuistissa oleva fragmentti. Siksi, jos haluat määrittää vetopyyntöanalyysin jatkuvaan integrointipalveluun, jota ei käsitelty yllä, varmista ensin, että välimuistiin tallentamisessa ei ole ongelmia.

Kiitos huomiostasi. Jos jokin ei toimi, kirjoita meille osoitteeseen tuki. Neuvomme ja autamme.

Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla

Jos haluat jakaa tämän artikkelin englanninkielisen yleisön kanssa, käytä käännöslinkkiä: Maxim Zvyagintsev. Sitoumus- ja vetopyyntöjen analysointi Travis CI:ssä, Buddyssa ja AppVeyorissa PVS-Studion avulla.

Lähde: will.com

Lisää kommentti