Π Π΅Π»ΠΈΠ· PVS-Studio 7.04 ΡΠΎΠ²ΠΏΠ°Π» c ΡΠ΅Π»ΠΈΠ·ΠΎΠΌ ΠΏΠ»Π°Π³ΠΈΠ½Π° Warnings Next Generation 6.0.0 Π΄Π»Ρ Jenkins. ΠΠ°ΠΊ ΡΠ°Π· Π² ΡΡΠΎΠΌ ΡΠ΅Π»ΠΈΠ·Π΅ Warnings NG Plugin Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° PVS-Studio. ΠΡΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΡ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π° Π² Jenkins. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ PVS-Studio, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Warning Next Generation Plugin Π² Jenkins
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Jenkins Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ
ΠΠ°Π»Π΅Π΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ Β«Manage PluginsΒ», ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π·Π°ΠΊΠ»Π°Π΄ΠΊΡ Β«AvailableΒ»:
Π ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ Π² ΠΏΠΎΠ»Π΅ ΡΠΈΠ»ΡΡΡΠ° Π²Π²ΠΎΠ΄ΠΈΠΌ Β«Warnings Next GenerationΒ»:
ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ Π² ΡΠΏΠΈΡΠΊΠ΅, ΡΡΠ°Π²ΠΈΠΌ ΡΠ»Π΅Π²Π° Π³Π°Π»ΠΎΡΠΊΡ ΠΈ ΠΆΠΌΠ΅ΠΌ Β«Install without restartΒ»:
ΠΡΠΊΡΠΎΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². ΠΠ° Π½Π΅ΠΉ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π² Jenkins
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π·Π°Π΄Π°ΡΡ ΡΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ. ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Jenkins Π²ΡΠ±Π΅ΡΠ΅ΠΌ Β«New ItemΒ». ΠΠ²Π΅Π΄Π΅ΠΌ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, WTM) ΠΈ Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΠΏΡΠ½ΠΊΡ Β«Freestyle projectΒ».
ΠΠ°ΠΆΠΌΠ΅ΠΌ Β«ΠΠΊΒ», ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠ½ΠΈΠ·Ρ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΠΏΡΠ½ΠΊΡΠ΅ Β«Post-build ActionsΒ» ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ Β«Add post-build actionΒ». Π ΡΠΏΠΈΡΠΊΠ΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Β«Record compiler warnings and static analysis resultsΒ»:
Π Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠΎΠ»Ρ Β«ToolΒ» Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Β«PVS-StudioΒ», ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΆΠΌΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ. ΠΠ° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΆΠΌΠ΅ΠΌ Β«Build NowΒ», ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π»Π°ΡΡ ΠΏΠ°ΠΏΠΊΠ° Π² workspace Π² Jenkins Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ:
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π² ΡΡΠ΅Π½Π΄Π°Ρ
Github ΠΌΠ½Π΅ ΠΏΠΎΠΏΠ°Π»ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ dotnetcore/WTM. Π― Π·Π°Π³ΡΡΠ·ΠΈΠ» Π΅Π³ΠΎ Ρ Github, Π·Π°ΠΊΠΈΠ½ΡΠ» Π² ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ WTM Π² Jenkins ΠΈ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π» Π² Visual Studio ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° PVS-Studio. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ PVS-Studio Π² Visual Studio ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅:
ΠΠ°ΠΏΡΡΡΠΈΠ» ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Jenkins ΠΏΠ°ΡΡ ΡΠ°Π·. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΏΡΠ°Π²Π° Π²Π²Π΅ΡΡ Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ WTM Π² Jenkins ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π³ΡΠ°ΡΠΈΠΊ, Π° ΡΠ»Π΅Π²Π° ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ PVS-Studio Warnings:
ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° Π³ΡΠ°ΡΠΈΠΊ ΠΈΠ»ΠΈ ΡΡΠΎΡ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΎΡΡΠ΅ΡΠ° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° PVS-Studio ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Warnings Next Generation:
Π‘ΡΡΠ°Π½ΠΈΡΠ° Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ
ΠΠ° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ²Π΅ΡΡ Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π΄Π²Π΅ ΠΊΡΡΠ³ΠΎΠ²ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ. Π‘ΠΏΡΠ°Π²Π° ΠΎΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ ΠΎΠΊΠ½ΠΎ Π³ΡΠ°ΡΠΈΠΊΠΎΠ². ΠΠ½ΠΈΠ·Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΠ»Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°.
ΠΠ° Π»Π΅Π²ΠΎΠΉ ΠΊΡΡΠ³ΠΎΠ²ΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π½Π° ΠΏΡΠ°Π²ΠΎΠΉ β ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ , Π½Π΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ. ΠΠΌΠ΅Π΅ΡΡΡ ΡΡΠΈ Π³ΡΠ°ΡΠΈΠΊΠ°. ΠΡΠ±ΠΎΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΡΠ΅Π»ΠΎΠΊ ΡΠ»Π΅Π²Π° ΠΈ ΡΠΏΡΠ°Π²Π°. ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° Π³ΡΠ°ΡΠΈΠΊΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΡ ΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠΎ ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, Π° ΡΡΠ΅ΡΠΈΠΉ β ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠ΅ΠΊ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ Π΄Π½ΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠΆΠ°ΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π³ΡΠ°ΡΠΈΠΊΠ°, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ:
ΠΠΎΠΆΠ½ΠΎ ΡΠΊΡΡΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΡΠΈΠΊ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² Π»Π΅Π³Π΅Π½Π΄Π΅ Π³ΡΠ°ΡΠΈΠΊΠ°:
ΠΡΠ°ΡΠΈΠΊ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠΊΡΡΡΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Β«NormalΒ»:
ΠΠ½ΠΈΠ·Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΡΠ΅ΡΠ° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°. ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΡΠ΅ΠΊΡΠΎΡ ΠΊΡΡΠ³ΠΎΠ²ΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ:
Π ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ . Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎ namespace, ΡΠ°ΠΉΠ»Ρ, ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (ΠΈΠΌΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ). Π ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π½Π° ΠΎΠ΄Π½Ρ ΡΡΡΠ°Π½ΠΈΡΡ (10, 25, 50, 100):
ΠΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΡΡΠΎΠΊΠ΅, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² ΠΏΠΎΠ»Π΅ Β«SearchΒ». ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠ»ΠΎΠ²Ρ Β«BaseΒ»:
ΠΠ° Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«IssuesΒ» ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΏΠ»ΡΡΠΈΠΊ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ:
Π ΠΊΡΠ°ΡΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠ°ΠΉΡ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ.
ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠ»Π±ΡΠ°Ρ Β«PackageΒ», Β«CategoryΒ», Β«TypeΒ», Β«SeverityΒ» ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ:
Π ΡΡΠΎΠ»Π±ΡΠ΅ Β«AgeΒ» ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ±ΠΎΡΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ»ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΠΎΠ»Π±ΡΠ΅ Β«AgeΒ» Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° ΡΠ±ΠΎΡΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΠΎΠ»Π±ΡΠ΅ Β«FileΒ» Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ°ΠΉΠ»Π° Π½Π° ΡΡΡΠΎΠΊΠ΅ Ρ ΠΊΠΎΠ΄ΠΎΠΌ, Π²ΡΠ·Π²Π°Π²ΡΠΈΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈΠ»ΠΈ Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ°, ΠΎΡΠΊΡΡΡΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ°ΠΉΠ»Π° ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Warnings Next Generation ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
Π² Jenkins. ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° PVS-Studio ΡΡΠΈΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΠΌ, ΠΊΡΠΎ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ PVS-Studio, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ·Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Jenkins. Π Π΅ΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π²Π°Ρ Π²ΡΠ±ΠΎΡ ΠΏΠ°Π΄ΡΡ Π½Π° PVS-Studio, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΠ΅Π½Ρ ΡΠ°Π΄Ρ. ΠΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ
ΠΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ΠΉ Ρ Π°Π½Π³Π»ΠΎΡΠ·ΡΡΠ½ΠΎΠΉ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠ΅ΠΉ, ΡΠΎ ΠΏΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄: Valery Komarov.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com