แแแงแแแ แ GitLab แแ แแซแฃแแ แจแแชแแแแแแ? แแกแฃแ แ แแแแฃแแฏแแแแกแแ แแฅแแแแ แฌแงแแ แ แแแแแก แฎแแ แแกแฎแ? แแแจแแ แกแฌแแ แแแแแแแก แแแฎแแแแ. แแฆแแก แฉแแแ แแแขแงแแแ, แแฃ แ แแแแ แฃแแแ แแแแแแแคแแแฃแ แแ แแ PVS-Studio C# แแแแแแแแขแแ แ แจแแ แฌแงแแแก แแแแฎแแแแแแแก แจแแกแแแแฌแแแแแแ. แแฅแแแแแ unicorn แแแแฌแงแแแ แแ แแแแแแแ แ แแแแฎแแ แงแแแแแก.
แกแฎแแแแ แจแแ แแก, แฉแแแ แแแแแแฃแจแแแ PVS-Studio 7.08, แ แแแแแจแแช แแแแ แ แ แแ แแแแแแแแแ
- C# แแแแแแแแขแแ แ Linux-แแกแ แแ macOS-แแกแแแแก;
- แแแแฃแแ Rider-แแกแแแแก;
- แแฎแแแ แคแแแแแแแก แกแแแก แจแแแแฌแแแแแก แ แแแแแ.
แคแแแแแแแก แกแแแก แจแแแแฌแแแแแก แ แแแแแ
แแแแแแแ, แแแ แแแแฃแแ แคแแแแแแแก แจแแกแแแแฌแแแแแแ, แกแแญแแ แ แแงแ .xml แคแแแแแแแก แกแแแ แแแแแแแแขแแ แแกแแแแก แแแแแชแแแ. แแแแ แแ แ แแแแแ แแก แแ แแ แแก แซแแแแแ แแแกแแฎแแ แฎแแแแแ, แฉแแแ แแแแแแแขแแ .txt แแแแแชแแแแก แจแแกแแซแแแแแแแ, แ แแช แชแฎแแแ แแแแก แซแแแแแ แแแ แขแแแก แฎแแแก.
แแแแแ แแขแฃแแ แคแแแแแแแก แจแแกแแแแฌแแแแแแ, แแฅแแแ แฃแแแ แแแฃแแแแแ แแ แแจแ --sourceFiles (-f) แแ แแแแแแขแแแแ .txt แคแแแแแแแก แกแแแ. แแก แแกแ แแแแแแงแฃแ แแแ:
pvs-studio-dotnet -t path/to/solution.sln -f fileList.txt -o project.json
แแฃ แแฅแแแ แแแแแขแแ แแกแแแ แแแแแแแฃแแแแแก แจแแแแฌแแแแแก แแ แแแแฎแแแแแแแก แแแงแแแแแ, แแกแแแ แจแแแแซแแแแ แแแแก แแแแแแแแ แแ แ แแแแแแก แแแแแงแแแแแแ. แแแแกแฎแแแแแแ แแฅแแแแ แคแแแแแแแก แกแแแจแ แแแกแแแแแแแแแแแแ แแ แแแแแแแแแแฃแแ แแฅแแแแ แแแแแ, แแฃ แ แแแแ แกแแกแขแแแแแก แแงแแแแแ.
แจแแ แฌแงแแแก แแแแฎแแแแแก แจแแแแฌแแแแแก แแ แแแชแแแ
แจแแแแฌแแแแแก แแแแแแ แ แแ แกแ แแ แแก แแแแก แฃแแ แฃแแแแแงแแคแ, แ แแ แแแแแแแแขแแ แแก แแแแ แจแแ แฌแงแแแก แแ แแก แแฆแแแฉแแแแแ แแ แแแแแแแแ แแ แแแฎแแแแแ แกแแแแแแกแขแ แ แคแแแแแแ. แฉแแแ แแกแแแ แแ แแแแแแ แงแแแแ แฏแแ แแ แแแแแแแแแแแแ แแแแแ แแ แแแฅแขแ. แฃแคแ แ แแแขแแช, แคแแแแแแแแแก แแแแ แแแแแแแแกแแก, แฉแแแ แแแแฅแแก แจแแชแแแแแ แคแแแแแแแก แกแแ. แแแแขแแ, แแ แแแแแแแแแ แแแแ แแแแแแแแก แแแแฎแแแแแก แจแแแแฌแแแแแก แแแแแขแแแแก.
แแกแ แแแแแแงแฃแ แแแ แจแแ แฌแงแแแก แแแแฎแแแแ แกแขแแขแแแฃแ แ แแแแแแแแขแแ แแก แแแแฎแแ แชแแแแแแแแแ:
แแแฃ แงแแแแ แแก แจแแชแแแแ, แ แแช แแงแ แคแแแแแแจแ แชแแแแแแแแแ, แแแแแแ แกแแแแแแกแขแ แ แคแแแแแแจแ. แแแแแแแแ แแก แแ แแแแแแ, แฉแแแ แแแแแขแแแ แแแแแแแก แแ แแฎแแ แแแแแ แแแ แแกแ แแแแแแงแฃแ แแแ:
แฉแแแ แแแแแแแแแแแ แชแแแแแแแแแ 2 แแ แแฃ แจแแชแแแแแแ แแ แแ แแก, แฉแแแ แแแฆแแแ แจแแ แฌแงแแแก แแแแฎแแแแแก, แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แฃแแ แแงแแคแ แแแก.
แกแฎแแแแ แจแแ แแก, แแฃ แแแแแขแแ แแกแแแ แแแแแแแฃแแแแแแแก แแแแแแแ แแ C/C++-แแก แแแแฎแแแแแแ, แแแจแแ แจแแแแซแแแแ แฌแแแแแแฎแแ แแแแก แจแแกแแฎแแ
แแแขแแแแ
แกแแแแ แจแแ แฌแงแแแก แแแแฎแแแแแแแก แแแแแแแก แแแแฌแงแแแ, แฃแแแ แแแ แแแแกแขแ แแ แแแ แแ แแขแแแ แแแ แแฅแแแแ แแ แแแฅแขแ. แแฃ แแ แแชแแ แ แแแแ แแแแแแแแ แแก, แแแ แฉแแแ
แจแแแแจแแแ. แฅแแแแแ แแฆแฌแแ แแแ แแแ แแแแก แแแงแแแแแแก แแแแแแ แแ แ-แแ แแแ แจแแกแแซแแ. แแแแแแแ แแฉแแแแแก แแแแแฏแแแ แแแแแแแแกแแแแก แกแแญแแ แ แแแ แแแแก แแแกแแงแแแแแแแ แแ แแแแแแแแขแแ แแก แแแจแแแแแกแแแแก. แแแแแ แแฅแแแแก แจแแแแฎแแแแแจแ แฃแคแ แ แแแขแแแแแฃแ แ แแฅแแแแแแ แแแ แแแแก แแแแแแแแแแก (แกแแชแแแแแแก แแแแแขแแแ, แแแแแแแแขแแ แแก แแแงแแแแแ) แแ แแแแแแแแก แแขแแแแแแก แแแแแฏแแแ: แแแแแแแแแ, แแแแแ แแก แกแฃแ แแแแแแก แแแแแแแแแ แกแแญแแ แ แแแ แแแแแ แแ แแแแ แแแแแงแแแแแ, แแ แกแฎแแ แแแแแแ.
แแแแกแแแแแก, แ แแ แฃแแแ แแแแแแแ แ แ แแแฎแแแแ แแฎแแ, แแ แแแแแแแแแ แแแแแฎแแแแ แจแแแแแ แแแแแ แแแแก:
แแแแแแแแขแแ แก แกแญแแ แแแแ .NET Core SDK 3 แแฃแจแแแแแกแแแแก, แแแแขแแ แแแแแแแแขแแ แแก แแแงแแแแแแแแ แกแแญแแ แแ Microsoft-แแก แกแแชแแแแแแก แแแแแขแแแ, แกแแแแแแแช แแแแแกแขแแแแ แแแฃแแ แแฅแแแแ แแแแแแแแขแแ แแกแแแแก แกแแญแแ แ แแแแแแแแแแฃแแแแแแ. Microsoft-แแก แกแแชแแแแแแก แแแแแขแแแ Linux-แแก แกแฎแแแแแกแฎแแ แแแกแขแ แแแฃแชแแแกแแแแก
PVS-Studio-แก แแแแแขแแก แแแแแฏแแ แแก แแแจแแแแแแ แแแกแแงแแแแแแแ, แแกแแแ แแแแญแแ แแแแแ PVS-Studio-แก แกแแชแแแแแแก แแแแแขแแแ. แกแฎแแแแแกแฎแแ แแแแแฌแแแแแแกแแแแก แกแแชแแแแแแก แแแแแขแแแ แฃแคแ แ แแแขแแแฃแ แแ แแ แแก แแฆแฌแแ แแแ
แแแแแแแแขแแ แแก แแฃแจแแแแแกแแแแก แกแแญแแ แแ แแแชแแแแแแก แแแกแแฆแแแ. แจแแแแซแแแแ แแแแฆแแ แกแแชแแแแ แแแชแแแแแ แแฅ
แจแแแแจแแแ. แแแฎแแแ, แแแแแแแแแกแฌแแแแ, แ แแ แแฆแฌแแ แแแ แแแแ แแชแแฃแแ แ แแแแแ (แจแแ แฌแงแแแก แแแแฎแแแแแแแก แแแแแแแ) แแแแแฎแแแก Enterprise แแแชแแแแแแก. แแแแขแแ, แแฃ แแกแฃแ แ แกแชแแแแ แแแฅแแแแแแแก แแก แ แแแแแ, แแ แแแแแแแฌแงแแแ โแจแแขแงแแแแแแแแแแกโ แแแแจแ แแแฃแแแแแ, แ แแ แแญแแ แแแแแ Enterprise แแแชแแแแแ.
แแฃ แจแแ แฌแงแแแก แแแแฎแแแแ แแแฎแแ, แแแจแแ แฉแแแ แแฎแแแแ แฃแแแ แแแแแแแแแแแแ แจแแชแแแแแ แคแแแแแแแก แกแแ, แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แแแแแแแแแแแ แงแแแแ แคแแแแก. แแแแแแแแก แจแแแแแ, แฉแแแ แฃแแแ แแแแแแแงแแแแแ แแฃแ แแแแแแ แฉแแแแแแแก แกแแญแแ แ แคแแ แแแขแจแ.
แแฎแแ, แแฃแจแแแแแก แแแแแ แแแแ แแฅแแแแก แแแแแฌแแ, แจแแแแซแแแแ แแแแแฎแแแแแ แกแแ แแแขแแก แแแฌแแ แแแ. แแแแกแแแแแก แแฅแแแ แฃแแแ แจแแชแแแแแ แคแแแแ .gitlab-ci.yml แแ, แแฃ แแก แแ แแ แกแแแแแก, แจแแฅแแแแแ แแแ. แแแก แจแแกแแฅแแแแแแ, แแฅแแแ แฃแแแ แแแแญแแ แแ แแฅแแแแ แแ แแแฅแขแแก แกแแฎแแแก -> แแแแงแแแแ CI/CD.
แแฎแแ แฉแแแ แแแแ แแแ แ แแแแฌแแ แแ แกแชแแแแ แ. แฏแแ แแแแฌแแ แแ แแแแ, แ แแแแแแช แแแแแแกแขแแแแ แแแก แแแแแแแแขแแ แก แแ แจแแแแงแแแแ แแแชแแแแแแก:
before_script:
- apt-get update && apt-get -y install wget gnupg
- apt-get -y install git
- wget https://packages.microsoft.com/config/debian/10/
packages-microsoft-prod.deb -O packages-microsoft-prod.deb
- dpkg -i packages-microsoft-prod.deb
- apt-get update
- apt-get install apt-transport-https
- apt-get update
- 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-dotnet
- pvs-studio-analyzer credentials $PVS_NAME $PVS_KEY
- dotnet restore "$CI_PROJECT_DIR"/Test/Test.sln
แแแแแแแแ แแแกแขแแแแชแแ แแ แแแแฅแขแแฃแ แแแ แฃแแแ แแแฎแแแก แงแแแแ แกแฎแแ แกแแ แแแขแแแแ, แฉแแแ แแแงแแแแแ แกแแแชแแแแฃแ แแขแแแแขแก แแแ แ_แกแแ แแแขแ. แแแแ แแแแแชแแ แชแแขแ แแแฎแกแแ แแก แคแ แแแแแแขแ.
แแแแแแแแขแแ แแก แแแงแแแแแแก แแแแแแแแแ:
- wget https://packages.microsoft.com/config/debian/10/
packages-microsoft-prod.deb -O packages-microsoft-prod.deb
- dpkg -i packages-microsoft-prod.deb
- apt-get update
- apt-get install apt-transport-https
- apt-get update
PVS-Studio แกแแชแแแแแแกแ แแ แแแแแแแแขแแ แแก แแแแแขแแแ:
- 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-dotnet
แแแชแแแแแแก แแแแฅแขแแฃแ แแแ:
- pvs-studio-analyzer credentials $PVS_NAME $PVS_KEY
$PVS_NAME - แแแแฎแแแ แแแแแก แกแแฎแแแ.
$PVS_KEY - แแ แแแฃแฅแขแแก แแแกแแฆแแแ.
แแ แแแฅแขแแก แแแแแแแแแแฃแแแแแก แแฆแแแแแ แกแแ $CI_PROJECT_DIR - แกแ แฃแแ แแแ แแ แแแฅแขแแก แแแ แแฅแขแแ แแแจแ:
- dotnet restore "$CI_PROJECT_DIR"/Path/To/Solution.sln
แกแฌแแ แ แแแแแแแแกแแแแก แแ แแแฅแขแ แฌแแ แแแขแแแแ แฃแแแ แแจแแแแแก แแ แแแกแ แแแแแแแแแแฃแแแแแแ แฃแแแ แแฆแแแแก (แแแแแแแแแ, แฃแแแ แฉแแแแแขแแแ แแแก แกแแญแแ แ NuGet แแแแแขแแแ).
แแฅแแแ แจแแแแซแแแแ แแแแงแแแแ แแแ แแแแก แชแแแแแแแ, แ แแแแแแแช แจแแแชแแแก แแแชแแแแแแก แแแคแแ แแแชแแแก แแแฌแแแแฃแแแแแ Setting, แแ แจแแแแแ - แฉแแ แแแ CI/CD.
แคแแแฏแแ แแจแ, แ แแแแแแช แแฎแกแแแแ, แแแแแแ แแแแแแแขแ แชแแแแแแแ, แแแแญแแ แแ แฆแแแแแก แแแ แฏแแแแ Expand แแ แแแแแแขแแ แชแแแแแแแ. แจแแแแแ แแกแ แฃแแแ แแแแแแงแฃแ แแแแแแก:
แแฎแแ แแฅแแแ แจแแแแซแแแแ แแแแแฎแแแแแ แแแแแแแแ. แแแ แแแแ, แแแแแ แแแแแแแขแแ แกแแ แแแขแ แกแ แฃแแ แแแแแแแแกแแแแก. แแ แแจแแกแแแ -t แแ แแจแแก แแแแแฌแงแแแขแแก แแแแก แแแแแแแแ แ -o แฉแแฌแแ แแ แคแแแแแก แแแ, แ แแแแแจแแช แฉแแแฌแแ แแแ แแแแแแแแก แจแแแแแแแ. แแแแ แฃแแแแแก แแแแแช แแแแแแขแแ แแกแแแก. แแ แจแแแแฎแแแแแจแ, แฉแแแ แแแแแขแแ แแกแแแฃแแ แแแ แ, แ แแ แแแแ แแชแแ แจแแฉแแ แแแก, แ แแแแกแแช แแแแ แฃแแแแแก แแแแ แจแแแชแแแก แแแคแแ แแแชแแแก แแแแก แจแแกแแฎแแ, แ แแ แแแคแ แแฎแแแแแแแ แแงแ แแแชแแแฃแแ แแแแแแแแก แแ แแก. แแก แคแ แแแแแแขแ แแกแ แแแแแแงแฃแ แแแ:
job:
script:
- exit_code=0
- pvs-studio-dotnet -t "$CI_PROJECT_DIR"/Test/Test.sln -o
PVS-Studio.json || exit_code=$?
- exit_code=$((($exit_code & 8)/8))
- if [[ $exit_code == 1 ]]; then exit 1; else exit 0; fi
แแแแ แฃแแแแแก แแแแแแ แแฃแจแแแแก แแแขแ แแแฆแแแก แแ แแแชแแแแ. แแแแแแแแแ, แแฃ แแแแแแแแก แจแแแแแแ แแแแชแ แแแคแ แแฎแแแแแแแ, แแแจแแ แแแแ แฃแแแแแก แแแแ แแฅแแแแ 8-แแก แขแแแ. แแฃ แแแชแแแแแแก แแแแ แแแแแฌแฃแ แแแ แแ แ แแแแจแ, แแแจแแ แแแแ แฃแแแแแก แแแแ แแฅแแแแ 4-แแก แขแแแ. แแฃ แแแแแแแแก แแ แแก แแแแแแแแแแ แจแแชแแแแแแ, แแ แแแชแแแแแ แแฌแฃแ แแแ แแ แ แแแแจแ, แแแแ แแแแ แฃแแแแแ, แแแแฌแแ แแแ แแ แแแ แแแแจแแแแแแแ: แแแแแแขแแ แ แแชแฎแแแแ แแ แแแแฆแแ แกแแแแแแ แแแแ แฃแแแแแก แแแแ - 8+4=12. แแแ แแแแ, แจแแกแแแแแแกแ แแแขแแแแก แจแแแแฌแแแแแ, แแแแแแแแก แแ แแก แจแแกแแซแแแแแแแ แแแคแแ แแแชแแแก แแแฆแแแ แกแฎแแแแแกแฎแแ แแแแแแแ แแแแแก แจแแกแแฎแแ. แแแแ แฃแแแแแก แแแแแแ แฃแคแ แ แแแขแแแฃแ แแ แแ แแก แแฆแฌแแ แแแ แแแแฃแแแแขแแก แแแแงแแคแแแแแแจแ "pvs-studio-dotnet (Linux / macOS) แแแแ แฃแแแแแก แแแแแแ"
แแ แจแแแแฎแแแแแจแ, แฉแแแ แแแแแแขแแ แแกแแแก แงแแแแ แแแแ แฃแแแแแก แแแแ, แกแแแแช 8 แฉแแแก.
- exit_code=$((($exit_code & 8)/8))
แฉแแแ แแแแแฆแแแ 1-แก, แ แแแแกแแช แแแแ แฃแแแแแก แแแแ แจแแแชแแแก แฉแแแแแแแก แแแแแขแแ แแกแแแฃแแ แแแแ แแก แแแขแก, แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แแแแแฆแแแ 0-แก.
แแ แแ แแแแแแขแแ แจแแ แฌแงแแแก แแแแฎแแแแแก แแแแแแแ. แกแแแแ แแแแก แแแแแแแแแแ, แแแแแ แแแแแแแแแแ แแแแแแ แกแชแแแแ แแกแแแแก. แฉแแแ แแแญแแ แแแแ แแแกแ แจแแกแ แฃแแแแ แแฎแแแแ แแแจแแ, แ แแแแกแแช แแแฎแแแแ แจแแ แฌแงแแแก แแแแฎแแแแ. แแก แแกแ แแแแแแงแฃแ แแแ:
merge:
script:
only:
- merge_requests
แแแแแแแแแ แแแแแ แกแชแแแแ แแ. แแ แแแแแแฅแ แคแแฅแขแแก แฌแแแแจแ, แ แแ แแแ แขแฃแแแฃแ แแ แแแแฅแแแแ แแ แแคแแ แ แแชแแก แฌแแ แแแจแแแ/แแกแขแแขแ. แแแแแ แแแแแฎแแแ แแ แแแก แชแแขแแแ:
- git fetch origin
แแฎแแ แฉแแแ แแแฆแแแ แแแแกแฎแแแแแแแก แขแแขแแแก แจแแ แแก แแ แแแแแฎแแแ แจแแแแแก txt แคแแแแ:
- git diff --name-only origin/master $CI_COMMIT_SHA > pvs-fl.txt
ะะดะต $CI_COMMIT_SHA โ แแแแ แแแจแแแแแก แฐแแจแ.
แจแแแแแแ, แฉแแแ แแแฌแงแแแ แคแแแแแแแก แกแแแก แแแแแแแก แแ แแจแแก แแแแแงแแแแแแ -f. แแแกแจแ แแแแแแแขแแแ แแแ แ แแแฆแแแฃแ .txt แคแแแแก. แแกแ, แกแ แฃแแ แแแแแแแแก แแแแแแแแแ, แฉแแแ แแฃแงแฃแ แแแ แแแแ แฃแแแแแก แแแแแแก:
- exit_code=0
- pvs-studio-dotnet -t "$CI_PROJECT_DIR"/Test/Test.sln -f
pvs-fl.txt -o PVS-Studio.json || exit_code=$?
- exit_code=$((($exit_code & 8)/8))
- if [[ $exit_code == 1 ]]; then exit 1; else exit 0; fi
แแแแ แแแแแแแแก แแแแฎแแแแแก แจแแกแแแแฌแแแแแแ แกแ แฃแแ แกแแ แแแขแ แแกแ แแแแแแงแฃแ แแแ:
merge:
script:
- git fetch origin
- git diff --name-only origin/master $CI_COMMIT_SHA > pvs-fl.txt
- exit_code=0
- pvs-studio-dotnet -t "$CI_PROJECT_DIR"/Test/Test.sln -f
pvs-fl.txt -o PVS-Studio.json || exit_code=$?
- exit_code=$((($exit_code & 8)/8))
- if [[ $exit_code == 1 ]]; then exit 1; else exit 0; fi
only:
- merge_requests
แ แฉแแแ แแฎแแแแ แแฃแ แแแแแก แแแแแแ แขแแชแแแก แแแแแขแแแ แงแแแแ แกแแ แแแขแแก แแแแฃแจแแแแแแก แจแแแแแ. แฉแแแ แแแงแแแแแ แแขแแแแขแก แจแแแแแ_แกแแ แแแขแ แแ แกแแกแแ แแแแแ แแแแ-แแแแแแ แขแแ แ:
after_script:
- plog-converter -t html -o eLog ./PVS-Studio.json
แแแแฃแแแแฃแ แ
แกแฎแแแแ แจแแ แแก, แแฃ แแกแฃแ แ แแแฎแแ แฎแแแฃแแแ แแแฃแจแแแ .json แแแแแ แแจแแแแแ แแแแแแแแ แแแแ IDE-แแแ, แแแจแแ แแ แแแแแแแแแ แฉแแแแก
แแแฎแแ แฎแแแฃแแแแแกแแแแก, แแฅ แแ แแก .gitlab-ci.yml แกแ แฃแแแ:
image: debian
before_script:
- apt-get update && apt-get -y install wget gnupg
- apt-get -y install git
- wget https://packages.microsoft.com/config/debian/10/
packages-microsoft-prod.deb -O packages-microsoft-prod.deb
- dpkg -i packages-microsoft-prod.deb
- apt-get update
- apt-get install apt-transport-https
- apt-get update
- 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-dotnet
- pvs-studio-analyzer credentials $PVS_NAME $PVS_KEY
- dotnet restore "$CI_PROJECT_DIR"/Test/Test.sln
merge:
script:
- git fetch origin
- git diff --name-only origin/master $CI_COMMIT_SHA > pvs-fl.txt
- exit_code=0
- pvs-studio-dotnet -t "$CI_PROJECT_DIR"/Test/Test.sln -f
pvs-fl.txt -o PVS-Studio.json || exit_code=$?
- exit_code=$((($exit_code & 8)/8))
- if [[ $exit_code == 1 ]]; then exit 1; else exit 0; fi
only:
- merge_requests
job:
script:
- exit_code=0
- pvs-studio-dotnet -t "$CI_PROJECT_DIR"/Test/Test.sln -o
PVS-Studio.json || exit_code=$?
- exit_code=$((($exit_code & 8)/8))
- if [[ $exit_code == 1 ]]; then exit 1; else exit 0; fi
after_script:
- plog-converter -t html -o eLog ./PVS-Studio.json
แแแก แจแแแแแ แ แแช แแแแแแขแแแ แงแแแแแคแแ แก แคแแแแก, แแแแฌแแแแฃแแแ แจแแแกแ แฃแแแ แชแแแแแแแแแ. แแแแกแแแแแก, แ แแ แแแฎแแ, แ แแ แงแแแแแคแแ แ แกแฌแแ แแ, แแแแแแแ CI / CD -> แแแแกแแแแแแแ -> แกแแ แแแแ. แแแแฎแกแแแแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแก แคแแแฏแแ แ, แ แแแแแก แแแแแก แฃแแแ แแงแแก แจแแแแแแ:
แแแแแแฎแ แแแแแ แฌแแ แแแขแแแแก แแแแฆแฌแแ - แฌแแ แแแขแแแแแ, แงแแแแแคแแ แ แแแ แแแแแ. แแฎแแ แแฅแแแ แจแแแแซแแแแ แจแแแแแฌแแแ แแก, แ แแช แแแแแแแแ.
แกแแแฃแจแแ แแแแแแแแแแ
แกแแแฃแจแแแก แแแแแแแแแกแแแแก, แจแแแฅแแแแ แแแ แขแแแ แแ แแแฅแขแ (แจแ แกแแแแแแกแขแ แ) แ แแแแแแช แจแแแชแแแก แ แแแแแแแแ แคแแแแก. แแแแก แจแแแแแ, แกแฎแแ แคแแแแแแจแ แฉแแแ แจแแแชแแแแ แแฎแแแแ แแ แ แคแแแแก แแ แจแแแแชแแแแแ แจแแ แฌแงแแแก แแแแฎแแแแแก.
แแแแแแฎแแแแ แแ แ แจแแแแฎแแแแ: แ แแแแกแแช แจแแชแแแแแ แคแแแแ แจแแแชแแแก แจแแชแแแแแก แแ แ แแแแก แแ แ. แแแ แแแแ, แแแแแแแแ แจแแชแแแแแ.
แแแฅแแแ, แแ แแก แคแแแแ แกแแแแแแกแขแ แ แคแแแแแแจแ แแ แแแ แแแ.cs, แ แแแแแแช แแ แจแแแชแแแก แจแแชแแแแแแก, แแแแ แแ แกแฎแแ แคแแแแแแจแ แแแแแแแแแ แแ แแแแแแขแ แแชแแแ แ แแแแ แแ แกแฃแ แก แจแแ แฌแงแแแก แแแแฎแแแแ. แ แแแแ แ แจแแชแแแแ แแแฃแจแแ, แแ แช แแกแ แแแแจแแแแแแแแแแ, แแแแแแ แแ แแก แแ แกแแแแแก. แแแแแแแแแ, แแแแ แแขแแ แก แแแแแแฌแงแแ แแแแแงแแ แแ (แแแแฎ,
void MyAwesomeMethod(String name)
{
if (name == null)
new ArgumentNullException(....);
// do something
....
}
แแแแแ แจแแแฎแแแแ แจแแชแแแแแ แแแแแแแแแก แแแแแแแแก แจแแแแแก. แแกแแแ แแแแกแแแแก, แ แแ แแแแ แฌแแฃแแแ, แ แแ แแฎแแแแ แแ แแ แคแแแแ แแงแ แแแแแแแแแแแฃแแ, แแ แแแแแแแขแ แแ แแจแ -r pvs-studio-dotnet แแแจแแแแแก แฎแแแแ:
แฉแแแ แแฎแแแแแ, แ แแ แแแแแแแแขแแ แแ แแฆแแแแฉแแแ แจแแชแแแแ แแ แแ แแแฃแจแแ แขแแขแแแแก แจแแ แฌแงแแ.
แแแแแ แจแแแแแแฌแแแ แแแแแแแแ แจแแชแแแแแก แแแ แแจแ. แแแแแก แแแกแฌแแ แแแ:
void MyAwesomeMethod(String name)
{
if (name == null)
throw new ArgumentNullException(....);
// do something
....
}
แแแแ แแแแแแแแก แแแแฎแแแแแก แแแแแแแแก แจแแแแแแแ:
แ แแแแ แช แแฎแแแแแ, แจแแชแแแแแแ แแ แแฅแแ แแแแแแแ แแ แแแแแแแแแก แจแแกแ แฃแแแแ แฌแแ แแแขแแแแ แแแกแ แฃแแแ, แ แแกแ แจแแแแฌแแแแแช แแแแแแแแ.
แแแกแแแแ
แชแฃแแ แแแแแก แแแแฆแแแ แขแแขแแแแก แจแแ แฌแงแแแแแ แซแแแแแ แแแกแแฎแแ แฎแแแแแ แแ แกแแกแแแแแแแแ. แแกแ แ แแ, แแฃ แแงแแแแแ CI/CD-แก, แกแชแแแแ แกแขแแขแแแฃแ แ แแแแแแแแขแแ แแก แฉแแกแแ แจแแกแแแแฌแแแแแแ. แฃแคแ แ แแแขแแช, แแก แแแแแแแ แกแแแแแแ แแแ แขแแแแ.
แแแแ แแแแแแแ แงแฃแ แแแฆแแแแกแแแแก.
แแฃ แแกแฃแ แ แแแฃแแแแ แแ แแก แกแขแแขแแ แแแแแแกแฃแ แแแแแแ แแฃแแแขแแ แแแก, แแแฎแแแ, แแแแแแงแแแแ แแแ แแแแแแก แแแฃแแ: แแแแแแแ แแแ แแแแแ.
แฌแงแแ แ: www.habr.com