Linux, macOS เดเดจเตเดจเดฟเดตเดฏเดฟเดฒเต C, C++ เดญเดพเดทเดเตพเดเตเดเดพเดฏเตเดณเตเดณ PVS-Studio เด
เดจเดฒเตเดธเดฑเดฟเตฝ, เดชเดคเดฟเดชเตเดชเต 7.04 เดฎเตเดคเตฝ, เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดซเดฏเดฒเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเตป เดเดฐเต เดเตเดธเตเดฑเตเดฑเต เดเดชเตเดทเตป เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเต. เดชเตเดคเดฟเดฏ เดฎเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต, เดเดฎเตเดฎเดฟเดฑเตเดฑเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเดจเตเด เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดชเดฟเตปเดตเดฒเดฟเดเตเดเดพเดจเตเด เดจเดฟเดเตเดเตพเดเตเดเต เด
เดจเดฒเตเดธเตผ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดพเด. Travis CI, Buddy, AppVeyor เดชเตเดฒเตเดณเตเดณ เดเดจเดชเตเดฐเดฟเดฏ เดธเดฟเด (เดคเตเดเตผเดเตเดเดฏเตเดณเตเดณ เดธเดเดฏเตเดเดจเด) เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเดฟเตฝ GitHub เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต เดฎเดพเดฑเดฟเดฏ เดซเดฏเดฒเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเดเตเดเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเดฎเตเดจเตเดจเต เด เดฒเตเดเดจเด เดจเดฟเดเตเดเดณเตเดเต เดชเดฑเดฏเตเด.
เดซเดฏเตฝ เดฒเดฟเดธเตเดฑเตเดฑเต เดเตเดเตเดเดฟเดเดเต เดฎเตเดกเต
Linux, macOS เดเดจเตเดจเดฟเดตเดฏเตโเดเตเดเดพเดฏเตเดณเตเดณ PVS-Studio 7.04 เดชเดคเดฟเดชเตเดชเดฟเตฝ, เดเดฑเดตเดฟเด เดซเดฏเดฒเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดฎเตเดกเต เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเต. เดเดฐเต เดซเดฏเตฝ เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เดฌเดฟเตฝเดกเต เดธเดฟเดธเตเดฑเตเดฑเด เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเตพเดเตเดเต เดเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต
เดเตเดเดพเดคเต, เดเดเดชเตเดฒเตผ เดฒเตเดเตเดเตเดเดณเตเดเต (pvs-studio-analyzer trace) เดธเตโเดเตเดฐเตเดธเต เดเตเดฐเตเดธเต เดฒเตเดเดฟเดจเตเดชเตเดชเด เดซเดฏเตฝ เดฒเดฟเดธเตเดฑเตเดฑเต เดเตเดเตเดเดฟเดเดเต เดฎเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เดเดฆเตเดฏเด เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดจเดฟเตผเดฎเตเดฎเดพเดฃเด เดจเดเดคเตเดคเตเดเดฏเตเด เด เดคเต เดเตเดฐเดพเดเตเดเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต, เด เดคเตเดตเดดเดฟ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจ เดเดฒเตเดฒเดพ เดซเดฏเดฒเตเดเดณเตเดเตเดฏเตเด เดเดเดชเตเดฒเตเดทเตป เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดตเดฟเดตเดฐเดเตเดเตพ เด เดจเดฒเตเดธเตผ เดถเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เด เดเดชเตเดทเดจเต เดเดพเดฐเตเดฏเดฎเดพเดฏ เดชเตเดฐเดพเดฏเตเดฎเดฏเตเดฃเตเดเต - เดเดจเตเดจเตเดเดฟเตฝ เดจเดฟเดเตเดเตพ เด เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฎเตเดชเตเดดเตเดฒเตเดฒเดพเด เดฎเตเดดเตเดตเตป เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเตเดฏเตเด เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดฌเดฟเตฝเดกเต เดเตเดฐเตเดฏเตเดธเต เดจเดเดคเตเดคเตเดฃเตเดเดคเตเดฃเตเดเต, เดเดคเต เดเดฐเต เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดค เดตเตเดเดคเตเดคเดฟเตฝ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดถเดฏเดคเตเดคเดฟเดจเต เดตเดฟเดฐเตเดฆเตเดงเดฎเดพเดฃเต. เด เดฒเตเดฒเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพ เดเตเดฐเตเดฏเตโเดธเต เดซเดฒเด เดคเดจเตเดจเต เดเดพเดทเต เดเตเดฏเตเดฏเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดเตเดฐเตเดฏเตโเดธเดฟเดจเต เดถเตเดทเด เดธเตเดดเตโเดธเต เดซเดฏเดฒเตเดเดณเตเดเต เดกเดฟเดชเตปเดกเตปเดธเดฟ เดเดเดจ เดฎเดพเดฑเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ เด เดจเดฒเตเดธเดฑเดฟเดจเตเดฑเต เดคเตเดเตผเดจเตเดจเตเดณเตเดณ เดฑเดฃเตเดฃเตเดเตพ เด เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเดเตเดเดพเด (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดธเตเดดเตโเดธเต เดซเดฏเดฒเตเดเดณเดฟเดฒเตเดจเตเดจเดฟเดฒเตเดเตเดเต เดเดฐเต เดชเตเดคเดฟเดฏ #include เดเตเตผเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต).
เด
เดคเดฟเดจเดพเตฝ, เดเดฎเตเดฎเดฟเดฑเตเดฑเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดชเดฟเตปเดตเดฒเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเตเดฐเตเดฏเตเดธเต เดฒเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดซเดฏเตฝ เดฒเดฟเดธเตเดฑเตเดฑเต เดเตเดเตเดเต เดฎเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดเตเดเตพ เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ. เดเดฐเต เดเดฎเตเดฎเดฟเดฑเตเดฑเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดฎเตเดชเตเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดเตปเดเตเดฐเดฟเดฎเตเดจเตเดฑเตฝ เดฌเดฟเตฝเดกเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเดฎเตเดเตเดเดฟเตฝ, เดฎเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดชเดฐเดฟเดเดฃเดฟเดเตเดเตเด
เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดธเตเดดเตเดธเต เดซเดฏเดฒเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเดฐเต เดเตเดเตเดธเตเดฑเตเดฑเต เดซเดฏเดฒเดฟเตฝ เดธเตเดตเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเตผ เดเดชเดฏเตเดเดฟเดเตเดเต เด เดจเดฒเตเดธเดฑเดฟเดจเต เดเตเดฎเดพเดฑเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต -S:
pvs-studio-analyzer analyze ... -f build/compile_commands.json -S check-list.txt
เด เดซเดฏเตฝ เดซเดฏเดฒเตเดเดณเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดชเตเดเตเดทเดฟเดเดฎเต เดเตเดตเดฒเดฎเต เดเดฏ เดชเดพเดคเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเต, เดเดฐเต เดชเตเดคเดฟเดฏ เดซเดฏเดฒเตเด เดเดฐเต เดชเตเดคเดฟเดฏ เดฒเตเดจเดฟเตฝ เดเดฏเดฟเดฐเดฟเดเตเดเดฃเด. เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดซเดฏเตฝ เดจเดพเดฎเดเตเดเตพ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดตเดฟเดตเดฟเดง เดตเดพเดเดเดเตเดเดณเตเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเดคเต เดธเตเดตเตเดเดพเดฐเตเดฏเดฎเดพเดฃเต. เดเดคเต เดเดฐเต เดซเดฏเดฒเดฒเตเดฒเตเดจเตเดจเตเด เดฒเตเตป เด เดตเดเดฃเดฟเดเตเดเตเดฎเตเดจเตเดจเตเด เด เดจเดฒเตเดธเตผ เดเดพเดฃเตเด. เดซเดฏเดฒเตเดเตพ เดธเตเดตเดฎเตเดงเดฏเดพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ เด เดญเดฟเดชเตเดฐเดพเดฏเดฎเดฟเดเตเดจเตเดจเดคเดฟเดจเต เดเดคเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดเตเด. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดธเดฟเดเดฏเดฟเตฝ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ เดชเดฒเดชเตเดชเตเดดเตเด เดซเดฏเดฒเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดธเตเดทเตเดเดฟเดเตเดเดชเตเดชเตเดเตเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดต เดเดฐเต เดเดฎเตเดฎเดฟเดฑเตเดฑเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดชเตเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดซเดฏเดฒเตเดเดณเดพเดฏเดฟเดฐเดฟเดเตเดเดพเด.
เดเดชเตเดชเตเตพ, เด เดฎเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต, เดชเตเดฐเดงเดพเดจ เดตเดฟเดเดธเดจ เดถเดพเดเดฏเดฟเตฝ เดชเตเดฐเดตเตเดถเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดจเดฟเดเตเดเตพเดเตเดเต เดชเตเดคเดฟเดฏ เดเตเดกเต เดตเตเดเดคเตเดคเดฟเตฝ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด. เดธเตเดเดพเดจเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเด เด เดจเดฒเตเดธเตผ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเดเดณเตเดเต เดชเตเดฐเดคเดฟเดเดฐเดฟเดเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป, เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟ เดชเตเดฒเดเต-เดเตบเดตเตเตผเดเตเดเตผ เดชเดคเดพเด เดเตเตผเดคเตเดคเต --เดธเตเดเดฟเด-เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเดเตพ:
plog-converter ... --indicate-warnings ... -o /path/to/report.tasks ...
เด เดซเตเดฒเดพเดเต เดเดชเดฏเตเดเดฟเดเตเดเต, เด เดจเดฒเตเดธเตผ เดฑเดฟเดชเตเดชเตเตผเดเตเดเดฟเตฝ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเดเตพ เดเดฃเตเดเตเดเตเดเดฟเตฝ เดเตบเดตเตเตผเดเตเดเตผ เดชเตเดเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดเดฐเต เดเตเดกเต เดจเตฝเดเตเด. เดฑเดฟเดเตเดเตเตบ เดเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดชเตเดฐเตเดเดฎเตเดฎเดฟเดฑเตเดฑเต เดนเตเดเตเดเต เดคเดเดฏเดพเดจเต เดเดฎเตเดฎเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเดจเต เด เดญเตเดฏเตผเดคเตเดฅเดจ เดชเดฟเตปเดตเดฒเดฟเดเตเดเดพเดจเต เดเดดเดฟเดฏเตเด, เดเตเดเดพเดคเต เดเดจเดฑเตเดฑเตเดฑเดกเต เด เดจเดฒเตเดธเตผ เดฑเดฟเดชเตเดชเตเตผเดเตเดเต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดเตเดเดพเดจเต เดชเดเตเดเดฟเดเดพเดจเต เดเดฎเตเดฏเดฟเตฝ เดตเดดเดฟ เด เดฏเดฏเตเดเตเดเดพเดจเต เดเดดเดฟเดฏเตเด.
เดเตเดฑเดฟเดชเตเดชเต. เดจเดฟเดเตเดเตพ เดเดฆเตเดฏเด เดซเดฏเดฒเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเดพเตป เดคเตเดเดเตเดเตเดฎเตเดชเตเตพ, เดฎเตเดดเตเดตเตป เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเด เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเด, เดเดพเดฐเดฃเด เดนเตเดกเตผ เดซเดฏเดฒเตเดเดณเดฟเตฝ เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดธเตเดดเตเดธเต เดซเดฏเดฒเตเดเดณเตเดเต เดกเดฟเดชเตปเดกเตปเดธเดฟเดเดณเตเดเต เดเดฐเต เดซเดฏเตฝ เด เดจเดฒเตเดธเตผ เดธเตเดทเตเดเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดธเดฟ, เดธเดฟ++ เดซเดฏเดฒเตเดเตพ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดธเดตเดฟเดถเตเดทเดคเดฏเดพเดฃเดฟเดคเต. เดญเดพเดตเดฟเดฏเดฟเตฝ, เดกเดฟเดชเตปเดกเตปเดธเดฟ เดซเดฏเตฝ เดเดพเดทเต เดเตเดฏเตเดฏเดพเดจเตเด เด เดจเดฒเตเดธเตผ เดธเตเดตเดฏเดฎเตเดต เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดเตปเดเตเดฐเดฟเดฎเตเดจเตเดฑเตฝ เด เดจเดพเดฒเดฟเดธเดฟเดธเต เดฎเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเดพเตพ เดซเดฏเตฝ เดฒเดฟเดธเตเดฑเตเดฑเต เดเตเดเตเดเดฟเดเดเต เดฎเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดฎเตเดฎเดฟเดฑเตเดฑเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดชเตเดฐเดฏเตเดเดจเด, เดจเดฟเดเตเดเตพ เด เดซเดฏเตฝ เดเดพเดทเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต, เดเดฌเตเดเดเตเดฑเตเดฑเต เดซเดฏเดฒเตเดเดณเดฒเตเดฒ.
เดชเตเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเตเดฑเต เดชเตเดคเต เดคเดคเตเดตเดเตเดเตพ
เดฎเตเดดเตเดตเตป เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเด เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดงเดพเดฐเดพเดณเด เดธเดฎเดฏเดฎเตเดเตเดเตเดเตเด, เด เดคเดฟเดจเดพเตฝ เด เดคเดฟเดจเตเดฑเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดญเดพเดเด เดฎเดพเดคเตเดฐเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเต เด เตผเดคเตเดฅเดฎเดพเดเตเดเตเดจเตเดจเต. เดฌเดพเดเตเดเดฟเดฏเตเดณเตเดณ เดชเตเดฐเตเดเดเตเดเต เดซเดฏเดฒเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดคเดฟเดฏ เดซเดฏเดฒเตเดเตพ เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต เดเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดถเตเดจเด.
เดฐเดฃเตเดเต เดถเดพเดเดเดณเตเดณเตเดณ เดเดฐเต เดเดฎเตเดฎเดฟเดฑเตเดฑเต เดเตเดฐเตเดฏเตเดเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดจเตเดเตเดเดพเด:
เด เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดค เดจเดฎเตเดเตเดเต เดธเดเตเดเตฝเดชเตเดชเดฟเดเตเดเดพเด A1 เดเดคเดฟเดจเดเด เดชเดฐเตเดเตเดทเดฟเดเตเดเดฟเดเตเดเตเดณเตเดณ เดเดฐเต เดตเดฒเดฟเดฏ เด เดณเดตเดฟเดฒเตเดณเตเดณ เดเตเดกเต เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเตเดฑเดเตเดเต เดฎเตเดฎเตเดชเต เดเดเตเดเตพ เดเดฎเตเดฎเดฟเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดถเดพเด เดเดฃเตเดเดพเดเตเดเดฟ A1 เดเดฟเดฒ เดซเดฏเดฒเตเดเตพ เดฎเดพเดฑเตเดฑเดฟ.
เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดจเดฟเดเตเดเตพ เด เดคเต เดชเดฟเดจเตเดจเตเดเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเต A1 เดฐเดฃเตเดเต เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดคเดเตพ เดเตเดเดฟ เดธเดเดญเดตเดฟเดเตเดเต, เดเดจเตเดจเดพเตฝ เดเดตเดฏเตเด เดฎเดฑเตเดฑเต เดถเดพเดเดเดณเตเดเต เดฒเดฏเดจเดเตเดเดณเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดเดพเดฐเดฃเด เดเดเตเดเตพ เดชเตเดฐเดคเดฟเดเตเดเดพเดฌเดฆเตเดงเดฐเดพเดฏเดฟเดเตเดเดฟเดฒเตเดฒ เดฏเดเดฎเดพเดจเดจเต. เดเดชเตเดชเตเตพ เด เดธเดฎเดฏเด เดตเดจเตเดจเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต เดนเตเดเตเดเตเดซเตเดเตเดธเต เดคเดฏเตเดฏเดพเดฑเดพเดฃเต. เด เดคเตเดเตเดฃเตเดเดพเดฃเต เดฒเดฏเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดเดฐเต เดชเตเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเดคเต B3 ะธ A3.
เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เด เดตเดฐเตเดเต เดฒเดฏเดจเดคเตเดคเดฟเดจเตเดฑเต เดฎเตเดดเตเดตเตป เดซเดฒเดตเตเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เดเดจเตเดจเดพเตฝ เดเดคเต เดตเดณเดฐเต เดธเดฎเดฏเดฎเตเดเตเดเตเดเตเดจเตเดจเดคเตเด เดจเตเดฏเดพเดฏเตเดเดฐเดฟเดเตเดเดพเดคเตเดคเดคเตเดฎเดพเดฃเต, เดเดพเดฐเดฃเด เดเตเดฑเดเตเดเต เดซเดฏเดฒเตเดเตพ เดฎเดพเดคเตเดฐเดฎเต เดฎเดพเดฑเตเดฑเดฟเดฏเดฟเดเตเดเตเดณเตเดณเต. เด เดคเดฟเดจเดพเตฝ, เดฎเดพเดฑเดฟเดฏเดต เดฎเดพเดคเตเดฐเด เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดเตเดเตเดคเตฝ เดเดพเดฐเตเดฏเดเตเดทเดฎเดฎเดพเดฃเต.
เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดถเดพเดเดเตพ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเด เดจเดฎเตเดเตเดเต เดฒเดญเดฟเดเตเดเตเดจเตเดจเต, เดเดเตเดเตพ เดฎเดพเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจ เดถเดพเดเดฏเตเดเต เดคเดฒเดฏเดฟเตฝ เดเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
git diff --name-only HEAD origin/$MERGE_BASE > .pvs-pr.list
$MERGE_BASE เดเดเตเดเตพ เด เดคเต เดชเดฟเดจเตเดจเตเดเต เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดจเตเดเตเดเดพเด. เดเดฒเตเดฒเดพ CI เดธเตเดตเดจเดเตเดเดณเตเด เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดเดตเดถเตเดฏเดฎเดพเดฏ เดตเดฟเดตเดฐเดเตเดเตพ เดจเตฝเดเตเดจเตเดจเดฟเดฒเตเดฒ เดเดจเตเดจเดคเดพเดฃเต เดตเดธเตเดคเตเดค, เด เดคเดฟเดจเดพเตฝ เดเดฐเต เดคเดตเดฃเดฏเตเด เด เดกเดพเดฑเตเดฑ เดจเตเดเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดเตเดเตพ เดชเตเดคเดฟเดฏ เดตเดดเดฟเดเตพ เดเดฃเตเดเตเดคเตเดคเตเดฃเตเดเดคเตเดฃเตเดเต. เดตเดฟเดตเดฐเดฟเดเตเด เดเดฐเต เดตเตเดฌเต เดธเตเดตเดจเดเตเดเดณเดฟเดฒเตเด เดเดคเต เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดเตเดตเดเต เดตเดฟเดตเดฐเดฟเดเตเดเตเด.
เด เดคเดฟเดจเดพเตฝ, เดเดเตเดเตพเดเตเดเต เดถเดพเดเดเตพ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเด เดฒเดญเดฟเดเตเดเต, เด เดฒเตเดฒเตเดเตเดเดฟเตฝ, เดฎเดพเดฑเตเดฑเดฟเดฏ เดซเดฏเตฝ เดชเตเดฐเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต. เดเดจเดฟ เดซเดฏเตฝ เดเตเดเตเดเตเดเดฃเด .pvs-pr.list (เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ เดเดเตเดเตโเดชเตเดเตเดเต เดเดเตเดเตพ เด เดคเดฟเดฒเตเดเตเดเต เดฑเตเดกเดฏเดฑเดเตโเดเต เดเตเดฏเตโเดคเต) เด เดจเดฒเตเดธเดฑเดฟเดฒเตเดเตเดเต:
pvs-studio-analyzer analyze -j8
-o PVS-Studio.log
-S .pvs-pr.list
เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเต เดถเตเดทเด, เดจเดฎเตเดเตเดเต เดฒเตเดเต เดซเดฏเตฝ (PVS-Studio.log) เดเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดตเดพเดฏเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต:
plog-converter -t errorfile PVS-Studio.log --cerr -w
เด เดเดฎเดพเตปเดกเต เดชเดฟเดถเดเตเดเตพ เดชเดเตเดเดฟเดเดชเตเดชเตเดเตเดคเตเดคเตเด
เดเดชเตเดชเตเตพ เดฎเดพเดคเตเดฐเด เดจเดฎเตเดเตเดเต เดชเดฟเดถเดเตเดเตพ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดเตเดเตเด เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดชเตเดฐเดถเตเดจเดเตเดเดณเตเดเต เดธเดพเดจเตเดจเดฟเดงเตเดฏเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเต เด เดธเดเดฌเตเดฒเดฟเดเตเดเตเด เดชเดฐเดฟเดถเตเดงเดจเดฏเตเดเตเดเตเดฎเดพเดฏเดฟ เดเดเตเดเดณเตเดเต เดธเตเดตเดจเดคเตเดคเต เด เดฑเดฟเดฏเดฟเดเตเดเตเดเดฏเตเด เดตเตเดฃเด. เด เดเดตเดถเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดเตบเดตเตเตผเดเตเดเดฑเดฟเตฝ เดเดฐเต เดซเตเดฒเดพเดเต เดเตเตผเดคเตเดคเต -W (--เดธเตเดเดฟเด-เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเดเตพ). เดเตเดฑเดเตเดเดคเต เดเดฐเต เด เดจเดฒเตเดธเตผ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดเดฃเตเดเตเดเตเดเดฟเตฝ, เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟ เดฑเดฟเดเตเดเตเตบ เดเตเดกเต เดชเตเดฒเดเต-เดเตบเดตเตเตผเดเตเดเตผ 2 เดฒเตเดเตเดเต เดฎเดพเดฑเตเด, เดเดคเต เดชเตเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดซเดฏเดฒเตเดเดณเดฟเตฝ เดธเดพเดงเตเดฏเดฎเดพเดฏ เดชเดฟเดถเดเตเดเดณเตเดเต เดธเดพเดจเตเดจเดฟเดงเตเดฏเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเต CI เดธเตเดตเดจเดคเตเดคเต เด เดฑเดฟเดฏเดฟเดเตเดเตเด.
เดเตเดฐเดพเดตเดฟเดธเต เดธเดฟเด
เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดเดฐเต เดซเดฏเดฒเดพเดฏเดฟเดเตเดเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต .travis.yml. เดธเตเดเดฐเตเดฏเดพเตผเดคเตเดฅเด, เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจ เดซเดเดเตเดทเดจเตเดเดณเตเดณเตเดณ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดฌเดพเดทเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดเดฒเตเดฒเดพเด เดเตพเดชเตเดชเตเดเตเดคเตเดคเดพเตป เดเดพเตป เดจเดฟเดเตเดเดณเต เดเดชเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเต. .travis.yml (เดฌเดพเดทเต script_name.sh function_name).
เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดเตเดกเต เดเดเตเดเตพ เดเตเตผเดเตเดเตเด เดฌเดพเดทเต, เดเดคเตเดตเดดเดฟ เดจเดฎเตเดเตเดเต เดเตเดเตเดคเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดค เดฒเดญเดฟเดเตเดเตเด. เดตเดฟเดญเดพเดเดคเตเดคเดฟเตฝ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด เดจเดฎเตเดเตเดเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดเดดเตเดคเดพเด:
install:
- bash .travis.sh travis_install
เดจเดฟเดเตเดเตพเดเตเดเต เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเตพ เดเดฃเตเดเตเดเตเดเดฟเตฝ, เดนเตเดซเดจเตเดเตพ เดจเตเดเตเดเดเดเตเดฏเตเดคเตเดเตเดฃเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เด เดต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเดพเดตเตเดจเตเดจเดคเดพเดฃเต.
เดจเดฎเตเดเตเดเต เดซเดฏเตฝ เดคเตเดฑเดเตเดเดพเด .travis.sh เดซเดเดเตโเดทเดจเดฟเดฒเตเดเตเดเต เด เดจเดฒเตเดธเตผ เดเตเดฐเดฎเตเดเดฐเดฃเด เดเตเตผเดเตเดเตเด 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
}
เดเดจเดฟ เดจเดฎเตเดเตเดเต เดตเดฟเดญเดพเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเดพเด เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดฑเตบ เดตเดฟเดถเดเดฒเดจเด:
script:
- bash .travis.sh travis_script
เดฌเดพเดทเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ:
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
}
เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดคเดฟเดจเต เดถเตเดทเด เด เดเตเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเดเตเดเตพเดเตเดเต CMake-เตฝ เดเดฐเต เดฌเดฟเตฝเดกเต เดเดฃเตเดเตเดเตเดเดฟเตฝ:
travis_script() {
CMAKE_ARGS="-DCMAKE_EXPORT_COMPILE_COMMANDS=On ${CMAKE_ARGS}"
cmake $CMAKE_ARGS CMakeLists.txt
make -j8
}
เดเดคเต เดเดคเตเดชเตเดฒเต เดฎเดพเดฑเตเด:
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
}
เด เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดจเดฟเดเตเดเตพ เดเดคเดฟเดจเดเด เดถเตเดฐเดฆเตเดงเดฟเดเตเดเดฟเดฐเดฟเดเตเดเดพเด $TRAVIS_PULL_REQUEST ะธ $TRAVIS_BRANCH. เดเตเดฐเดพเดตเดฟเดธเต เดธเดฟเด เด เดตเดฐเต เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเดเตเดจเตเดจเต:
- $TRAVIS_PULL_REQUEST เดชเตเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดฎเตเดชเตผ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดคเตเดฑเตเดฑเดพเดฏ, เดเดคเตเดฐเต เดธเดพเดงเดพเดฐเดฃ เดถเดพเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ;
- $TRAVIS_REPO_SLUG เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดฏเตเดเต เดชเตเดฐเต เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต.
เด เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เด เตฝเดเตเดฐเดฟเดคเด:
เดเตเดฐเดพเดตเดฟเดธเต เดธเดฟเด เดฑเดฟเดเตเดเตเตบ เดเตเดกเตเดเดณเตเดเต เดชเตเดฐเดคเดฟเดเดฐเดฟเดเตเดเตเดจเตเดจเต, เด
เดคเดฟเดจเดพเตฝ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเดเดณเตเดเต เดธเดพเดจเตเดจเดฟเดงเตเดฏเด, เดเดฎเตเดฎเดฟเดฑเตเดฑเต เดชเดฟเดถเดเตเดเตพ เด
เดเดเตเดเดฟเดฏเดคเดพเดฏเดฟ เด
เดเดฏเดพเดณเดชเตเดชเตเดเตเดคเตเดคเดพเตป เดธเตเดตเดจเดคเตเดคเตเดเต เดชเดฑเดฏเตเด.
เดเดจเดฟ เดจเดฎเตเดเตเดเต เด เดเตเดกเดฟเดจเตเดฑเต เดตเดฐเดฟ เดธเตเดเตเดทเตเดฎเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด:
git diff --name-only origin/HEAD > .pvs-pr.list
เดเดฐเต เดชเตเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ เดเตเดฐเดพเดตเดฟเดธเต เดธเดฟเด เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดถเดพเดเดเดณเต เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจเดคเดพเดฃเต เดตเดธเตเดคเตเดค:
เด
เดคเดฟเดจเดพเตฝ เดเดเตเดเตพ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเต A4เดชเดเตเดทเต เดเดฒเตเดฒ B3->A3. เด เดธเดตเดฟเดถเตเดทเดค เดเดพเดฐเดฃเด, เดจเดฎเตเดฎเตพ เดตเตเดฏเดคเตเดฏเดพเดธเด เดเดฃเดเตเดเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต A3, เด
เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดถเดพเดเดฏเตเดเต เดฎเตเดเตพ เดญเดพเดเดฎเดพเดฃเต เดเดคเตเดญเดตเด.
เดเดฐเต เดชเตเดฐเดงเดพเดจ เดตเดฟเดถเดฆเดพเดเดถเด เด เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเต - เดเดเดชเตเตฝ เดเตเดฏเตเดค เดตเดฟเดตเตผเดคเตเดคเดจ เดฏเตเดฃเดฟเดฑเตเดฑเตเดเดณเดฟเตฝ (*.c, *.cc, *.cpp, เดฎเตเดคเดฒเดพเดฏเดต) เดนเตเดกเตผ เดซเดฏเดฒเตเดเดณเตเดเต เดกเดฟเดชเตปเดกเตปเดธเดฟเดเตพ เดเดพเดทเต เดเตเดฏเตเดฏเตเดจเตเดจเต. เดซเดฏเดฒเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจ เดฎเตเดกเดฟเตฝ เดเดฆเตเดฏเด เดฒเตเดเตเดเต เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ เด เดจเดฒเตเดธเตผ เด เดกเดฟเดชเตปเดกเตปเดธเดฟเดเตพ เดเดฃเดเตเดเดพเดเตเดเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เด เดต .PVS-Studio เดกเดฏเดฑเดเตโเดเดฑเดฟเดฏเดฟเตฝ เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจเต. เดซเตเตพเดกเดฑเตเดเตพ เดเดพเดทเต เดเตเดฏเตเดฏเดพเตป เดเตเดฐเดพเดตเดฟเดธเต เดธเดฟเด เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต, เด เดคเดฟเดจเดพเตฝ เดเดเตเดเตพ เดกเดฏเดฑเดเตเดเดฑเดฟ เดกเดพเดฑเตเดฑ เดธเดเดฐเดเตเดทเดฟเดเตเดเตเด .PVS-เดธเตเดฑเตเดฑเตเดกเดฟเดฏเต/:
cache:
directories:
- .PVS-Studio/
เด เดเตเดกเต เดซเดฏเดฒเดฟเตฝ เดเตเตผเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต .travis.yml. เด เดกเดฏเดฑเดเตโเดเดฑเดฟ เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเต เดถเตเดทเด เดถเตเดเดฐเดฟเดเตเด เดตเดฟเดตเดฟเดง เดกเดพเดฑเตเดฑ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต, เดเดคเต เดซเดฏเตฝ เดฒเดฟเดธเตเดฑเตเดฑเต เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเตเดฑเตเดฏเต เดเตปเดเตเดฐเดฟเดฎเตเดจเตเดฑเตฝ เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเตเดฑเตเดฏเต เดคเตเดเตผเดจเตเดจเตเดณเตเดณ เดฑเดฃเตเดฃเตเดเดณเต เดเดฃเตเดฏเดฎเดพเดฏเดฟ เดตเตเดเดคเตเดคเดฟเดฒเดพเดเตเดเตเด. เดเดคเต เดเตเดฏเตเดคเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เด เดจเดฒเตเดธเตผ เดเดฒเตเดฒเดพ เดซเดฏเดฒเตเดเดณเตเด เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเด.
เดฌเดกเตเดกเดฟ
เดเตเดฐเดพเดตเดฟเดธเต เดธเดฟเด เดชเตเดฒเต,
เดเดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เด เดธเดเดฌเตเดฒเดฟ เดฒเตเดจเดฟเดฒเตเดเตเดเต เดเดเตเดเตพ เดเดฐเต เดชเตเดคเดฟเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดเตเตผเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเตป เดเดชเดฏเตเดเดฟเดเตเด เดเดเดชเตเดฒเตผ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดพเด. เด เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเตฝ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดฟเดเตเดเตเดณเตเดณ เดกเตเดเตเดเตผ เดเดฃเตเดเตเดฏเตเดจเตผ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดฟเดธเดฟเดธเดฟเดเตเดเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเดฃเตเดเตเดฏเตเดจเตผ เดเดฃเตเดเต:
เดเดจเดฟ เดจเดฎเตเดเตเดเต เดชเดฟเดตเดฟเดเดธเต-เดธเตเดฑเตเดฑเตเดกเดฟเดฏเตเดฏเตเด เดเดตเดถเตเดฏเดฎเดพเดฏ เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดเดณเตเด เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเด:
เดเดกเดฟเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเดฐเดฟเดเตพ เดเตเตผเดเตเดเดพเด:
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
เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดฑเตบ เดเดพเดฌเดฟเดฒเตเดเตเดเต เดชเตเดเดพเด (เดเดฆเตเดฏ เดเดเตเดเตบ) เด เดจเตเดฌเดจเตเดง เดเดกเดฟเดฑเตเดฑเตผ เดซเตเตฝเดกเดฟเดฒเตเดเตเดเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเตเดกเต เดเตเตผเดเตเดเตเด:
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
เดจเดฟเดเตเดเตพ Travs-CI-เดฏเดฟเดฒเต เดตเดฟเดญเดพเดเด เดตเดพเดฏเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เด เดเตเดกเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเดฟเดจเดเด เดชเดฐเดฟเดเดฟเดคเดฎเดพเดฃเต, เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดชเตเดชเตเตพ เดเดฐเต เดชเตเดคเดฟเดฏ เดเดเตเดเด เดเดฃเตเดเต:
เดเดชเตเดชเตเตพ เดเดเตเดเตพ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดฒเดฏเดจเดคเตเดคเดฟเดจเตเดฑเต เดซเดฒเดฎเดฒเตเดฒ, เดชเตเตพ เด
เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดเดคเตเดคเดฟเดฏ เดฌเตเดฐเดพเดเตเดเดฟเดจเตเดฑเต เดคเดฒเดฏเดพเดฃเต:
เด
เดคเดฟเดจเดพเตฝ เดเดเตเดเตพ เดเดฐเต เดธเตเดชเดพเดงเดฟเด เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดคเดฏเดฟเดฒเดพเดฃเต B3 เดเตเดเดพเดคเต เดจเดฎเตเดเตเดเต เดตเตเดฏเดคเตเดฏเดพเดธเด เดจเตเดเตเดฃเตเดเดคเตเดฃเตเดเต 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
เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดพเตป A3 เดจเดฎเตเดเตเดเต GitHub API เดเดชเดฏเตเดเดฟเดเตเดเดพเด:
https://api.github.com/repos/${USERNAME}/${REPO}/pulls/${PULL_REQUEST_ID}
เดฌเดกเตเดกเดฟ เดจเตฝเดเตเดจเตเดจ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต:
- $BUDDY_EXECUTION_PULL_REQEUST_NO - เด เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดฎเตเดชเตผ เดตเดฒเดฟเดเตเดเตเด;
- $BUDDY_REPO_SLUG โ เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเดคเตเดคเดฟเดจเตเดฑเตเดฏเตเด เดถเตเดเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเตเดฏเตเด เดธเดเดฏเตเดเดจเด (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต max/test).
เดเดชเตเดชเตเตพ เดเตเดตเดเตเดฏเตเดณเตเดณ เดฌเดเตเดเตบ เดเดชเดฏเตเดเดฟเดเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดเดฏเตเด เดชเตเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดเต เดตเดฟเดถเดเดฒเดจเด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเดพเด:
เดเตเดฐเดพเดตเดฟเดธเต เดธเดฟเดเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เดเดเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒ .pvs-studio เดเดพเดทเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ, เดฌเดกเตเดกเดฟ เดคเตเดเตผเดจเตเดจเตเดณเตเดณ เดฒเตเดเตเดเตเดเตพเดเตเดเดพเดฏเดฟ เดเดฒเตเดฒเดพ เดซเดฏเดฒเตเดเดณเตเด เดธเตเดตเดฏเดฎเตเดต เดเดพเดทเต เดเตเดฏเตเดฏเตเดจเตเดจเต. เด
เดคเดฟเดจเดพเตฝ, เด
เดตเดธเดพเดจเดฎเดพเดฏเดฟ เด
เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต เดฌเดกเตเดกเดฟเดฏเดฟเตฝ เดชเดฟเดตเดฟเดเดธเต-เดธเตเดฑเตเดฑเตเดกเดฟเดฏเตเดฏเตเดเตเดเตเดณเตเดณ เดฒเตเดเดฟเตป, เดชเดพเดธเตโเดตเตเดกเต เดธเดเดฐเดเตเดทเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต. เดฎเดพเดฑเตเดฑเดเตเดเตพ เดธเดเดฐเดเตเดทเดฟเดเตเด เดถเตเดทเด, เดเดเตเดเดณเต เดชเตเดชเตเดชเตเดฒเตเดจเดฟเดฒเตเดเตเดเต เดคเดฟเดฐเดฟเดเต เดเตเดฃเตเดเตเดชเตเดเตเด. เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด PVS-Studio-เดฏเตโเดเตเดเดพเดฏเดฟ เดเดฐเต เดฒเตเดเดฟเดจเตเด เดเตเดฏเตเด เดเตเตผเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเดเตเดเตพ เดฎเตเดจเตเดจเตเดเตเดเต เดชเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
เดเดคเดฟเดจเตเดถเตเดทเด, เดเดฐเต เดชเตเดคเดฟเดฏ เดชเตเตพ เด
เดญเตเดฏเตผเดคเตเดฅเดจ เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฎเตเดฎเดฟเดฑเตเดฑเต เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดจเตเดจเดคเต เด
เดตเดฒเตเดเดจเด เดเตเดฐเดฟเดเตผ เดเตเดฏเตเดฏเตเด. เดเดฐเต เดเดฎเตเดฎเดฟเดฑเตเดฑเดฟเตฝ เดชเดฟเดถเดเตเดเตพ เดเดฃเตเดเตเดเตเดเดฟเตฝ, เดชเตเตพ เด
เดญเตเดฏเตผเดคเตเดฅเดจ เดชเตเดเดฟเตฝ เดฌเดกเตเดกเดฟ เดเดคเต เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเตเด.
AppVeyor
AppVeyor เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดฌเดกเตเดกเดฟเดเตเดเต เดธเดฎเดพเดจเดฎเดพเดฃเต, เดเดพเดฐเดฃเด เดเดฒเตเดฒเดพเด เดตเตเดฌเต เดเดจเตเดฑเตผเดซเตเดธเดฟเตฝ เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต *.yml เดซเดฏเตฝ เดเตเตผเดเตเดเตเดฃเตเด เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.
เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เด เดตเดฒเตเดเดจเดคเตเดคเดฟเดฒเต เดเตเดฐเดฎเตเดเดฐเดฃ เดเดพเดฌเดฟเดฒเตเดเตเดเต เดชเตเดเดพเด:
เดชเตเตพ เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดถเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดจเดฎเตเดเตเดเต เด เดชเตเดเต เดคเดพเดดเตเดเตเดเต เดธเตเดเตเดฐเตเตพ เดเตเดฏเตเดคเต เดเดพเดทเต เดธเตเดตเดฟเดเดเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเดพเด:
เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดเดพเดฌเดฟเดฒเตเดเตเดเต เดชเตเดเดพเด, เด
เดตเดฟเดเต เด
เดธเดเดฌเตเดฒเดฟเดเตเดเดพเดฏเตเดณเตเดณ เดเดฎเตเดเตเด เดเดตเดถเตเดฏเดฎเดพเดฏ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเด เดเดเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเต:
เดจเดฟเดเตเดเตพ เดฎเตเดฎเตเดชเดคเตเดคเต เดญเดพเดเดเตเดเตพ เดตเดพเดฏเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดฐเดฃเตเดเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดตเดณเดฐเต เดชเดฐเดฟเดเดฟเดคเดฎเดพเดฃเต - PVS_KEY ะธ PVS_USERNAME. เดเดฒเตเดฒเตเดเตเดเดฟเตฝ, PVS-Studio เด
เดจเดฒเตเดธเดฑเดฟเดจเตเดฑเต เดฒเตเดธเตปเดธเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดฃเตเดเดคเต เด
เดคเตเดฏเดพเดตเดถเตเดฏเดฎเดพเดฃเตเดจเตเดจเต เดเดพเตป เดจเดฟเดเตเดเดณเต เดเตผเดฎเตเดฎเดฟเดชเตเดชเดฟเดเตเดเดเตเดเต. เดญเดพเดตเดฟเดฏเดฟเตฝ เดฌเดพเดทเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดจเดฎเตเดเตเดเต เด
เดตเดฐเต เดตเตเดฃเตเดเตเด เดเดพเดฃเดพเด.
เดเตเดตเดเตเดฏเตเดณเตเดณ เด เดคเต เดชเตเดเดฟเตฝ เดเดเตเดเตพ เดเดพเดทเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดซเตเตพเดกเตผ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต:
เดเดเตเดเตพ เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดฐเดฃเตเดเต เดซเดฏเดฒเตเดเตพเดเตเดเต เดชเดเดฐเด เดฎเตเดดเตเดตเตป เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเด เดเดเตเดเตพ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเด, เดเดจเตเดจเดพเตฝ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดซเดฏเดฒเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดเตพเดเตเดเต เดเดเตเดเตเดชเตเดเตเดเต เดฒเดญเดฟเดเตเดเตเด. เด
เดคเดฟเดจเดพเตฝ, เดถเดฐเดฟเดฏเดพเดฏ เดกเดฏเดฑเดเตเดเดฑเดฟ เดจเดพเดฎเด เดจเตฝเดเตเดฃเตเดเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต.
เดเดจเดฟ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดธเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดฃเตเด เดธเดฎเดฏเดฎเดพเดฃเต. เดเตเดธเตเดฑเตเดฑเต เดเดพเดฌเต เดคเตเดฑเดจเตเดจเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด:
เด เดซเตเดฎเดฟเดฒเตเดเตเดเต เดจเดฟเดเตเดเตพ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเตเดกเต เดเดเตเดเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
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
เดเตเดกเดฟเดจเตเดฑเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดญเดพเดเด เดถเตเดฐเดฆเตเดงเดฟเดเตเดเดพเด:
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 เดเดฎเดพเตปเดกเดฟเดจเตเดฑเต เดฎเตเดฒเตเดฏเดคเตเดคเดฟเดจเตเดฑเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เด เดธเตเตปเดฎเตเดจเตเดฑเต เดเดฑเตเดฑเดจเตเดเตเดเดคเตเดคเดฟเตฝ เดตเดฟเดเดฟเดคเตเดฐเดฎเดพเดฏเดฟ เดคเตเดจเตเดจเตเดจเตเดจเต, เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดพเตป เดเดชเตเดชเตเตพ เดเดฒเตเดฒเดพเด เดตเดฟเดถเดฆเตเดเดฐเดฟเดเตเดเตเด.
AppVeyor-เตฝ เด เดจเดฒเตเดธเตผ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดฎเตเดชเตเตพ, เด เดจเดฒเตเดธเดฑเดฟเดจเตเดฑเต เดตเดณเดฐเต เดตเดฟเดเดฟเดคเตเดฐเดฎเดพเดฏ เดชเตเดฐเตเดฎเดพเดฑเตเดฑเด เดเดพเตป เดจเตเดฐเดฟเดเตเดเต. เดเดฐเต เดตเดถเดคเตเดคเต, เดเดฒเตเดฒเดพเด เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเต, เดชเดเตเดทเต เดตเดฟเดถเดเดฒเดจเด เดเดฐเดเดญเดฟเดเตเดเดฟเดฒเตเดฒ. เดเดเตเดเตพ /home/appveyor/projects/testcalc/ เดกเดฏเดฑเดเตโเดเดฑเดฟเดฏเดฟเดฒเดพเดฃเตเดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดเตเดฃเตเดเต เดเดพเตป เดเดฐเตเดชเดพเดเต เดธเดฎเดฏเด เดเดฟเดฒเดตเดดเดฟเดเตเดเต, เดเตเดเดพเดคเต เดจเดฎเตเดฎเตพ /opt/appveyor/build-agent/-เตฝ เดเดฃเตเดจเตเดจเต เด เดจเดฒเตเดธเตผ เดเดฑเดชเตเดชเดพเดฃเต. เด เดชเตเดชเตเตพ $PWD เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เด เตฝเดชเตเดชเด เดเดฟเดเดเตเดเตเดจเตเดจเต เดเดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดฏเดฟ. เดเดเตเดเดพเดฐเดฃเดคเตเดคเดพเตฝ, เดตเดฟเดถเดเดฒเดจเด เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดเดพเตป เด เดคเดฟเดจเตเดฑเต เดฎเตเดฒเตเดฏเด เดธเตเดตเดฎเตเดงเดฏเดพ เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดคเต.
เดชเดฟเดจเตเดจเต เดเดฒเตเดฒเดพเด เดชเดดเดฏเดคเตเดชเตเดฒเต เดคเดจเตเดจเต:
เดเดชเตเดชเตเตพ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดถเดเดฒเด เดชเดฐเดฟเดเดฃเดฟเดเตเดเตเด:
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"`
เดชเตเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเด เดถเดพเดเดเตพ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเด เด เดคเดฟเตฝ เดจเดฎเตเดเตเดเต เดฒเดญเดฟเดเตเดเตเด. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฎเตเดเตเดเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเต:
- $APPVEYOR_PULL_REQUEST_NUMBER โ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดฎเตเดชเตผ เดชเดฟเตปเดตเดฒเดฟเดเตเดเตเด;
- $APPVEYOR_REPO_NAME - เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเดตเตเด เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดถเตเดเดฐเดฃเดตเตเด.
เดคเตเดฐเตเดฎเดพเดจเด
เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดธเดพเดงเตเดฏเดฎเดพเดฏ เดเดฒเตเดฒเดพ เดคเตเดเตผเดเตเดเดฏเดพเดฏ เดธเดเดฏเตเดเดจ เดธเตเดตเดจเดเตเดเดณเตเด เดเดเตเดเตพ เดชเดฐเดฟเดเดฃเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒ, เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เด เดตเดฏเตโเดเตเดเตเดฒเตเดฒเดพเด เดชเดฐเดธเตเดชเดฐเด เดธเดฎเดพเดจเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจ เดธเดตเดฟเดถเตเดทเดคเดเตพ เดเดฃเตเดเต. เดเดพเดทเดฟเดเดเต เดเดดเดฟเดเต, เดเดฐเต เดธเตเดตเดจเดตเตเด เดธเตเดตเดจเตเดคเด "เดธเตเดเตเดเดฟเตพ" เดเดฃเตเดเดพเดเตเดเตเดจเตเดจเต, เด เดคเดฟเดจเดพเตฝ เดเดฒเตเดฒเดพเด เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต.
เดเดตเดฟเดเตเดฏเต, เดเตเดฐเดพเดตเดฟเดธเต-เดธเดฟเด เดชเตเดฒเต, เดเตเดกเดฟเดจเตเดฑเตเดฏเตเด เดเดพเดทเดฟเดเดเดฟเดจเตเดฑเตเดฏเตเด เดฐเดฃเตเดเต เดตเดฐเดฟเดเตพ เดเตเดฑเตเดฑเดฎเดฑเตเดฑ เดฐเตเดคเดฟเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต; เดเดตเดฟเดเตเดฏเต, AppVeyor เดชเตเดฒเต, เดจเดฟเดเตเดเตพ เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเดณเดฟเตฝ เดซเตเตพเดกเตผ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต; เดเดจเตเดจเดพเตฝ เดเดตเดฟเดเตเดฏเตเดเตเดเดฟเดฒเตเด เดจเดฟเดเตเดเตพ เด เดฆเตเดตเดฟเดคเตเดฏ เดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดเดพเดทเต เดเตเดฏเตเดค เดถเดเดฒเด เดคเดฟเดฐเตเดคเตเดคเดฟเดฏเตเดดเตเดคเดพเดจเตเดณเตเดณ เด เดตเดธเดฐเด เดจเตฝเดเตเดจเตเดจเดคเดฟเดจเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเต เดฌเตเดงเตเดฏเดชเตเดชเตเดเตเดคเตเดคเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเดเดฏเตเด เดตเตเดฃเด. เด เดคเดฟเดจเดพเตฝ, เดฎเตเดเดณเดฟเตฝ เดเตผเดเตเด เดเตเดฏเตเดคเดฟเดเตเดเดฟเดฒเตเดฒเดพเดคเตเดค เดเดฐเต เดคเตเดเตผเดเตเดเดฏเดพเดฏ เดธเดเดฏเตเดเดจ เดธเตเดตเดจเดคเตเดคเดฟเตฝ เดชเตเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจเดเดณเตเดเต เดตเดฟเดถเดเดฒเดจเด เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ, เดเดฆเตเดฏเด เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดทเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเตฝ เดชเตเดฐเดถเตโเดจเดเตเดเดณเดฟเดฒเตเดฒเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเตเด.
เดจเดฟเดเตเดเดณเตเดเต เดถเตเดฐเดฆเตเดงเดฏเตเดเตเดเต เดจเดจเตเดฆเดฟ. เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดเตเดเตพเดเตเดเต เดเดดเตเดคเดพเตป เดฎเดเดฟเดเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒ
เดเดเดเตเดฒเตเดทเต เดธเดเดธเดพเดฐเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเตเดเตเดทเดเดฐเตเดฎเดพเดฏเดฟ เด เดฒเตเดเดจเด เดชเดเตเดเดฟเดเดพเตป เดจเดฟเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ, เดตเดฟเดตเตผเดคเตเดคเดจ เดฒเดฟเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเด: Maxim Zvyagintsev.
เด
เดตเดฒเดเดฌเด: www.habr.com