Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
I roto i te kaitirotiro PVS-Studio mo nga reo C me C ++ i runga i te Linux me te macOS, mai i te putanga 7.04, kua puta he whiringa whakamatautau ki te tirotiro i te rarangi o nga konae kua tohua. Ma te whakamahi i te aratau hou, ka taea e koe te whirihora i te kaitirotiro ki te tirotiro i nga mahi me nga tono toia. Ma tenei tuhinga e korero ki a koe me pehea te whakarite tirotiro i te rarangi o nga konae kua whakarerekehia o te kaupapa GitHub i roto i nga punaha rongonui CI (Continuous Integration) pera i a Travis CI, Buddy me AppVeyor.

Aratau arowhai rarangi kōnae

PVS-Studio he taputapu mo te tautuhi i nga hapa me nga whakaraeraetanga pea i roto i te waehere puna o nga papatono kua tuhia ki C, C++, C# me Java. Ka mahi i runga i nga punaha 64-bit i runga i te Matapihi, Linux me te macOS.

I te putanga PVS-Studio 7.04 mo te Linux me te macOS, kua puta he aratau mo te tirotiro i te rarangi o nga konae puna. Ka mahi tenei mo nga kaupapa ka taea e koe te hanga i tetahi konae compile_commands.json. E hiahiatia ana mo te kaitirotiro ki te tango korero mo te whakahiato o nga konae kua tohua. Mena kaore to punaha hanga e tautoko ki te whakaputa i te konae compile_commands.json, ka taea e koe te ngana ki te whakaputa i taua konae ma te whakamahi i te whaipainga. Bear.

Ano, ka taea te whakamahi i te aratau tirotiro rarangi konae me te raarangi tohu tohu o nga whakarewatanga o te kaitoha (pvs-studio-analyzer trace). Hei mahi i tenei, me mahi tuatahi koe i te hanga katoa o te kaupapa me te whai kia kohia e te kaitirotiro nga korero katoa mo nga tawhā whakahiato o nga konae katoa e tirohia ana.

Heoi, he raru nui tenei whiringa - ka hiahia koe ki te mahi i nga waahanga hanga katoa o te kaupapa katoa i nga wa katoa e whakahaerehia ana e koe, e whakahē ana i te whakaaro kia tere te tirotiro i tetahi mahi. Ranei, ki te keteroki koe i te huanga ake, karekau pea e oti te oma o te kaitataritari mena ka huri te hanganga whakawhirinaki o nga konae puna i muri i te tohu (hei tauira, ka taapirihia he #whakauru hou ki tetahi o nga konae puna).

No reira, kaore matou e pai ki te whakamahi i te aratau tirotiro rarangi konae me te raarangi tohu hei tirotiro i nga mahi, i nga tono toia ranei. Mena ka taea e koe te hanga taapiri ina tirohia he mahi, whakaarohia te whakamahi i te aratau tātaritanga pikinga.

Ko te rarangi o nga konae puna mo te tātari ka tiakina ki roto i te konae tuhinga ka tukuna ki te kaitirotiro ma te whakamahi i te tawhā -S:

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

Ka tohua e tenei konae nga ara whanaunga, ara tuturu ranei ki nga konae, a me noho ia konae hou ki runga raina hou. He pai ki te tautuhi i nga ingoa konae hei tātari, engari ano hoki nga momo tuhinga. Ka kite te kaitirotiro ehara tenei i te konae ka warewarehia te raina. Ka whai hua tenei mo te korero mena ka tohua a ringa nga konae. Heoi, he maha nga wa ka hangaia he rarangi o nga konae i te wa o te tātaritanga i roto i te CI, hei tauira, he konae pea enei mai i te tono tuku, toia ranei.

Na, ma te whakamahi i tenei aratau, ka taea e koe te tirotiro tere i te waehere hou i mua i te urunga ki te peka whanaketanga matua. Hei whakarite kia whakautu te punaha matawai ki nga whakatupato kaitirotiro, te whaipainga poro-tahuri kara kua tapiritia --tohu-whakatupato:

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

Ma tenei haki, ka whakahokia e te kaitahuri he waehere kore-kore mena he whakatupato kei roto i te purongo tātari. Ma te whakamahi i te waehere whakahoki, ka taea e koe te aukati i te matau i mua i te tuku, te tuku, te tono tono ranei, ka taea te whakaatu, te tiri, te tuku imeera ranei te purongo kaitirotiro kua hangaia.

Tuhipoka. Ka timata koe ki te tarai i te rarangi o nga konae, ka tātarihia te kaupapa katoa, na te mea me whakaputa e te kaitirotiro he konae whakawhirinakitanga o nga konae puna kaupapa i runga i nga konae pane. He ahuatanga tenei mo te tātari i nga konae C me C++. Hei nga ra kei te heke mai, ka taea te keteroki te konae whakawhirinaki, ka whakahōu aunoatia e te kaitirotiro. Ko te painga o te arowhai ka mahi i te wa e whakamahi ana i te aratau tirotiro rarangi konae i runga i te whakamahi i te aratau tātari taapiri ko te mea me keteroki noa taua konae, kaua ko nga konae ahanoa.

Nga maataapono whanui mo te tātari tono kume

He roa te wa ki te tātari i te kaupapa katoa, no reira he mea tika ki te tirotiro i tetahi waahanga anake. Ko te raruraru me wehe e koe nga konae hou mai i te toenga o nga konae kaupapa.

Me titiro tatou ki tetahi tauira o te rakau commit me nga manga e rua:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio

Kia whakaaro tatou i taua mahi A1 he nui te nui o te waehere kua oti te whakamatau. I mua tata ake nei i hanga e matou he peka mai i te commit A1 me te whakarereke i etahi konae.

Koe, o te akoranga, i kite i muri A1 e rua ano nga mahi i puta, engari he whakakotahi ano enei o etahi atu peka, na te mea kaore matou e u ki te ariki. Na inaianei kua tae mai te wa hotfix kua rite. Koia te take i puta mai ai te tono kume mo te hanumi B3 и A3.

Ae ra, ka taea te tirotiro i nga hua katoa o te whakakotahitanga, engari ka pau te waa me te kore e tika, na te mea he ruarua noa nga konae i whakarereke. Na reira, he pai ake te wetewete i nga mea kua whakarereke.

Ki te mahi i tenei, ka whiwhi tatou i te rereketanga i waenga i nga manga, kei roto i te HEAD o te peka e hiahia ana tatou ki te hanumi ki te rangatira:

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

$MERGE_BASE ka ata tirohia e tatou a muri ake nei. Ko te meka kaore nga ratonga CI katoa e whakarato ana i nga korero e tika ana mo te paataka mo te whakakotahi, na ia wa me whai huarahi hou koe ki te tiki i enei raraunga. Ka whakaahuahia tenei i raro nei i ia o nga ratonga tukutuku kua whakaahuahia.

Na, i whiwhi tatou i te rereketanga i waenga i nga peka, he rarangi ingoa ingoa konae kua whakarereketia. Inaianei me hoatu e matou te konae .pvs-pr.list (i tukuna ano e matou te putanga i runga ake nei) ki te kaitirotiro:

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

Whai muri i te tātaritanga, me huri te konae rangitaki (PVS-Studio.log) ki te whakatakotoranga ngawari ki te panui:

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

Ka whakarārangihia e tēnei tono ngā hapa i roto stderr (whakaputa karere hapa paerewa).

I tenei wa ka hiahia matou kia kaua e whakaatu i nga hapa anake, engari me whakamohio ano ki ta maatau ratonga mo te huihuinga me te whakamatautau mo te aroaro o nga raru. Mo tenei kaupapa, i taapirihia he haki ki te kaitahuri -W (--tohu-whakatupato). Mēnā kotahi te iti rawa o te whakatūpato kaitātari, ko te waehere whaipainga whakahoki poro-tahuri ka huri ki te 2, ka whakamohio atu ki te ratonga CI mo te aroaro o nga hapa kei roto i nga konae tono kume.

Travis CI

Ko te whirihoranga he konae .travis.yml. Mo te waatea, ka tohutohu ahau ki a koe kia whakauruhia nga mea katoa ki roto i te tuhinga bash motuhake me nga mahi ka kiia mai i te konae .travis.yml (bash script_name.sh function_name).

Ka taapirihia e matou te waehere e tika ana ki te tuhinga i Tuhinga, ma tenei ka nui ake nga mahi. I te wahanga tāuta me tuhi e whai ake nei:

install:
  - bash .travis.sh travis_install

Mena kei a koe etahi tohutohu, ka taea e koe te whakawhiti ki roto i te tuhinga, me te tango i nga tohuhono.

Kia tuwhera te kōnae .travis.sh me te taapiri i te tautuhinga tātari ki te mahi 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 
}

Inaianei me taapiri atu ki te waahanga hōtuhi whakahaere tātaritanga:

script:
  - bash .travis.sh travis_script

Na i roto i te tuhinga bash:

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
}

Me whakahaere tenei waehere i muri i te hanga i te kaupapa, hei tauira, mena he hanga koe ki runga CMake:

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

Ka puta penei:

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
}

Kua kite pea koe i enei taurangi taiao $TRAVIS_PULL_REQUEST и $TRAVIS_BRANCH. Ka kii a Travis CI i a raatau takitahi:

  • $TRAVIS_PULL_REQUEST rokiroki te tau tono kume ranei teka, mehemea he peka tuturu tenei;
  • $TRAVIS_REPO_SLUG ka pupuri i te ingoa o te putunga kaupapa.

Ko te algorithm mo tenei mahi:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Ka whakautu a Travis CI ki te whakahoki i nga waehere, na te aroaro o nga whakatupato ka korero ki te ratonga ki te tohu i te mahi he hapa kei roto.

Inaianei me ata titiro ki tenei rarangi waehere:

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

Ko te meka ko Travis CI ka whakakotahi aunoa i nga manga i te wa e tarai ana i te tono toia:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Na reira ka wetewete matou A4a kaore B3->A3. Na tenei ahuatanga, me tatau tatou i te rereketanga me А3, i te mea tika te tihi o te peka mai takenga.

He korero nui kei te toe - te keteroki i nga whakawhirinakitanga o nga konae pane i runga i nga waahanga whakamaori kua whakahiato (*.c, *.cc, *.cpp, etc.). Ka tātaihia e te kaitātari enei ti'aturi i te wa tuatahi i whakarewahia i roto i te aratau tirotiro i te rarangi o nga konae katahi ka tiakina ki te raarangi .PVS-Studio. Ka taea e Travis CI te keteroki i nga kōpaki, na reira ka tiakina e matou nga raraunga whaiaronga .PVS-Studio/:

cache:
  directories:
    - .PVS-Studio/

Me taapiri tenei waehere ki te konae .travis.yml. Ka penapenahia e tenei raarangi nga momo raraunga ka kohia i muri i te tātaritanga, ka tino tere ake nga mahinga o muri o te tātari rarangi konae, te tātaritanga taapiri ranei. Ki te kore e mahia tenei, katahi ka tino tātarihia e te kaitirotiro nga konae katoa i ia wa.

Buddy

Ka rite ki a Travis CI, Buddy e whakarato ana i te kaha ki te hanga aunoa me te whakamatautau i nga kaupapa kua rongoatia ki GitHub. Kaore i rite ki a Travis CI, kua whirihorahia i roto i te atanga tukutuku (kei te waatea te tautoko bash), na reira kaore he hiahia ki te penapena i nga konae whirihoranga i roto i te kaupapa.

Tuatahi, me taapiri he mahi hou ki te raina huihuinga:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Me tohu te kaikoipi i whakamahia hei hanga i te kaupapa. Tirohia te ipu docker kua whakauruhia ki tenei mahi. Hei tauira, he ipu motuhake mo te GCC:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Inaianei me whakauru a PVS-Studio me nga taputapu e tika ana:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Me taapiri nga rarangi e whai ake nei ki te ētita:

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

Inaianei me haere ki te ripa Whakahaere (tohu tuatahi) ka taapirihia te waehere e whai ake nei ki te mara etita e pa ana:

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

Mena ka panui koe i te waahanga mo Travs-CI, kua mohio koe ki tenei waehere, engari, inaianei he waahanga hou:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Ko te meka ko tenei ka tirohia e matou ehara i te hua o te hanumi, engari ko te UPOKO o te peka i puta ai te tono toia:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Na kei roto tatou i te here here B3 a me whiwhi tatou i te rereketanga mai i 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

Mo te whakatau A3 Me whakamahi te API GitHub:

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

I whakamahia e matou nga taurangi e whai ake nei ka tukuna e Buddy:

  • $BUDDY_EXECUTION_PULL_REQEUST_NO — toia te nama tono;
  • $BUDDY_REPO_SLUG — he huinga o te ingoa kaiwhakamahi me te putunga (hei tauira max/test).

Inaianei me penapena nga huringa ma te whakamahi i te paatene i raro nei ka taea te tātari i te tono kume:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Kaore i rite ki a Travis CI, kaore e tika kia tohua .pvs-studio mo te keteroki, na te mea ka keteroki aunoa a Buddy i nga konae katoa mo nga whakarewatanga o muri. No reira, ko te mea whakamutunga i toe ko te tiaki i te takiuru me te kupuhipa mo te PVS-Studio i Buddy. Whai muri i te penapena i nga huringa, ka whakahokia matou ki te Pipeline. Me neke tatou ki te whakarite i nga taurangi me te taapiri i te takiuru me te taviri mo te PVS-Studio:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
I muri i tenei, ko te ahua o te tono kume hou, te tuku ranei ka timata te arotake. Mena he hapa kei roto i te commit, ma Buddy tenei e tohu ki te wharangi tono toia.

AppVeyor

Ko te whakatu i te AppVeyor he rite ki a Buddy, na te mea ka puta nga mea katoa i roto i te atanga tukutuku, kaore he take ki te taapiri i te konae *.yml ki te putunga kaupapa.

Haere ki te ripa Tautuhinga i te tirohanga o te kaupapa:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Me panuku ki raro tenei wharangi ka taea te penapena keteroki mo te kohi tono kume:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Inaianei me haere ki te ripa Taiao, ka tohua te ahua mo te huihuinga me nga taurangi taiao e tika ana:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Mena kua panui koe i nga waahanga o mua, kua tino mohio koe ki enei taurangi e rua − PVS_KEY и PVS_USERNAME. Ki te kore, me whakamahara ahau ki a koe he mea tika ki te manatoko i te raihana o te kaitirotiro PVS-Studio. Ka kite ano tatou i a raatau i roto i nga tuhinga Bash a meake nei.

I te wharangi kotahi i raro ka tohuhia te kōpaki mo te keteroki:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Ki te kore matou e mahi i tenei, ka tātarihia e matou te kaupapa katoa hei utu mo nga konae e rua, engari ka whiwhi matou i te putanga mai i nga konae kua tohua. Na reira, he mea nui ki te whakauru i te ingoa whaiaronga tika.

Inaianei kua tae ki te waa ki te whakamatau i te tuhinga. Whakatūwherahia te ripa Whakamātautau ka kōwhiri i te Hōtuhi:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Me whakapiri e koe te waehere e whai ake nei ki tenei puka:

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

Kia whai whakaaro tatou ki te waahanga e whai ake nei o te waehere:

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

Ko te mahi motuhake o te uara o te whakahau pwd ki tetahi taurangi hei pupuri i tenei uara taunoa he ahua ke i te titiro tuatahi, heoi, ka whakamarama au i nga mea katoa inaianei.

I a au e whakatu ana i te kaitirotiro ki AppVeyor, i tutaki ahau ki nga ahuatanga rerekee o te kaitirotiro. I tetahi taha, i mahi tika nga mea katoa, engari kaore i timata te tātari. He maha nga wa i kite ahau kei roto matou i te raarangi /home/appveyor/projects/testcalc/, a ka tino mohio te kaitirotiro kei roto tatou i /opt/appveyor/build-agent/. Katahi ahau ka mohio kei te takoto iti te taurangi $PWD. Mo konei, i whakahoutia e au tona uara i mua i te tiimata i te tātari.

Na ka rite nga mea katoa i mua:

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio
Inaianei whakaarohia te waahanga e whai ake nei:

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"`

I roto i tenei ka whiwhi tatou i te rereketanga i waenga i nga manga i whakapuakihia ai te tono toia. Hei mahi i tenei ka hiahia matou ki nga taurangi taiao e whai ake nei:

  • $APPVEYOR_PULL_REQUEST_NUMBER — toia te tau tono;
  • $APPVEYOR_REPO_NAME - ingoa kaiwhakamahi me te putunga kaupapa.

mutunga

Ae ra, kare ano matou i whakaaro ki nga ratonga whakauru tonu ka taea, heoi, he rite tonu nga ahuatanga whakahaere ki a raatau ano. Haunga te keteroki, ka mahia e ia ratonga tana ake "pahikara", na he rereke nga mea katoa.

I tetahi waahi, penei i a Travis-CI, e rua nga rarangi o te waehere me te keteroki e mahi pai ana; i tetahi waahi, penei i te AppVeyor, me tohu noa koe i te kōpaki i roto i nga tautuhinga; engari i tetahi waahi ka hiahia koe ki te hanga i nga taviri ahurei me te ngana ki te whakatenatena i te punaha kia whai waahi koe ki te tuhirua i te kongakonga keteroki. No reira, ki te hiahia koe ki te whakarite tātaritanga o nga tono kume mo te ratonga whakauru tonu kaore i korerohia i runga ake nei, me matua whakarite kia kore koe e raru ki te keteroki.

Mauruuru koe mo to aro. Mena karekau he mahi, tena koa waea mai ki a maatau tautoko. Ma matou e tohutohu me te awhina.

Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio

Mena kei te pirangi koe ki te tiri i tenei tuhinga ki te hunga whakarongo ki te reo Ingarihi, whakamahia te hononga whakamaori: Maxim Zvyagintsev. Te tātaritanga o nga mahi me nga tono toia i Travis CI, Buddy me AppVeyor ma te whakamahi i te PVS-Studio.

Source: will.com

Tāpiri i te kōrero