GNU/Linux >> Znalost Linux >  >> Linux

Nastavení kontinuální integrace s GitLab, Jenkins a SonarQube

Tento tutoriál je o nepřetržité integraci mezi GitLab, Jenkins a SonarQube. Na konci tohoto tutoriálu si budete moci prohlížet zprávy o kvalitě kódů úložiště GitLab na SonarQube pomocí Jenkinse jako kontinuálního integrátora a sonarového skeneru jako analyzátoru kódu.

Nastavení nepřetržité integrace s GitLab, Jenkins a SonarQube

Než se podíváme na to, jak nastavit kontinuální integraci (CI), podívejme se nejprve na zapojené komponenty a jakou roli hrají v našem nastavení zde.

GitLab

GitLab je platforma pro hostování kódu s otevřeným zdrojovým kódem pro spolupráci a správu verzí. Lze jej nainstalovat na vaše servery a hostovat vaše kódy soukromě. GitLab poskytuje funkci správy zdrojového kódu (SCM) podobnou GitHubu a BitBucketu.

Jenkins

Jenkins je open-source server pro nepřetržitou integraci. Jedná se o automatizační nástroj, který lze použít k testování a kompilaci vašich kódů a jejich nasazení do produkce, pokud se sestavení podaří.

Jenkins se zde používá k vytažení kódů z GitLabu (v reálném čase, když je kód vložen nebo sloučen), sestavení kódů projektu a odeslání výsledku do SonarQube pro vizuální interpretaci.

SonarQube

SonarQube je open-source server průběžné kontroly. Je to nástroj používaný jako brána kvality pro kontrolu kódu. Poskytuje automatické zprávy o analýze kódů, detekuje chyby, zranitelnosti zabezpečení, duplicitní kódy, komentáře, pachy kódu a mnoho dalších pro různé programovací jazyky.

Předpoklady

Tento tutoriál předpokládá, že GitLab, Jenkins a SonarQube již byly na vašem systému Linux nainstalovány. Instalace těchto nástrojů zde není naším cílem.

Nyní, když znáte příslušné nástroje a jejich role, pojďme se podívat, jak nastavit naši nepřetržitou integraci

Krok 1. Konfigurace na Sonarqube

Požadujeme ověřovací token serveru ze SonarQube, který později předáme Jenkinsovi. Tento token umožňuje přístup k Jenkinsovi, aby umožnil Jenkinsovi sestavení na SonarQube pro analýzu kódu.

  • Přejděte na Můj účet> Zabezpečení
  • Na stránce Tokeny blok, zadejte libovolný text pro vygenerování tokenu.
  • Ponechte si kopii tokenu

Zde je recenze SonarQube generujícího uživatelský token:

Nyní vytvoříme projekt, kde budou publikovány všechny zprávy o analýze kódu.

  • Přejděte na Administrace> Projekty> Správa
  • Klikněte na Vytvořit projekt
  • Vytvořte projekt pomocí svého Project_name a Project_key. Zkopírujte název a klíč projektu. Tyto přihlašovací údaje předáme později v konfiguraci Jenkins.

Náhled vytváření projektu:

Krok 2. Konfigurace na GitLab

Potřebujeme také přístupové tokeny uživatele GitLab, které později předáme v Jenkins. To se používá k ověření adresy URL úložiště uživatele GitLab, odkud Jenkins stahuje kódy.

  • Přejděte na Uživatelská nastavení nabídka Nastavení formuláře.
  • Přejděte na Přístupové tokeny
  • Vytvořte osobní přístupový token přidáním libovolného jedinečného jména (Jméno ) a datum vypršení platnosti tokenu (Platnost vyprší v ). Nastavte také Rozsahy k api- Plný přístup.

Náhled generování přístupových tokenů uživatele:

Krok 3. Konfigurace u Jenkinse

Musíme nakonfigurovat GitLab a SonarQube na webovém panelu Jenkins. K tomu potřebujeme nainstalovat některé potřebné pluginy.

  • Přihlaste se do Jenkins
  • Přejděte na Správa Jenkinse> Spravovat pluginy
  • Na stránce Dostupné kartu, vyhledejte GitLab a SonarQube a nainstalujte následující pluginy:
  • Plugin GitLab Hook
  • Plugin GitLab
  • Git
  • Skener SonarQube pro Jenkinse

Požadujeme Skener SonarQube k instalaci na “Jenkins server”, který ve skutečnosti zahájí analýzu kódu a publikuje zprávy pro projekt na SonarQube.

Chcete-li nainstalovat SonarQube Scanner, můžete použít následující příkazy:

$ wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip
$ unzip sonar-scanner-cli-3.3.0.1492-linux.zip 
$ cd sonar-scanner-3.3.0.1492-linux $ pwd 

Zkopírujte umístění. Budeme muset přidat toto umístění (jako domovskou složku instalace skeneru SonarQube) v konfiguraci Jenkins.

Nakonfigurujeme také soubor vlastností sonar-scanner na přidání serveru SonarQube:

$ cd conf 
$ vi sonar-scanner.properties

Odkomentujte „sonar.host.url“ a přidejte adresu URL serveru SonarQube

Nyní nakonfigurujeme GitLab a SonarQube v Jenkins.

  • Přejděte na Správa Jenkinse> Konfigurovat systém
  • Na serverech SonarQube zadejte adresu URL serveru SonarQube a token ověření serveru vygenerované dříve na SonarQube.

Náhled přidání SonarQube na Jenkins:

Nyní přejděte na kartu GitLab a přidejte adresu URL svého serveru GitLab na Adresa URL hostitele GitLab

Na stránce Přihlašovací údaje , potřebujeme token GitLab API pro přístup do GitLabu. Klikněte na Přidat a vyberte Jenkins: Poskytovatel pověření Jenkins

U Kind , vyberte GitLab API Token z rozevíracího seznamu. Zadejte svůj API Token vygenerovaný dříve na GitLab. Přidejte token s jedinečným ID.

Také se ujistěte, že máte správné Jenkinsovo umístění na Jenkinsově místě kartu.

Po úspěšném přidání GitLab a SonarQube musíme přidat také konfigurace SonarQube Scanner.

  • Přejděte na Správa Jenkinse> Globální konfigurace nástroje
  • Na Skener SonarQube klikněte na Instalace skeneru SonarQube
  • Zrušte zaškrtnutí možnosti Instalovat automaticky a přidejte domovskou složku instalace SonarQube.

Krok 4:Přidání projektu do Jenkins pro průběžnou integraci a průběžnou kontrolu

Po dokončení všech konfigurací nyní vytvoříme projekt na Jenkins.

Přejděte na Jenkins Dashboard -> Nová položka> Vyberte Projekt Freestyle . Vytvořte projekt s jedinečným názvem projektu

Na panelu Jenkins Dashboard vyberte svůj projekt a klikněte na Konfigurovat .

Přejděte na Obecné vyberte z rozevíracího seznamu připojení GitLab. Uvidíte název připojení GitLab, který jsme přidali dříve, v Manage Jenkins> Konfigurovat systém .

Přejděte na Správa zdrojového kódu vyberte Git . Přidejte http URL svého projektu GitLab (používá stejnou syntaxi jako příkaz git clone). Adresu URL můžete získat na své stránce projektu GitLab.

Zadejte také ověření pro adresu URL GitLab.

  • Na stránce Credentials , klikněte na Přidat a vyberte Jenkins: Poskytovatel pověření Jenkins
  • v Kind , vyberte Uživatelské jméno s heslem z rozbalovacího seznamu.
  • Zadejte své přihlašovací uživatelské jméno a heslo GitLab.
  • Přidejte klíč s jedinečným ID.

Musíte také určit větve, které chcete postavit. Pokud ponecháte prázdné, všechny větve budou prozkoumány z hlediska změn a sestaveny.

Přidání větví lze provést takto:*/

Nyní přejděte na Sestavení spouštěčů , zaškrtněte políčko URL webhooku GitLab.

  • Zkopírujte adresu URL webhooku GitLab. Musíme nastavit webhook znovu na GitLabu pomocí této adresy URL.
  • Klikněte na Upřesnit
  • Generovat jako Tajný token . Zkopírujte tento token, později se použije k nastavení webhooku v GitLabu.

Náhled vytváření spouštěčů sestavení

Nakonec přejděte na Sestavení na kartě Spustit skener SonarQube , přidejte konfigurační parametry SonarQube, které používá skener SonarQube. Může zahrnovat SonarQube ProjectName, ProjectKey, umístění instalace SonarQube Scanner atd.

Po dokončení všech konfigurací musíme naposledy nastavit webhook v GitLabu.

Webhook je metoda, jak posílat data do jiných aplikací v reálném čase.
Webhook v GitLab používáme k automatizaci doručování kódů GitLab během událostí push nebo událostí sloučení, jak je uvedeno.

  • Přihlaste se ke svému účtu Gilab.
  • přejděte na Vaše projekty v Projektu menu.
  • Vyberte svůj projekt
  • přejděte do Nastavení> Integrace
  • Přidejte adresu URL webhooku a tajný token, které jsme zkopírovali z karty Jenkins Build Triggers.
  • Vyberte požadované spouštěče a zrušte zaškrtnutí políčka Ověření SSL .
  • Vytvořit webhook

Náhled vytváření webhooku GitLab:

Otestujte webhook pomocí událostí Push .

Po úspěšném testu se Project začne stavět v Jenkins. Přihlaste se k Jenkinsovi a ověřte sestavení projektu. Kódy GitLab můžete vidět na Jenkins Workspaces .

Také můžete vidět zprávy o kódu projektu na SonarQube.

A je to! Úspěšně jsme integrovali GitLab, Jenkins a SonarQube. Nyní pro každou událost push nebo událost sloučení do našeho úložiště GitLab Jenkins sestaví projekt a ukáže kvalitu kódu na SonarQube.

Doufám, že pro vás bylo snadné sledovat tento tutoriál. Pokud máte nějaké dotazy nebo návrhy, dejte mi prosím vědět.

Autor :Rishi Raj Gautam je milovník Linuxu a aktivista open source.


Linux
  1. Jak integrovat Jenkinse s CloudFormation a Step Functions

  2. Trim s Lvm a Dm-crypt?

  3. Nastavení subdomény s Apache na Linuxu

  1. Jak nastavit Gitlab pro nepřetržitou integraci a nasazení na CentOS

  2. Bat – Kočičí klon se zvýrazněním syntaxe a integrací Git

  3. Nainstalujte a spusťte Jenkins pomocí Systemd a Docker

  1. Instalace a konfigurace Jenkins v Linuxu

  2. Nastavení serveru Obfuscation s Obfsproxy a Viscosity

  3. Nastavení serveru OpenVPN s CentOS a viskozitou