From ab722373e3d763c500c5fba9e37dd38904f2e395 Mon Sep 17 00:00:00 2001
From: <>
Date: Fri, 28 Apr 2023 12:39:04 +0000
Subject: [PATCH] Deployed 2af39c7 with MkDocs version: 1.1.2
---
prerequisites/index.html | 2 +-
search/search_index.json | 2 +-
sitemap.xml.gz | Bin 198 -> 198 bytes
3 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/prerequisites/index.html b/prerequisites/index.html
index 7aa8985e..f79a959c 100644
--- a/prerequisites/index.html
+++ b/prerequisites/index.html
@@ -487,7 +487,7 @@
Software requirements
Install docker (Ubuntu 16.04, Ubuntu 18.04, Ubuntu 20.04, Amazon Linux 2, Redhat/Cent OS)
-Install docker-composer 1.22.2
+Install docker-composer 1.29.2
Install git 2.20.0+
diff --git a/search/search_index.json b/search/search_index.json
index 915c58d3..109dd995 100644
--- a/search/search_index.json
+++ b/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Zebrunner (Community Edition) Overview Zebrunner (Community Edition) is a Continuous configuration automation framework for continuous testing (running various kinds of tests on the code to gain successive levels of confidence in the quality of the code), and (optionally) continuous deployment. It is built in accordance with Infrastructure as Code processes. It is integrated by default with carina-core open source TestNG framework and uses Jenkins as a CI Tool. Zebrunner is built on top of popular docker solutions, it includes Postgres database, Zebrunner Testing Platform (Community Edition), Jenkins with agent node(s), Selenium Hub(s), Zebrunner Device Farm , SonarQube , etc. In additions it is easily integrated with 3rd party devices/browsers cloud providers like: Zebrunner Selenium Grid , Browserstack , SauceLabs etc All components are deployed under NGiNX WebServer which can be configured in a fully secured environment Zebrunner and its subcomponents all together can be used as an effective Test Automation infrastructure for test automation development, execution, management, etc. Purpose Welcome to the Zebrunner Community Edition Tutorial. This manual is designed to help you install, configure and maintain your system, and to optimize and extend or re-configure it to meet the changing needs of your business. In short, the aim of this manual is to explain the tasks involved in administering Zebrunner (Community Edition) Audience This guide is written for all levels of administrators, from those responsible for deployment and setup, to those who oversee the entire system and its usage. In addition, some information from User Guide is intended for TestOps engineers who want to build effective Test Automation process and follow best practices. Assumed Knowledge Installation and Configuration guides are for administrators who install, deploy and Manage Zebrunner products. It assumes the following knowledge: Docker platform and docker compose orchestration tool skills UNIX/Linux administration skills Security and server administration skills Understanding of your organization's security infrastructure, including authentication providers such as LDAP, and use of SSL Understanding of your organization's network environment and port usage User guide is for TestOps engineers who develop test automation scenarios, execute and maintain them etc. It assumes the following knowledge: Preferable Test Automation language and framework. Java/ Maven/ TestNG / Carina experience is a plus Understanding of the basics of Jenkins pipeline and JobDSL License Code - Apache Software License v2.0 Documentation and Site - Creative Commons Attribution 4.0 International License","title":"Overview"},{"location":"#zebrunner-community-edition","text":"","title":"Zebrunner (Community Edition)"},{"location":"#overview","text":"Zebrunner (Community Edition) is a Continuous configuration automation framework for continuous testing (running various kinds of tests on the code to gain successive levels of confidence in the quality of the code), and (optionally) continuous deployment. It is built in accordance with Infrastructure as Code processes. It is integrated by default with carina-core open source TestNG framework and uses Jenkins as a CI Tool. Zebrunner is built on top of popular docker solutions, it includes Postgres database, Zebrunner Testing Platform (Community Edition), Jenkins with agent node(s), Selenium Hub(s), Zebrunner Device Farm , SonarQube , etc. In additions it is easily integrated with 3rd party devices/browsers cloud providers like: Zebrunner Selenium Grid , Browserstack , SauceLabs etc All components are deployed under NGiNX WebServer which can be configured in a fully secured environment Zebrunner and its subcomponents all together can be used as an effective Test Automation infrastructure for test automation development, execution, management, etc.","title":"Overview"},{"location":"#purpose","text":"Welcome to the Zebrunner Community Edition Tutorial. This manual is designed to help you install, configure and maintain your system, and to optimize and extend or re-configure it to meet the changing needs of your business. In short, the aim of this manual is to explain the tasks involved in administering Zebrunner (Community Edition)","title":"Purpose"},{"location":"#audience","text":"This guide is written for all levels of administrators, from those responsible for deployment and setup, to those who oversee the entire system and its usage. In addition, some information from User Guide is intended for TestOps engineers who want to build effective Test Automation process and follow best practices.","title":"Audience"},{"location":"#assumed-knowledge","text":"Installation and Configuration guides are for administrators who install, deploy and Manage Zebrunner products. It assumes the following knowledge: Docker platform and docker compose orchestration tool skills UNIX/Linux administration skills Security and server administration skills Understanding of your organization's security infrastructure, including authentication providers such as LDAP, and use of SSL Understanding of your organization's network environment and port usage User guide is for TestOps engineers who develop test automation scenarios, execute and maintain them etc. It assumes the following knowledge: Preferable Test Automation language and framework. Java/ Maven/ TestNG / Carina experience is a plus Understanding of the basics of Jenkins pipeline and JobDSL","title":"Assumed Knowledge"},{"location":"#license","text":"Code - Apache Software License v2.0 Documentation and Site - Creative Commons Attribution 4.0 International License","title":"License"},{"location":"config-guide/","text":"Configuration Guide Components details Use your host domain address or IP instead of hostname . Components URL Zebrunner Reporting http://hostname Jenkins http://hostname/jenkins SonarQube http://hostname/sonarqube Web Selenium Hub http://hostname/selenoid/wd/hub Mobile Selenium Hub http://hostname/mcloud/wd/hub Mobile SmartTest Farm http://hostname/stf admin/changeit crendetials should be used for Reporting and Jenkins, admin/admin for SonarQube. Organization Setup Register Organization Login to Zebrunner Reporting Open \"Account and Profile\" menu in top right corner and generate token Login to Jenkins , open \"Management_Jobs\" folder Run \"RegisterOrganization\" job providing your organization name as folderName and Reporting url/token New organization folder is created with \"RegisterRepository\" job inside and registered reporting integration Register Repository Open your organization folder Run \"RegisterRepository\" job providing git args (use carina-demo as sample repo to scan) SYSTEM jobs (build, onPullRequest, onPush) and all testing jobs are generated, login to SonarQube to see static code analysis of your test repository sources Setup Source Code Manager and SonarQube integrations to automate jobs generation and static code analysis for every pull request/merge operations. Run any Job Open generated repository folder if no TestNG suite xml files detected you can use default build job Run any TestNG job Job is executed, results published to the reporting Follow User Guide practices to manage your CI jobs via code Support Channel Join Telegram channel in case of any question","title":"Configuration Guide"},{"location":"config-guide/#configuration-guide","text":"","title":"Configuration Guide"},{"location":"config-guide/#components-details","text":"Use your host domain address or IP instead of hostname . Components URL Zebrunner Reporting http://hostname Jenkins http://hostname/jenkins SonarQube http://hostname/sonarqube Web Selenium Hub http://hostname/selenoid/wd/hub Mobile Selenium Hub http://hostname/mcloud/wd/hub Mobile SmartTest Farm http://hostname/stf admin/changeit crendetials should be used for Reporting and Jenkins, admin/admin for SonarQube.","title":"Components details"},{"location":"config-guide/#organization-setup","text":"","title":"Organization Setup"},{"location":"config-guide/#register-organization","text":"Login to Zebrunner Reporting Open \"Account and Profile\" menu in top right corner and generate token Login to Jenkins , open \"Management_Jobs\" folder Run \"RegisterOrganization\" job providing your organization name as folderName and Reporting url/token New organization folder is created with \"RegisterRepository\" job inside and registered reporting integration","title":"Register Organization"},{"location":"config-guide/#register-repository","text":"Open your organization folder Run \"RegisterRepository\" job providing git args (use carina-demo as sample repo to scan) SYSTEM jobs (build, onPullRequest, onPush) and all testing jobs are generated, login to SonarQube to see static code analysis of your test repository sources Setup Source Code Manager and SonarQube integrations to automate jobs generation and static code analysis for every pull request/merge operations.","title":"Register Repository"},{"location":"config-guide/#run-any-job","text":"Open generated repository folder if no TestNG suite xml files detected you can use default build job Run any TestNG job Job is executed, results published to the reporting Follow User Guide practices to manage your CI jobs via code","title":"Run any Job"},{"location":"config-guide/#support-channel","text":"Join Telegram channel in case of any question","title":"Support Channel"},{"location":"faq/","text":"F.A.Q (Draft) Ferox educta Lorem markdownum ramos, dura suadet Eumenides pudet; et non vultus dixit ostendens non omnis ! Auras maiorque vidi nec: timoris reddidit lumina exsul fuit Vulcani audenti, pinum ensem prohibent recursus Tyrrhenus cum silvas. Tamen faciam supplentur magnique est Aiacis parva quod incingitur, subiectaque! Caput per Numidasque copia. Retia sive: Iunonis superabat fletibus aenae. Fuerat lucida flumina et auras Insania, et et Phorbas. Arma sub nomine a tantum nefasque serpere. Nuruumque pigra exsequitur et manerem nondum frutex me partibus et necis! Finita vero gavisus, quam, nobis dextra invia contulit cupressu illius an terras quaecumque clausum mihi. Iuga raptae post, est iniectos, comantem vultus, ulla, tum frondere villo cecidit. Hactenus imas non eundem harenis violesque saevitiam agant vindicat solane est corpore agros quoque, in alta praerupit. Sit quae quod Tritonia; suras riget ille fortuna frustra missum sceleratus urbem, Troiae cum , nec. Vocem formae Sisyphe invidit post numina Adit flamma dubie muneris. Hic aequoreae viribus, a! Omnes voce, cupidine precibus: fruges dixit, discede faciente Diti . Est ut cognoscet mihi. var netbios = infringement_input_monochrome; if (null == cadTerabytePetaflops.onKeystroke(mpeg_overclocking, rippingKindle, 1)) { zebibyte -= 45 + marketReadmeWorm + gbps_external_margin; sessionWebsitePum(4, -1 - backup); } else { party += onlineSmtp(formatXmlManet, nvramDvdParse) + basic; nanometerHot = 1; batch.file += publishing_configuration(gigabitImage(modeTagPlug), peripheralSpoolingMyspace(5, newsgroupPitchJava, input_error), 17); } if (serp == card) { processTweak += primaryPim; metafile -= 4; petabyte.forum = iteration_matrix; } else { dsl = 3 + task_bar_usb; software = data(address_disk, 5 + 2); } var and_im_powerpoint = newbie - oasis / terminalPcYahoo(2, right_rdram_graphic, kbpsStation); var io = mashup_raster_ict + microcomputer_user; Pater in vate arcana et vertitur tenent, versus evolvere. Coegerat tenebris erat Thermodontiaca penates arbitrium mentita fulvo placuit potius miserabilis mensura omnis ora cortice arbor, exstinctum. Si longum, grave genitoris Iove primasque urbes: quem flet vident corniger coniugis eo, molibus est mariti quanto. Et Iuno. Secutis ex ventos Tam crescens adhaerent versantem autem foret ingenti. Sui lupis Menoeten finemque, fulgura, et agmenque , movit tepido, domo nam iubae Chrysenque relicto infantibus. Tuba ausa locis praebet, alta sunt utilis Iuno ossa illi, tunc labens? Et sed caruerunt notus paulumque formaeque: me Creten; dulces. Troiae nec in salutifer esse memorabat pariterque , moratur thalamis fidissima venter pendebant captam totoque nequit et? Visaque plena puellari artem. Crura et verso Medusae Demoleon peremi liventia contorta et stuppea testatos sequitur. Cupido fecisse! Ferus usu ferumque nefas, in nisi Abantiades est, eodem nomen, duram pennis.","title":"F.A.Q (Draft)"},{"location":"faq/#faq-draft","text":"","title":"F.A.Q (Draft)"},{"location":"faq/#ferox-educta","text":"Lorem markdownum ramos, dura suadet Eumenides pudet; et non vultus dixit ostendens non omnis ! Auras maiorque vidi nec: timoris reddidit lumina exsul fuit Vulcani audenti, pinum ensem prohibent recursus Tyrrhenus cum silvas. Tamen faciam supplentur magnique est Aiacis parva quod incingitur, subiectaque! Caput per Numidasque copia. Retia sive: Iunonis superabat fletibus aenae. Fuerat lucida flumina et auras Insania, et et Phorbas. Arma sub nomine a tantum nefasque serpere. Nuruumque pigra exsequitur et manerem nondum frutex me partibus et necis! Finita vero gavisus, quam, nobis dextra invia contulit cupressu illius an terras quaecumque clausum mihi. Iuga raptae post, est iniectos, comantem vultus, ulla, tum frondere villo cecidit. Hactenus imas non eundem harenis violesque saevitiam agant vindicat solane est corpore agros quoque, in alta praerupit. Sit quae quod Tritonia; suras riget ille fortuna frustra missum sceleratus urbem, Troiae cum , nec.","title":"Ferox educta"},{"location":"faq/#vocem-formae-sisyphe-invidit-post-numina","text":"Adit flamma dubie muneris. Hic aequoreae viribus, a! Omnes voce, cupidine precibus: fruges dixit, discede faciente Diti . Est ut cognoscet mihi. var netbios = infringement_input_monochrome; if (null == cadTerabytePetaflops.onKeystroke(mpeg_overclocking, rippingKindle, 1)) { zebibyte -= 45 + marketReadmeWorm + gbps_external_margin; sessionWebsitePum(4, -1 - backup); } else { party += onlineSmtp(formatXmlManet, nvramDvdParse) + basic; nanometerHot = 1; batch.file += publishing_configuration(gigabitImage(modeTagPlug), peripheralSpoolingMyspace(5, newsgroupPitchJava, input_error), 17); } if (serp == card) { processTweak += primaryPim; metafile -= 4; petabyte.forum = iteration_matrix; } else { dsl = 3 + task_bar_usb; software = data(address_disk, 5 + 2); } var and_im_powerpoint = newbie - oasis / terminalPcYahoo(2, right_rdram_graphic, kbpsStation); var io = mashup_raster_ict + microcomputer_user; Pater in vate arcana et vertitur tenent, versus evolvere. Coegerat tenebris erat Thermodontiaca penates arbitrium mentita fulvo placuit potius miserabilis mensura omnis ora cortice arbor, exstinctum. Si longum, grave genitoris Iove primasque urbes: quem flet vident corniger coniugis eo, molibus est mariti quanto. Et Iuno.","title":"Vocem formae Sisyphe invidit post numina"},{"location":"faq/#secutis-ex-ventos","text":"Tam crescens adhaerent versantem autem foret ingenti. Sui lupis Menoeten finemque, fulgura, et agmenque , movit tepido, domo nam iubae Chrysenque relicto infantibus. Tuba ausa locis praebet, alta sunt utilis Iuno ossa illi, tunc labens? Et sed caruerunt notus paulumque formaeque: me Creten; dulces. Troiae nec in salutifer esse memorabat pariterque , moratur thalamis fidissima venter pendebant captam totoque nequit et? Visaque plena puellari artem. Crura et verso Medusae Demoleon peremi liventia contorta et stuppea testatos sequitur. Cupido fecisse! Ferus usu ferumque nefas, in nisi Abantiades est, eodem nomen, duram pennis.","title":"Secutis ex ventos"},{"location":"install-guide/","text":"Installation Guide Setup services Clone Zebrunner CE recursive and launch setup procedure git clone --recurse-submodule https://github.com/zebrunner/community-edition.git cd community-edition ./zebrunner.sh setup Provide valid protocol, host address or fully qualified domain name and port: Zebrunner General Settings Protocol [http]: Fully qualified domain name (ip) [3.236.66.54]: Port [80]: Zebrunner URL: http://3.236.66.54:80 Continue? y/n [y]:y Press Enter to keep default values displayed in square brackets. Choose S3 compatible storage service for video, screenshots and logs artifacts. By default embedded Minio storage is configured: Use AWS S3 bucket for storing test artifacts (logs, video, screenshots etc)? Embedded Minio Storage can be configured if you don't have Amazon account. Use? y/n [n]:n To use AWS S3 storage generate bucket according to the steps and provide it's settings. Provide SMTP integration to be able to send emailable reports: Use SMTP for emailing test results? Use? y/n [n]:y Host [smtp.gmail.com]: Port [587]: Sender email []: myemail@gmail.com User []: myemail Password []: mypassword SMTP Integration host=smtp.gmail.com:587 email=myemail@gmail.com user=myemail password=mypassword Continue? y/n [y]:y Keep SonarQube to organize continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities etc: Use embedded SonarQube to organize static code analysis and guiding your team? Enable? y/n [y]:y Keep Jenkins to establish automation testing CI/CD in accordance with Infrastructure as Code processes: Use embedded Jenkins as recommended CI tool? Enable? y/n [y]:y Keep light-weight Selenium Hub to be able to execute test automation on browsers: Use embedded Web Selenium Hub for testing on chrome, firefox, opera and MicrosoftEdge browsers? Enable? y/n [y]:y Keep MCloud to be able to register your physical mobile devices and emulators and execute native and mobile web testing. Use embedded Mobile Device Farm and Selenium/Appium Hub for testing on Android, iOS, AppleTV etc devices? Enable? y/n [y]:y Review pre-generated credentials and components links. Later you can find them in NOTICE.txt file Copy and save auto-generated crendentials. Detailes can be found also in NOTICE.txt ZEBRUNNER URL: http://3.236.66.54:80 REPORTING SERVICE CREDENTIALS: USER: admin/changeit IAM POSTGRES: postgres/7GyFmdnsHQJEePeDQa1kYpknrgu7tUtVMGQ00p9ARP5qDBck REPORTING POSTGRES: postgres/m1lkBtdEKXqLzX48HA9gmvRrvlJbcWqM4jsayl0xTBheobij RABBITMQ: admin/CZrbcTBh0ACHoDYuiMmbNz9jmJ2o2OESKOjmCI9R50NxDOT2 REDIS: rfdQgjU6JR4BlpflBxPSuECcyL8grjT38XmF8utyfl5RPzOn REPORTING SMTP INTEGRATIONS: SMTP HOST: smtp.gmail.com:587 EMAIL: myemail@gmail.com USER: myemail/mypassword JENKINS URL: http://3.236.66.54:80/jenkins JENKINS USER: admin/changeit SONARQUBE URL: http://3.236.66.54:80/sonarqube SONARQUBE USER: admin/admin SELENIUM HUB URL: http://3.236.66.54:80/selenoid/wd/hub STF URL: http://3.236.66.54:80/stf APPIUM HUB URL: http://3.236.66.54:80/mcloud/wd/hub Start Services: WARNING! Your services needs to be started after setup. Start now? y/n [y]:y Manage services Use ./zebrunner.sh script to start/stop/restart etc Zebrunner Community Edition services ./zebrunner.sh Usage: ./zebrunner.sh [option] Flags: --help | -h Print help Arguments: setup Setup Zebrunner Community Edition start Start container stop Stop and keep container restart Restart container down Stop and remove container shutdown Stop and remove container, clear volumes backup Backup container restore Restore container upgrade Upgrade to the latest version of Zebrunner Community Edition version Version of components For more help join telegram channel: https://t.me/zebrunner To reconfigure services, disable/enable components, setup distributed environments re-execute again setup procedure and provide updated inputs Support Channel Join Telegram channel in case of any question","title":"Installation Guide"},{"location":"install-guide/#installation-guide","text":"","title":"Installation Guide"},{"location":"install-guide/#setup-services","text":"Clone Zebrunner CE recursive and launch setup procedure git clone --recurse-submodule https://github.com/zebrunner/community-edition.git cd community-edition ./zebrunner.sh setup Provide valid protocol, host address or fully qualified domain name and port: Zebrunner General Settings Protocol [http]: Fully qualified domain name (ip) [3.236.66.54]: Port [80]: Zebrunner URL: http://3.236.66.54:80 Continue? y/n [y]:y Press Enter to keep default values displayed in square brackets. Choose S3 compatible storage service for video, screenshots and logs artifacts. By default embedded Minio storage is configured: Use AWS S3 bucket for storing test artifacts (logs, video, screenshots etc)? Embedded Minio Storage can be configured if you don't have Amazon account. Use? y/n [n]:n To use AWS S3 storage generate bucket according to the steps and provide it's settings. Provide SMTP integration to be able to send emailable reports: Use SMTP for emailing test results? Use? y/n [n]:y Host [smtp.gmail.com]: Port [587]: Sender email []: myemail@gmail.com User []: myemail Password []: mypassword SMTP Integration host=smtp.gmail.com:587 email=myemail@gmail.com user=myemail password=mypassword Continue? y/n [y]:y Keep SonarQube to organize continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities etc: Use embedded SonarQube to organize static code analysis and guiding your team? Enable? y/n [y]:y Keep Jenkins to establish automation testing CI/CD in accordance with Infrastructure as Code processes: Use embedded Jenkins as recommended CI tool? Enable? y/n [y]:y Keep light-weight Selenium Hub to be able to execute test automation on browsers: Use embedded Web Selenium Hub for testing on chrome, firefox, opera and MicrosoftEdge browsers? Enable? y/n [y]:y Keep MCloud to be able to register your physical mobile devices and emulators and execute native and mobile web testing. Use embedded Mobile Device Farm and Selenium/Appium Hub for testing on Android, iOS, AppleTV etc devices? Enable? y/n [y]:y Review pre-generated credentials and components links. Later you can find them in NOTICE.txt file Copy and save auto-generated crendentials. Detailes can be found also in NOTICE.txt ZEBRUNNER URL: http://3.236.66.54:80 REPORTING SERVICE CREDENTIALS: USER: admin/changeit IAM POSTGRES: postgres/7GyFmdnsHQJEePeDQa1kYpknrgu7tUtVMGQ00p9ARP5qDBck REPORTING POSTGRES: postgres/m1lkBtdEKXqLzX48HA9gmvRrvlJbcWqM4jsayl0xTBheobij RABBITMQ: admin/CZrbcTBh0ACHoDYuiMmbNz9jmJ2o2OESKOjmCI9R50NxDOT2 REDIS: rfdQgjU6JR4BlpflBxPSuECcyL8grjT38XmF8utyfl5RPzOn REPORTING SMTP INTEGRATIONS: SMTP HOST: smtp.gmail.com:587 EMAIL: myemail@gmail.com USER: myemail/mypassword JENKINS URL: http://3.236.66.54:80/jenkins JENKINS USER: admin/changeit SONARQUBE URL: http://3.236.66.54:80/sonarqube SONARQUBE USER: admin/admin SELENIUM HUB URL: http://3.236.66.54:80/selenoid/wd/hub STF URL: http://3.236.66.54:80/stf APPIUM HUB URL: http://3.236.66.54:80/mcloud/wd/hub Start Services: WARNING! Your services needs to be started after setup. Start now? y/n [y]:y","title":"Setup services"},{"location":"install-guide/#manage-services","text":"Use ./zebrunner.sh script to start/stop/restart etc Zebrunner Community Edition services ./zebrunner.sh Usage: ./zebrunner.sh [option] Flags: --help | -h Print help Arguments: setup Setup Zebrunner Community Edition start Start container stop Stop and keep container restart Restart container down Stop and remove container shutdown Stop and remove container, clear volumes backup Backup container restore Restore container upgrade Upgrade to the latest version of Zebrunner Community Edition version Version of components For more help join telegram channel: https://t.me/zebrunner To reconfigure services, disable/enable components, setup distributed environments re-execute again setup procedure and provide updated inputs","title":"Manage services"},{"location":"install-guide/#support-channel","text":"Join Telegram channel in case of any question","title":"Support Channel"},{"location":"prerequisites/","text":"Prerequisites System requirements Hardware requirements Requirements Operating System Ubuntu 16.04 - 21.10 Linux CentOS 7+ Amazon Linux 2 CPU 8+ Cores Memory 32 Gb RAM Free space SSD 128Gb+ of free space All in one standalone deployment supports up to 5 parallel executors for web and api tests. The most optimal EC2 instance type is t3a.2xlarge with enabled \"T2/T3 Unlimited\" feature Software requirements Install docker ( Ubuntu 16.04 , Ubuntu 18.04 , Ubuntu 20.04 , Amazon Linux 2 , Redhat/Cent OS ) Install docker-composer 1.22.2 Install git 2.20.0+ Security requirements NGiNX WebServer port is shared By default 80 for http and 443 for https","title":"Prerequisites"},{"location":"prerequisites/#prerequisites","text":"","title":"Prerequisites"},{"location":"prerequisites/#system-requirements","text":"","title":"System requirements"},{"location":"prerequisites/#hardware-requirements","text":"Requirements Operating System Ubuntu 16.04 - 21.10 Linux CentOS 7+ Amazon Linux 2 CPU 8+ Cores Memory 32 Gb RAM Free space SSD 128Gb+ of free space All in one standalone deployment supports up to 5 parallel executors for web and api tests. The most optimal EC2 instance type is t3a.2xlarge with enabled \"T2/T3 Unlimited\" feature","title":"Hardware requirements"},{"location":"prerequisites/#software-requirements","text":"Install docker ( Ubuntu 16.04 , Ubuntu 18.04 , Ubuntu 20.04 , Amazon Linux 2 , Redhat/Cent OS ) Install docker-composer 1.22.2 Install git 2.20.0+","title":"Software requirements"},{"location":"prerequisites/#security-requirements","text":"NGiNX WebServer port is shared By default 80 for http and 443 for https","title":"Security requirements"},{"location":"user-guide/","text":"User Guide Preconditions TestNG repository is available. For quick start use carina archetype Infrustructure is deployed, and optionally onPullRequest/onPush events configured. Continious Intergration (Jenkins) All test jobs are created and maintained automatically according to IaC processes. For every TestNG suite dedicated job is created. For example visit carina suites Test Jobs (API/Web/Mobile) Use special annotations to define jobs name, ownership, schedule coverage matrix etc, for example API-Demo-Test Test Jobs can be executed on-demand, scheduled, included into different testing layers (Smoke, Regression, etc.). Create a Job Open TestNG suite xml file Fill the bunch of parameters in your xml: Commit and merge. After scan is finished (automatic or manual execution of SYSTEM->onPush job) \"Job1\" test job is created in Jenkins. Also you can register custom jenkins job fields if neccessary: Run a Job Steps: Login to Jenkins Go to organization/repository and open a Job Click Build with Parameters and run Build When Job is completed analyze published reports/logs (Zebrunner Report and TestNG reports) Schedule a Job Open TestNG suite xml file Declare \"scheduling\" parameter : Note: Provide regular Jenkins Cron expression as a value. To organize multiple schedules use \"::\" as separator: Commit and merge. Delete a Job Delete TestNG suite xml file Commit and merge. Ask your administrator to remove the Job on Jenkins. Cron Jobs (Layer of Testing) Jenkins Pipeline Cron - this is a job that can execute different suites/jobs in scope of single run. Test Job can be assigned to testing layer(cron) using \"jenkinsRegressionPipeline\" annotation. Create a Cron Open TestNG suite xml file Declare \"jenkinsRegressionPipeline\" property in xml: Commit and merge. After scan is finished (automatic or manual) nightly_regression and full_regression crons are created in Jenkins. During execution nightly_regression or full_regression crons current test suite(job) must be executed. How to Set up Configuration Matrix Open TestNG suite xml file Declare \"jenkinsRegressionMatrix\" property in xml: Commit and merge. After scan is finished (automatic or manual) Carina-Demo-Regression-Pipeline cron job is created in Jenkins. Every time you run Carina-Demo-Regression-Pipeline job it should start your suite xml child job twice for DEMO and PROD environments using appropriate branches. Note: Any param values pairs can be provided. Comma separated - for single job params. Semicolon separated for multiple child job params. Run a Cron Steps: Go to organization/repository and open a Cron Job Note: There is a \"CRON\" view for such kind of jobs Click Build with Parameters and run Build Cron Job should trigger children jobs according to desired configuration matrix When Cron and children jobs are finished analyze children jobs' reports/logs (Zebrunner Report and TestNG reports) Schedule a Cron Open any child TestNG suite xml file Declare \"jenkinsRegressionScheduling\" parameter : Commit and merge. After scan is finished (automatic or manual) Carina-Demo-Regression-Pipeline is created and sheduled to run periodically in Jenkins. Delete a Cron Open each TestNG suite xml file(s) and remove declaration of \"jenkinsRegressionPipeline\" property. Commit and merge. Ask your administrator to delete Cron job in Jenkins Special Annotations To start there are a number of additional parameters that can be added to an existing Test Suite xml. These parameters are: jenkinsJobName - This property is just the name that Jenkins should create a job for, the normal pattern here is to include the platform name in the job itself to make it easier to find inside of Jenkins. jenkinsJobDisabled - This property is for disable job on Jenkins. jenkinsJobType \u2013 This property tells Jenkins what type of job it is. This field can take a \u201cweb\u201d, \u201capi\u201d, \u201cios\u201d, \u201candroid\u201d value. For each type of job appropriate capabilities and parameter are generated. If value set to \u201capi\u201d \u2013 Jenkins knows that there is no need to use web browser for run this Test Suite. If value set to \u201cweb\u201d \u2013 Jenkins will use web browser to run the Test. Chrome browser will be used by default. If value set to \u201cios\u201d \u2013 ios native application test job. If value set to \u201candroid\u201d \u2013 android native application test job. capabilities - This property is extended W3C driver capabilities. scheduling - This property is for running jobs by the schedule. jenkinsGroups - This property is for running jobs in accordance with testng groups annotation. jenkinsEmail - This property takes a comma separated list of emails/distribution lists that end results of a Test Suite will be emailed to. jenkinsFailedEmail - This property takes a comma separated list of emails/distribution lists that end results of a Test Suite that contains failures will be emailed to. jenkinsRegressionPipeline - This property takes a comma separated string of the various pipelines that a specific Test Suite will be attached to. jenkinsEnvironments - This property takes a comma separated string of the various environments that might be tested for that particular suite i.e. PROD, QA, DEV, STAGE, BETA, etc. jenkinsJobExecutionOrder - This property takes a number value and allows for a pipeline to be generated which will run tests in a sequential synchronous manner, compared to the default asynchronous manner. jenkinsJobExecutionMode - This property is only consumed when a jenkinsJobExecutionOrder has been set on a pipeline which would put that pipeline into a synchronous mode and takes a value of \"continue\" or \"abort\". When it is \"abort\" we halt the entire pipeline as only failed job detected. It might be useful to setup extended health-check scenarios. jenkinsRegressionMatrix - This property we use for creating configuration test matrix. overrideFields - This property takes any number of custom fields that need to be available at run-time for a job to run successfully. They can override any CI parameter forcibly. jenkinsSlackChannels - This property is responsible for send test run results to Slack channel via slack-api. jenkinsFailedSlackChannels - This property takes a comma separated list of slack channels to notify about failures. jenkinsDefaultRetryCount - This property allows to provide custom retry_count property (number of extra attempts for test execution). jenkinsNodeLabel - This property allows to override slave label and execute test on custom server. overrideFields - This property allows to add custom Fields that can override default fields. provider - This property is for add provider for test job. jenkinsAutoScreenshot - This property is a boolean parameter mostly to enable auto_screenshot which is disabled by default. Support Channel Join Telegram channel in case of any question","title":"User Guide"},{"location":"user-guide/#user-guide","text":"","title":"User Guide"},{"location":"user-guide/#preconditions","text":"TestNG repository is available. For quick start use carina archetype Infrustructure is deployed, and optionally onPullRequest/onPush events configured.","title":"Preconditions"},{"location":"user-guide/#continious-intergration-jenkins","text":"All test jobs are created and maintained automatically according to IaC processes. For every TestNG suite dedicated job is created. For example visit carina suites","title":"Continious Intergration (Jenkins)"},{"location":"user-guide/#test-jobs-apiwebmobile","text":"Use special annotations to define jobs name, ownership, schedule coverage matrix etc, for example API-Demo-Test Test Jobs can be executed on-demand, scheduled, included into different testing layers (Smoke, Regression, etc.).","title":"Test Jobs (API/Web/Mobile)"},{"location":"user-guide/#create-a-job","text":"Open TestNG suite xml file Fill the bunch of parameters in your xml: Commit and merge. After scan is finished (automatic or manual execution of SYSTEM->onPush job) \"Job1\" test job is created in Jenkins. Also you can register custom jenkins job fields if neccessary: ","title":"Create a Job"},{"location":"user-guide/#run-a-job","text":"Steps: Login to Jenkins Go to organization/repository and open a Job Click Build with Parameters and run Build When Job is completed analyze published reports/logs (Zebrunner Report and TestNG reports)","title":"Run a Job"},{"location":"user-guide/#schedule-a-job","text":"Open TestNG suite xml file Declare \"scheduling\" parameter : Note: Provide regular Jenkins Cron expression as a value. To organize multiple schedules use \"::\" as separator: Commit and merge.","title":"Schedule a Job"},{"location":"user-guide/#delete-a-job","text":"Delete TestNG suite xml file Commit and merge. Ask your administrator to remove the Job on Jenkins.","title":"Delete a Job"},{"location":"user-guide/#cron-jobs-layer-of-testing","text":"Jenkins Pipeline Cron - this is a job that can execute different suites/jobs in scope of single run. Test Job can be assigned to testing layer(cron) using \"jenkinsRegressionPipeline\" annotation.","title":"Cron Jobs (Layer of Testing)"},{"location":"user-guide/#create-a-cron","text":"Open TestNG suite xml file Declare \"jenkinsRegressionPipeline\" property in xml: Commit and merge. After scan is finished (automatic or manual) nightly_regression and full_regression crons are created in Jenkins. During execution nightly_regression or full_regression crons current test suite(job) must be executed.","title":"Create a Cron"},{"location":"user-guide/#how-to-set-up-configuration-matrix","text":"Open TestNG suite xml file Declare \"jenkinsRegressionMatrix\" property in xml: Commit and merge. After scan is finished (automatic or manual) Carina-Demo-Regression-Pipeline cron job is created in Jenkins. Every time you run Carina-Demo-Regression-Pipeline job it should start your suite xml child job twice for DEMO and PROD environments using appropriate branches. Note: Any param values pairs can be provided. Comma separated - for single job params. Semicolon separated for multiple child job params.","title":"How to Set up Configuration Matrix"},{"location":"user-guide/#run-a-cron","text":"Steps: Go to organization/repository and open a Cron Job Note: There is a \"CRON\" view for such kind of jobs Click Build with Parameters and run Build Cron Job should trigger children jobs according to desired configuration matrix When Cron and children jobs are finished analyze children jobs' reports/logs (Zebrunner Report and TestNG reports)","title":"Run a Cron"},{"location":"user-guide/#schedule-a-cron","text":"Open any child TestNG suite xml file Declare \"jenkinsRegressionScheduling\" parameter : Commit and merge. After scan is finished (automatic or manual) Carina-Demo-Regression-Pipeline is created and sheduled to run periodically in Jenkins.","title":"Schedule a Cron"},{"location":"user-guide/#delete-a-cron","text":"Open each TestNG suite xml file(s) and remove declaration of \"jenkinsRegressionPipeline\" property. Commit and merge. Ask your administrator to delete Cron job in Jenkins","title":"Delete a Cron"},{"location":"user-guide/#special-annotations","text":"To start there are a number of additional parameters that can be added to an existing Test Suite xml. These parameters are: jenkinsJobName - This property is just the name that Jenkins should create a job for, the normal pattern here is to include the platform name in the job itself to make it easier to find inside of Jenkins. jenkinsJobDisabled - This property is for disable job on Jenkins. jenkinsJobType \u2013 This property tells Jenkins what type of job it is. This field can take a \u201cweb\u201d, \u201capi\u201d, \u201cios\u201d, \u201candroid\u201d value. For each type of job appropriate capabilities and parameter are generated. If value set to \u201capi\u201d \u2013 Jenkins knows that there is no need to use web browser for run this Test Suite. If value set to \u201cweb\u201d \u2013 Jenkins will use web browser to run the Test. Chrome browser will be used by default. If value set to \u201cios\u201d \u2013 ios native application test job. If value set to \u201candroid\u201d \u2013 android native application test job. capabilities - This property is extended W3C driver capabilities. scheduling - This property is for running jobs by the schedule. jenkinsGroups - This property is for running jobs in accordance with testng groups annotation. jenkinsEmail - This property takes a comma separated list of emails/distribution lists that end results of a Test Suite will be emailed to. jenkinsFailedEmail - This property takes a comma separated list of emails/distribution lists that end results of a Test Suite that contains failures will be emailed to. jenkinsRegressionPipeline - This property takes a comma separated string of the various pipelines that a specific Test Suite will be attached to. jenkinsEnvironments - This property takes a comma separated string of the various environments that might be tested for that particular suite i.e. PROD, QA, DEV, STAGE, BETA, etc. jenkinsJobExecutionOrder - This property takes a number value and allows for a pipeline to be generated which will run tests in a sequential synchronous manner, compared to the default asynchronous manner. jenkinsJobExecutionMode - This property is only consumed when a jenkinsJobExecutionOrder has been set on a pipeline which would put that pipeline into a synchronous mode and takes a value of \"continue\" or \"abort\". When it is \"abort\" we halt the entire pipeline as only failed job detected. It might be useful to setup extended health-check scenarios. jenkinsRegressionMatrix - This property we use for creating configuration test matrix. overrideFields - This property takes any number of custom fields that need to be available at run-time for a job to run successfully. They can override any CI parameter forcibly. jenkinsSlackChannels - This property is responsible for send test run results to Slack channel via slack-api. jenkinsFailedSlackChannels - This property takes a comma separated list of slack channels to notify about failures. jenkinsDefaultRetryCount - This property allows to provide custom retry_count property (number of extra attempts for test execution). jenkinsNodeLabel - This property allows to override slave label and execute test on custom server. overrideFields - This property allows to add custom Fields that can override default fields. provider - This property is for add provider for test job. jenkinsAutoScreenshot - This property is a boolean parameter mostly to enable auto_screenshot which is disabled by default.","title":"Special Annotations"},{"location":"user-guide/#support-channel","text":"Join Telegram channel in case of any question","title":"Support Channel"},{"location":"integration/aws-s3/","text":"AWS S3 Bucket Create bucket Create new bucket in AWS S3 choose region closer to your location In bucket \"Public Access Settings\" uncheck all properties Security will be configured via UserAgent token * In \"Bucket Policy\" put below json: { \"Version\": \"2012-10-17\", \"Statement\": [ { \"Sid\": \"AllowGetObject\", \"Effect\": \"Allow\", \"Principal\": \"*\", \"Action\": \"s3:GetObject\", \"Resource\": \"arn:aws:s3:::MYBUCKET/*\", \"Condition\": { \"StringLike\": { \"aws:UserAgent\": \"MyStrongPassword\" } } } ] } replacing MYBUCKET with actual name and putting password instead of MyStrongPassword Provide MYBUCKET as Bucket and MyStrongPassword as UserAgent key during setup procedure Create user Goto IAM -> Policies -> Create Policy -> Active JSON Put below value, replacing MYBUCKET with actual value { \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"s3:ListAllMyBuckets\", \"Resource\": \"arn:aws:s3:::*\" }, { \"Effect\": \"Allow\", \"Action\": \"s3:*\", \"Resource\": [ \"arn:aws:s3:::MYBUCKET\", \"arn:aws:s3:::MYBUCKET/*\" ] } ] } Click Review policy -> specify name like zebrunner-s3-writer-policy -> Create Policy Goto IAM -> Users -> Add User Specify username like zebrunner-s3-user -> Pick \u201cProgrammatic access\u201d -> Next: Permissions: -> Attach existing policies directly Choose previously created policy -> Next: Tags -> Next: Review -> Create User Provide user keys as Access key and Secret key during setup procedure","title":"S3 Storage"},{"location":"integration/aws-s3/#aws-s3-bucket","text":"","title":"AWS S3 Bucket"},{"location":"integration/aws-s3/#create-bucket","text":"Create new bucket in AWS S3 choose region closer to your location In bucket \"Public Access Settings\" uncheck all properties Security will be configured via UserAgent token * In \"Bucket Policy\" put below json: { \"Version\": \"2012-10-17\", \"Statement\": [ { \"Sid\": \"AllowGetObject\", \"Effect\": \"Allow\", \"Principal\": \"*\", \"Action\": \"s3:GetObject\", \"Resource\": \"arn:aws:s3:::MYBUCKET/*\", \"Condition\": { \"StringLike\": { \"aws:UserAgent\": \"MyStrongPassword\" } } } ] } replacing MYBUCKET with actual name and putting password instead of MyStrongPassword Provide MYBUCKET as Bucket and MyStrongPassword as UserAgent key during setup procedure","title":"Create bucket"},{"location":"integration/aws-s3/#create-user","text":"Goto IAM -> Policies -> Create Policy -> Active JSON Put below value, replacing MYBUCKET with actual value { \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"s3:ListAllMyBuckets\", \"Resource\": \"arn:aws:s3:::*\" }, { \"Effect\": \"Allow\", \"Action\": \"s3:*\", \"Resource\": [ \"arn:aws:s3:::MYBUCKET\", \"arn:aws:s3:::MYBUCKET/*\" ] } ] } Click Review policy -> specify name like zebrunner-s3-writer-policy -> Create Policy Goto IAM -> Users -> Add User Specify username like zebrunner-s3-user -> Pick \u201cProgrammatic access\u201d -> Next: Permissions: -> Attach existing policies directly Choose previously created policy -> Next: Tags -> Next: Review -> Create User Provide user keys as Access key and Secret key during setup procedure","title":"Create user"},{"location":"integration/scm/","text":"Source Code Manager Integration Setup webhook events (push and pull requests) In order to enable full CI/CD workflow you need to add a webhook to your repository registered in Zebrunner, this webhook will trigger onPush and onPullRequests events on the CI component (Jenkins by default). After each Push and Pull Request events, related Jenkins jobs will pull your repository, scan and generate new test jobs automatically and optionally execute the static code analysis via the sonarqube. Configure required credentials After you register a repository a jenkins credential is generated with the format of orgName-scmType-webhook-token , this credential needs to be updated with a personal access token generated in your repository scm. Note: this jenkins credentials are globally used for each repository of an organization registered in zebrunner. Github access token Follow steps 1-9 here to create your GitHub personal access token. Grant access for the following permissions: repo and admin:repo_hook . Gitlab access token Follow steps 1-7 here to create your Gitlab personal access token. In step 5 select the api, read_repository, write_repository scopes. BitBucket Cloud token Open your terminal and run the following command echo -n username:password | base64 where username and password are your BitBucket credentials, this will return a token encoded in base64. Note: make sure to copy your token as your are going to need it in the Configure Webhooks and Update Jenkins Credentials sections. Update Jenkins Credentials Go to Jenkins > Manage Jenkins > Manage credentials . Find your orgName-scmType-webhook-token credential and click on the ID. Update the Secret text with your correspondent scm token. Click save. Configure Webhooks GitHub: Configure Webhook for Pushes and Pull Requests Go to your GitHub repository page > Settings > Webhooks > Add webhook . Add http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=github-token-here into \"Payload URL\" field. Select application/json in \"Content Type\" field. Click Let me select individual events and select Pushes, Pull Requests . Click Add webhook . Gitlab: Configure Webhook for Pushes and Pull Requests Go to your Gitlab repository page > Settings > Webhooks . Add http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=gitlab-token-here into \"Payload URL\" field. \"Secret Token\" is empty field. Select Push and Merge Requests events . Click Add webhook . BitBucket Cloud: Configure Webhook for Pushes Go to your BitBucket repository page > Repository Settings > Webhooks > add webhook . Enter http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=bitbucket-token-here into URL field. Check that Repository push is selected. Click Save . Support Channel Join Telegram channel in case of any question","title":"Source Code Manager"},{"location":"integration/scm/#source-code-manager-integration","text":"","title":"Source Code Manager Integration"},{"location":"integration/scm/#setup-webhook-events-push-and-pull-requests","text":"In order to enable full CI/CD workflow you need to add a webhook to your repository registered in Zebrunner, this webhook will trigger onPush and onPullRequests events on the CI component (Jenkins by default). After each Push and Pull Request events, related Jenkins jobs will pull your repository, scan and generate new test jobs automatically and optionally execute the static code analysis via the sonarqube.","title":"Setup webhook events (push and pull requests)"},{"location":"integration/scm/#configure-required-credentials","text":"After you register a repository a jenkins credential is generated with the format of orgName-scmType-webhook-token , this credential needs to be updated with a personal access token generated in your repository scm. Note: this jenkins credentials are globally used for each repository of an organization registered in zebrunner.","title":"Configure required credentials"},{"location":"integration/scm/#github-access-token","text":"Follow steps 1-9 here to create your GitHub personal access token. Grant access for the following permissions: repo and admin:repo_hook .","title":"Github access token"},{"location":"integration/scm/#gitlab-access-token","text":"Follow steps 1-7 here to create your Gitlab personal access token. In step 5 select the api, read_repository, write_repository scopes.","title":"Gitlab access token"},{"location":"integration/scm/#bitbucket-cloud-token","text":"Open your terminal and run the following command echo -n username:password | base64 where username and password are your BitBucket credentials, this will return a token encoded in base64. Note: make sure to copy your token as your are going to need it in the Configure Webhooks and Update Jenkins Credentials sections.","title":"BitBucket Cloud token"},{"location":"integration/scm/#update-jenkins-credentials","text":"Go to Jenkins > Manage Jenkins > Manage credentials . Find your orgName-scmType-webhook-token credential and click on the ID. Update the Secret text with your correspondent scm token. Click save.","title":"Update Jenkins Credentials"},{"location":"integration/scm/#configure-webhooks","text":"","title":"Configure Webhooks"},{"location":"integration/scm/#github-configure-webhook-for-pushes-and-pull-requests","text":"Go to your GitHub repository page > Settings > Webhooks > Add webhook . Add http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=github-token-here into \"Payload URL\" field. Select application/json in \"Content Type\" field. Click Let me select individual events and select Pushes, Pull Requests . Click Add webhook .","title":"GitHub: Configure Webhook for Pushes and Pull Requests"},{"location":"integration/scm/#gitlab-configure-webhook-for-pushes-and-pull-requests","text":"Go to your Gitlab repository page > Settings > Webhooks . Add http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=gitlab-token-here into \"Payload URL\" field. \"Secret Token\" is empty field. Select Push and Merge Requests events . Click Add webhook .","title":"Gitlab: Configure Webhook for Pushes and Pull Requests"},{"location":"integration/scm/#bitbucket-cloud-configure-webhook-for-pushes","text":"Go to your BitBucket repository page > Repository Settings > Webhooks > add webhook . Enter http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=bitbucket-token-here into URL field. Check that Repository push is selected. Click Save .","title":"BitBucket Cloud: Configure Webhook for Pushes"},{"location":"integration/scm/#support-channel","text":"Join Telegram channel in case of any question","title":"Support Channel"},{"location":"integration/sonarqube/","text":"SonarQube Integration The sonarqube static analysis is invoked for each webhook event triggered on your target repository(pushes and/or pull/merge requests). If the event is a pull/merge request the reports from the sonarqube analysis will be decorated into the pull request itself for the correspondant scm system. On the contrary, only the analysis will run for push events. Note: default credentials for embedded sonarqube are: admin/admin. Please, change them after 1st login Login to SonarQube Go to My Account > Security Generate new token using Global Analysis Token type and No expiration Login to the Jenkins, go to Manage Jenkins > System Configuration > Global Properties Search for SONAR_TOKEN and put generated value > To integrate private sonarqube server update also SONAR_URL global env variable. GitHub configuration To enable pull request decoration on your github repository you need to create a GitHub App , its purpose is to publish the sonarqube reports generated on the webhook event being processed as checks into the pull request itself on github. Steps were generated based on original Sonarqube article Create a GitHub App Follow Steps 1\u20134 here to start creating your GitHub App Under GitHub App name , give your app a name, such as SonarQubePRDecorator. Add a Homepage URL . GitHub requires this, but it isn't important for Pull Request decoration. You can use any URL, such as https://zebrunner.com/. Enter your User authorization callback URL . Set this to your instance's base URL. For example, https://your-zebrunner-domain/sonarqube/oauth2/callback Add Webhook URL . Set this to your instance's base URL. For example, https://zebrunner.com/. Grant access for the following Permissions : Permission Access Checks Read & Write Metadata Read-Only Pull Requests Read & Write Commit statuses Read-only Contents Read-only Email addresses Read-only Members Read-only Projects Read-only Note: if your are using Github Enterprise the permission \"Metadata\" is renamed to \"Repository Metadata\" Under \"Where can this GitHub App be installed?\" select Any account. Click Create GitHub App . This will take you to your new GitHub App's page. Scroll down to the bottom of your app page and click Generate Private Key. This downloads a .pem file that you'll use in the Configure SonarQube server section. Tip: in order to acces the private key open the .pem file with your favorite text editor. Install your app Once the app is created, you need to install it in your target organization to grant acces to all of your repositories with the permissions specified in the Create a [GitHub App] section. Install your GitHub App from the app's settings page. Go to your GitHub profile > Developer settings > GitHub Apps > Your app name > Install App Select the organization to install the app Select All repositories Click install Note: You can select specific repositories, so the github application will have access only for those specified Configure SonarQube with your app Login into your SonarQube instance Go to Administration > DevOps Platform Integrations > GitHub create configuration using your GitHub App ID, Client ID, Client Secret and Private Key Note: make sure to copy all content from the .pem file generated in the Create GitHub App section Configure DevOps Integration for your project Login into your SonarQube instance Go to your project General Settings > DevOps Platform Integrations Choose Configuration name , specify Repository name and Enable analysis summary under the GitHub Conversation tab Pull Request decoration example When you create a pull and the sonar analysis reported issues, your pull request will be decorated with those issues and links to the sonarqube instance with your project. Gitlab, Bitbucket and Azure configuration Visit original Sonarqube integration guide Configure sonarqube base URL This will serve static context(such as images, links, etc.) for pull/merge requests decoration. Follow the below steps to configure your server base URL: Add your SonarQube server under Administration > Configuration > General Settings > Server base URL Tip: If you are missing images in your decorated pull/merge request it is probably due to configuration issues or the sonarqube server being unavailable at that moment. Support Channel Join Telegram channel in case of any question","title":"SonarQube"},{"location":"integration/sonarqube/#sonarqube-integration","text":"The sonarqube static analysis is invoked for each webhook event triggered on your target repository(pushes and/or pull/merge requests). If the event is a pull/merge request the reports from the sonarqube analysis will be decorated into the pull request itself for the correspondant scm system. On the contrary, only the analysis will run for push events. Note: default credentials for embedded sonarqube are: admin/admin. Please, change them after 1st login Login to SonarQube Go to My Account > Security Generate new token using Global Analysis Token type and No expiration Login to the Jenkins, go to Manage Jenkins > System Configuration > Global Properties Search for SONAR_TOKEN and put generated value > To integrate private sonarqube server update also SONAR_URL global env variable.","title":"SonarQube Integration"},{"location":"integration/sonarqube/#github-configuration","text":"To enable pull request decoration on your github repository you need to create a GitHub App , its purpose is to publish the sonarqube reports generated on the webhook event being processed as checks into the pull request itself on github. Steps were generated based on original Sonarqube article","title":"GitHub configuration"},{"location":"integration/sonarqube/#create-a-github-app","text":"Follow Steps 1\u20134 here to start creating your GitHub App Under GitHub App name , give your app a name, such as SonarQubePRDecorator. Add a Homepage URL . GitHub requires this, but it isn't important for Pull Request decoration. You can use any URL, such as https://zebrunner.com/. Enter your User authorization callback URL . Set this to your instance's base URL. For example, https://your-zebrunner-domain/sonarqube/oauth2/callback Add Webhook URL . Set this to your instance's base URL. For example, https://zebrunner.com/. Grant access for the following Permissions : Permission Access Checks Read & Write Metadata Read-Only Pull Requests Read & Write Commit statuses Read-only Contents Read-only Email addresses Read-only Members Read-only Projects Read-only Note: if your are using Github Enterprise the permission \"Metadata\" is renamed to \"Repository Metadata\" Under \"Where can this GitHub App be installed?\" select Any account. Click Create GitHub App . This will take you to your new GitHub App's page. Scroll down to the bottom of your app page and click Generate Private Key. This downloads a .pem file that you'll use in the Configure SonarQube server section. Tip: in order to acces the private key open the .pem file with your favorite text editor.","title":"Create a GitHub App"},{"location":"integration/sonarqube/#install-your-app","text":"Once the app is created, you need to install it in your target organization to grant acces to all of your repositories with the permissions specified in the Create a [GitHub App] section. Install your GitHub App from the app's settings page. Go to your GitHub profile > Developer settings > GitHub Apps > Your app name > Install App Select the organization to install the app Select All repositories Click install Note: You can select specific repositories, so the github application will have access only for those specified","title":"Install your app"},{"location":"integration/sonarqube/#configure-sonarqube-with-your-app","text":"Login into your SonarQube instance Go to Administration > DevOps Platform Integrations > GitHub create configuration using your GitHub App ID, Client ID, Client Secret and Private Key Note: make sure to copy all content from the .pem file generated in the Create GitHub App section","title":"Configure SonarQube with your app"},{"location":"integration/sonarqube/#configure-devops-integration-for-your-project","text":"Login into your SonarQube instance Go to your project General Settings > DevOps Platform Integrations Choose Configuration name , specify Repository name and Enable analysis summary under the GitHub Conversation tab","title":"Configure DevOps Integration for your project"},{"location":"integration/sonarqube/#pull-request-decoration-example","text":"When you create a pull and the sonar analysis reported issues, your pull request will be decorated with those issues and links to the sonarqube instance with your project.","title":"Pull Request decoration example"},{"location":"integration/sonarqube/#gitlab-bitbucket-and-azure-configuration","text":"Visit original Sonarqube integration guide","title":"Gitlab, Bitbucket and Azure configuration"},{"location":"integration/sonarqube/#configure-sonarqube-base-url","text":"This will serve static context(such as images, links, etc.) for pull/merge requests decoration. Follow the below steps to configure your server base URL: Add your SonarQube server under Administration > Configuration > General Settings > Server base URL Tip: If you are missing images in your decorated pull/merge request it is probably due to configuration issues or the sonarqube server being unavailable at that moment.","title":"Configure sonarqube base URL"},{"location":"integration/sonarqube/#support-channel","text":"Join Telegram channel in case of any question","title":"Support Channel"}]}
\ No newline at end of file
+{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Zebrunner (Community Edition) Overview Zebrunner (Community Edition) is a Continuous configuration automation framework for continuous testing (running various kinds of tests on the code to gain successive levels of confidence in the quality of the code), and (optionally) continuous deployment. It is built in accordance with Infrastructure as Code processes. It is integrated by default with carina-core open source TestNG framework and uses Jenkins as a CI Tool. Zebrunner is built on top of popular docker solutions, it includes Postgres database, Zebrunner Testing Platform (Community Edition), Jenkins with agent node(s), Selenium Hub(s), Zebrunner Device Farm , SonarQube , etc. In additions it is easily integrated with 3rd party devices/browsers cloud providers like: Zebrunner Selenium Grid , Browserstack , SauceLabs etc All components are deployed under NGiNX WebServer which can be configured in a fully secured environment Zebrunner and its subcomponents all together can be used as an effective Test Automation infrastructure for test automation development, execution, management, etc. Purpose Welcome to the Zebrunner Community Edition Tutorial. This manual is designed to help you install, configure and maintain your system, and to optimize and extend or re-configure it to meet the changing needs of your business. In short, the aim of this manual is to explain the tasks involved in administering Zebrunner (Community Edition) Audience This guide is written for all levels of administrators, from those responsible for deployment and setup, to those who oversee the entire system and its usage. In addition, some information from User Guide is intended for TestOps engineers who want to build effective Test Automation process and follow best practices. Assumed Knowledge Installation and Configuration guides are for administrators who install, deploy and Manage Zebrunner products. It assumes the following knowledge: Docker platform and docker compose orchestration tool skills UNIX/Linux administration skills Security and server administration skills Understanding of your organization's security infrastructure, including authentication providers such as LDAP, and use of SSL Understanding of your organization's network environment and port usage User guide is for TestOps engineers who develop test automation scenarios, execute and maintain them etc. It assumes the following knowledge: Preferable Test Automation language and framework. Java/ Maven/ TestNG / Carina experience is a plus Understanding of the basics of Jenkins pipeline and JobDSL License Code - Apache Software License v2.0 Documentation and Site - Creative Commons Attribution 4.0 International License","title":"Overview"},{"location":"#zebrunner-community-edition","text":"","title":"Zebrunner (Community Edition)"},{"location":"#overview","text":"Zebrunner (Community Edition) is a Continuous configuration automation framework for continuous testing (running various kinds of tests on the code to gain successive levels of confidence in the quality of the code), and (optionally) continuous deployment. It is built in accordance with Infrastructure as Code processes. It is integrated by default with carina-core open source TestNG framework and uses Jenkins as a CI Tool. Zebrunner is built on top of popular docker solutions, it includes Postgres database, Zebrunner Testing Platform (Community Edition), Jenkins with agent node(s), Selenium Hub(s), Zebrunner Device Farm , SonarQube , etc. In additions it is easily integrated with 3rd party devices/browsers cloud providers like: Zebrunner Selenium Grid , Browserstack , SauceLabs etc All components are deployed under NGiNX WebServer which can be configured in a fully secured environment Zebrunner and its subcomponents all together can be used as an effective Test Automation infrastructure for test automation development, execution, management, etc.","title":"Overview"},{"location":"#purpose","text":"Welcome to the Zebrunner Community Edition Tutorial. This manual is designed to help you install, configure and maintain your system, and to optimize and extend or re-configure it to meet the changing needs of your business. In short, the aim of this manual is to explain the tasks involved in administering Zebrunner (Community Edition)","title":"Purpose"},{"location":"#audience","text":"This guide is written for all levels of administrators, from those responsible for deployment and setup, to those who oversee the entire system and its usage. In addition, some information from User Guide is intended for TestOps engineers who want to build effective Test Automation process and follow best practices.","title":"Audience"},{"location":"#assumed-knowledge","text":"Installation and Configuration guides are for administrators who install, deploy and Manage Zebrunner products. It assumes the following knowledge: Docker platform and docker compose orchestration tool skills UNIX/Linux administration skills Security and server administration skills Understanding of your organization's security infrastructure, including authentication providers such as LDAP, and use of SSL Understanding of your organization's network environment and port usage User guide is for TestOps engineers who develop test automation scenarios, execute and maintain them etc. It assumes the following knowledge: Preferable Test Automation language and framework. Java/ Maven/ TestNG / Carina experience is a plus Understanding of the basics of Jenkins pipeline and JobDSL","title":"Assumed Knowledge"},{"location":"#license","text":"Code - Apache Software License v2.0 Documentation and Site - Creative Commons Attribution 4.0 International License","title":"License"},{"location":"config-guide/","text":"Configuration Guide Components details Use your host domain address or IP instead of hostname . Components URL Zebrunner Reporting http://hostname Jenkins http://hostname/jenkins SonarQube http://hostname/sonarqube Web Selenium Hub http://hostname/selenoid/wd/hub Mobile Selenium Hub http://hostname/mcloud/wd/hub Mobile SmartTest Farm http://hostname/stf admin/changeit crendetials should be used for Reporting and Jenkins, admin/admin for SonarQube. Organization Setup Register Organization Login to Zebrunner Reporting Open \"Account and Profile\" menu in top right corner and generate token Login to Jenkins , open \"Management_Jobs\" folder Run \"RegisterOrganization\" job providing your organization name as folderName and Reporting url/token New organization folder is created with \"RegisterRepository\" job inside and registered reporting integration Register Repository Open your organization folder Run \"RegisterRepository\" job providing git args (use carina-demo as sample repo to scan) SYSTEM jobs (build, onPullRequest, onPush) and all testing jobs are generated, login to SonarQube to see static code analysis of your test repository sources Setup Source Code Manager and SonarQube integrations to automate jobs generation and static code analysis for every pull request/merge operations. Run any Job Open generated repository folder if no TestNG suite xml files detected you can use default build job Run any TestNG job Job is executed, results published to the reporting Follow User Guide practices to manage your CI jobs via code Support Channel Join Telegram channel in case of any question","title":"Configuration Guide"},{"location":"config-guide/#configuration-guide","text":"","title":"Configuration Guide"},{"location":"config-guide/#components-details","text":"Use your host domain address or IP instead of hostname . Components URL Zebrunner Reporting http://hostname Jenkins http://hostname/jenkins SonarQube http://hostname/sonarqube Web Selenium Hub http://hostname/selenoid/wd/hub Mobile Selenium Hub http://hostname/mcloud/wd/hub Mobile SmartTest Farm http://hostname/stf admin/changeit crendetials should be used for Reporting and Jenkins, admin/admin for SonarQube.","title":"Components details"},{"location":"config-guide/#organization-setup","text":"","title":"Organization Setup"},{"location":"config-guide/#register-organization","text":"Login to Zebrunner Reporting Open \"Account and Profile\" menu in top right corner and generate token Login to Jenkins , open \"Management_Jobs\" folder Run \"RegisterOrganization\" job providing your organization name as folderName and Reporting url/token New organization folder is created with \"RegisterRepository\" job inside and registered reporting integration","title":"Register Organization"},{"location":"config-guide/#register-repository","text":"Open your organization folder Run \"RegisterRepository\" job providing git args (use carina-demo as sample repo to scan) SYSTEM jobs (build, onPullRequest, onPush) and all testing jobs are generated, login to SonarQube to see static code analysis of your test repository sources Setup Source Code Manager and SonarQube integrations to automate jobs generation and static code analysis for every pull request/merge operations.","title":"Register Repository"},{"location":"config-guide/#run-any-job","text":"Open generated repository folder if no TestNG suite xml files detected you can use default build job Run any TestNG job Job is executed, results published to the reporting Follow User Guide practices to manage your CI jobs via code","title":"Run any Job"},{"location":"config-guide/#support-channel","text":"Join Telegram channel in case of any question","title":"Support Channel"},{"location":"faq/","text":"F.A.Q (Draft) Ferox educta Lorem markdownum ramos, dura suadet Eumenides pudet; et non vultus dixit ostendens non omnis ! Auras maiorque vidi nec: timoris reddidit lumina exsul fuit Vulcani audenti, pinum ensem prohibent recursus Tyrrhenus cum silvas. Tamen faciam supplentur magnique est Aiacis parva quod incingitur, subiectaque! Caput per Numidasque copia. Retia sive: Iunonis superabat fletibus aenae. Fuerat lucida flumina et auras Insania, et et Phorbas. Arma sub nomine a tantum nefasque serpere. Nuruumque pigra exsequitur et manerem nondum frutex me partibus et necis! Finita vero gavisus, quam, nobis dextra invia contulit cupressu illius an terras quaecumque clausum mihi. Iuga raptae post, est iniectos, comantem vultus, ulla, tum frondere villo cecidit. Hactenus imas non eundem harenis violesque saevitiam agant vindicat solane est corpore agros quoque, in alta praerupit. Sit quae quod Tritonia; suras riget ille fortuna frustra missum sceleratus urbem, Troiae cum , nec. Vocem formae Sisyphe invidit post numina Adit flamma dubie muneris. Hic aequoreae viribus, a! Omnes voce, cupidine precibus: fruges dixit, discede faciente Diti . Est ut cognoscet mihi. var netbios = infringement_input_monochrome; if (null == cadTerabytePetaflops.onKeystroke(mpeg_overclocking, rippingKindle, 1)) { zebibyte -= 45 + marketReadmeWorm + gbps_external_margin; sessionWebsitePum(4, -1 - backup); } else { party += onlineSmtp(formatXmlManet, nvramDvdParse) + basic; nanometerHot = 1; batch.file += publishing_configuration(gigabitImage(modeTagPlug), peripheralSpoolingMyspace(5, newsgroupPitchJava, input_error), 17); } if (serp == card) { processTweak += primaryPim; metafile -= 4; petabyte.forum = iteration_matrix; } else { dsl = 3 + task_bar_usb; software = data(address_disk, 5 + 2); } var and_im_powerpoint = newbie - oasis / terminalPcYahoo(2, right_rdram_graphic, kbpsStation); var io = mashup_raster_ict + microcomputer_user; Pater in vate arcana et vertitur tenent, versus evolvere. Coegerat tenebris erat Thermodontiaca penates arbitrium mentita fulvo placuit potius miserabilis mensura omnis ora cortice arbor, exstinctum. Si longum, grave genitoris Iove primasque urbes: quem flet vident corniger coniugis eo, molibus est mariti quanto. Et Iuno. Secutis ex ventos Tam crescens adhaerent versantem autem foret ingenti. Sui lupis Menoeten finemque, fulgura, et agmenque , movit tepido, domo nam iubae Chrysenque relicto infantibus. Tuba ausa locis praebet, alta sunt utilis Iuno ossa illi, tunc labens? Et sed caruerunt notus paulumque formaeque: me Creten; dulces. Troiae nec in salutifer esse memorabat pariterque , moratur thalamis fidissima venter pendebant captam totoque nequit et? Visaque plena puellari artem. Crura et verso Medusae Demoleon peremi liventia contorta et stuppea testatos sequitur. Cupido fecisse! Ferus usu ferumque nefas, in nisi Abantiades est, eodem nomen, duram pennis.","title":"F.A.Q (Draft)"},{"location":"faq/#faq-draft","text":"","title":"F.A.Q (Draft)"},{"location":"faq/#ferox-educta","text":"Lorem markdownum ramos, dura suadet Eumenides pudet; et non vultus dixit ostendens non omnis ! Auras maiorque vidi nec: timoris reddidit lumina exsul fuit Vulcani audenti, pinum ensem prohibent recursus Tyrrhenus cum silvas. Tamen faciam supplentur magnique est Aiacis parva quod incingitur, subiectaque! Caput per Numidasque copia. Retia sive: Iunonis superabat fletibus aenae. Fuerat lucida flumina et auras Insania, et et Phorbas. Arma sub nomine a tantum nefasque serpere. Nuruumque pigra exsequitur et manerem nondum frutex me partibus et necis! Finita vero gavisus, quam, nobis dextra invia contulit cupressu illius an terras quaecumque clausum mihi. Iuga raptae post, est iniectos, comantem vultus, ulla, tum frondere villo cecidit. Hactenus imas non eundem harenis violesque saevitiam agant vindicat solane est corpore agros quoque, in alta praerupit. Sit quae quod Tritonia; suras riget ille fortuna frustra missum sceleratus urbem, Troiae cum , nec.","title":"Ferox educta"},{"location":"faq/#vocem-formae-sisyphe-invidit-post-numina","text":"Adit flamma dubie muneris. Hic aequoreae viribus, a! Omnes voce, cupidine precibus: fruges dixit, discede faciente Diti . Est ut cognoscet mihi. var netbios = infringement_input_monochrome; if (null == cadTerabytePetaflops.onKeystroke(mpeg_overclocking, rippingKindle, 1)) { zebibyte -= 45 + marketReadmeWorm + gbps_external_margin; sessionWebsitePum(4, -1 - backup); } else { party += onlineSmtp(formatXmlManet, nvramDvdParse) + basic; nanometerHot = 1; batch.file += publishing_configuration(gigabitImage(modeTagPlug), peripheralSpoolingMyspace(5, newsgroupPitchJava, input_error), 17); } if (serp == card) { processTweak += primaryPim; metafile -= 4; petabyte.forum = iteration_matrix; } else { dsl = 3 + task_bar_usb; software = data(address_disk, 5 + 2); } var and_im_powerpoint = newbie - oasis / terminalPcYahoo(2, right_rdram_graphic, kbpsStation); var io = mashup_raster_ict + microcomputer_user; Pater in vate arcana et vertitur tenent, versus evolvere. Coegerat tenebris erat Thermodontiaca penates arbitrium mentita fulvo placuit potius miserabilis mensura omnis ora cortice arbor, exstinctum. Si longum, grave genitoris Iove primasque urbes: quem flet vident corniger coniugis eo, molibus est mariti quanto. Et Iuno.","title":"Vocem formae Sisyphe invidit post numina"},{"location":"faq/#secutis-ex-ventos","text":"Tam crescens adhaerent versantem autem foret ingenti. Sui lupis Menoeten finemque, fulgura, et agmenque , movit tepido, domo nam iubae Chrysenque relicto infantibus. Tuba ausa locis praebet, alta sunt utilis Iuno ossa illi, tunc labens? Et sed caruerunt notus paulumque formaeque: me Creten; dulces. Troiae nec in salutifer esse memorabat pariterque , moratur thalamis fidissima venter pendebant captam totoque nequit et? Visaque plena puellari artem. Crura et verso Medusae Demoleon peremi liventia contorta et stuppea testatos sequitur. Cupido fecisse! Ferus usu ferumque nefas, in nisi Abantiades est, eodem nomen, duram pennis.","title":"Secutis ex ventos"},{"location":"install-guide/","text":"Installation Guide Setup services Clone Zebrunner CE recursive and launch setup procedure git clone --recurse-submodule https://github.com/zebrunner/community-edition.git cd community-edition ./zebrunner.sh setup Provide valid protocol, host address or fully qualified domain name and port: Zebrunner General Settings Protocol [http]: Fully qualified domain name (ip) [3.236.66.54]: Port [80]: Zebrunner URL: http://3.236.66.54:80 Continue? y/n [y]:y Press Enter to keep default values displayed in square brackets. Choose S3 compatible storage service for video, screenshots and logs artifacts. By default embedded Minio storage is configured: Use AWS S3 bucket for storing test artifacts (logs, video, screenshots etc)? Embedded Minio Storage can be configured if you don't have Amazon account. Use? y/n [n]:n To use AWS S3 storage generate bucket according to the steps and provide it's settings. Provide SMTP integration to be able to send emailable reports: Use SMTP for emailing test results? Use? y/n [n]:y Host [smtp.gmail.com]: Port [587]: Sender email []: myemail@gmail.com User []: myemail Password []: mypassword SMTP Integration host=smtp.gmail.com:587 email=myemail@gmail.com user=myemail password=mypassword Continue? y/n [y]:y Keep SonarQube to organize continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities etc: Use embedded SonarQube to organize static code analysis and guiding your team? Enable? y/n [y]:y Keep Jenkins to establish automation testing CI/CD in accordance with Infrastructure as Code processes: Use embedded Jenkins as recommended CI tool? Enable? y/n [y]:y Keep light-weight Selenium Hub to be able to execute test automation on browsers: Use embedded Web Selenium Hub for testing on chrome, firefox, opera and MicrosoftEdge browsers? Enable? y/n [y]:y Keep MCloud to be able to register your physical mobile devices and emulators and execute native and mobile web testing. Use embedded Mobile Device Farm and Selenium/Appium Hub for testing on Android, iOS, AppleTV etc devices? Enable? y/n [y]:y Review pre-generated credentials and components links. Later you can find them in NOTICE.txt file Copy and save auto-generated crendentials. Detailes can be found also in NOTICE.txt ZEBRUNNER URL: http://3.236.66.54:80 REPORTING SERVICE CREDENTIALS: USER: admin/changeit IAM POSTGRES: postgres/7GyFmdnsHQJEePeDQa1kYpknrgu7tUtVMGQ00p9ARP5qDBck REPORTING POSTGRES: postgres/m1lkBtdEKXqLzX48HA9gmvRrvlJbcWqM4jsayl0xTBheobij RABBITMQ: admin/CZrbcTBh0ACHoDYuiMmbNz9jmJ2o2OESKOjmCI9R50NxDOT2 REDIS: rfdQgjU6JR4BlpflBxPSuECcyL8grjT38XmF8utyfl5RPzOn REPORTING SMTP INTEGRATIONS: SMTP HOST: smtp.gmail.com:587 EMAIL: myemail@gmail.com USER: myemail/mypassword JENKINS URL: http://3.236.66.54:80/jenkins JENKINS USER: admin/changeit SONARQUBE URL: http://3.236.66.54:80/sonarqube SONARQUBE USER: admin/admin SELENIUM HUB URL: http://3.236.66.54:80/selenoid/wd/hub STF URL: http://3.236.66.54:80/stf APPIUM HUB URL: http://3.236.66.54:80/mcloud/wd/hub Start Services: WARNING! Your services needs to be started after setup. Start now? y/n [y]:y Manage services Use ./zebrunner.sh script to start/stop/restart etc Zebrunner Community Edition services ./zebrunner.sh Usage: ./zebrunner.sh [option] Flags: --help | -h Print help Arguments: setup Setup Zebrunner Community Edition start Start container stop Stop and keep container restart Restart container down Stop and remove container shutdown Stop and remove container, clear volumes backup Backup container restore Restore container upgrade Upgrade to the latest version of Zebrunner Community Edition version Version of components For more help join telegram channel: https://t.me/zebrunner To reconfigure services, disable/enable components, setup distributed environments re-execute again setup procedure and provide updated inputs Support Channel Join Telegram channel in case of any question","title":"Installation Guide"},{"location":"install-guide/#installation-guide","text":"","title":"Installation Guide"},{"location":"install-guide/#setup-services","text":"Clone Zebrunner CE recursive and launch setup procedure git clone --recurse-submodule https://github.com/zebrunner/community-edition.git cd community-edition ./zebrunner.sh setup Provide valid protocol, host address or fully qualified domain name and port: Zebrunner General Settings Protocol [http]: Fully qualified domain name (ip) [3.236.66.54]: Port [80]: Zebrunner URL: http://3.236.66.54:80 Continue? y/n [y]:y Press Enter to keep default values displayed in square brackets. Choose S3 compatible storage service for video, screenshots and logs artifacts. By default embedded Minio storage is configured: Use AWS S3 bucket for storing test artifacts (logs, video, screenshots etc)? Embedded Minio Storage can be configured if you don't have Amazon account. Use? y/n [n]:n To use AWS S3 storage generate bucket according to the steps and provide it's settings. Provide SMTP integration to be able to send emailable reports: Use SMTP for emailing test results? Use? y/n [n]:y Host [smtp.gmail.com]: Port [587]: Sender email []: myemail@gmail.com User []: myemail Password []: mypassword SMTP Integration host=smtp.gmail.com:587 email=myemail@gmail.com user=myemail password=mypassword Continue? y/n [y]:y Keep SonarQube to organize continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities etc: Use embedded SonarQube to organize static code analysis and guiding your team? Enable? y/n [y]:y Keep Jenkins to establish automation testing CI/CD in accordance with Infrastructure as Code processes: Use embedded Jenkins as recommended CI tool? Enable? y/n [y]:y Keep light-weight Selenium Hub to be able to execute test automation on browsers: Use embedded Web Selenium Hub for testing on chrome, firefox, opera and MicrosoftEdge browsers? Enable? y/n [y]:y Keep MCloud to be able to register your physical mobile devices and emulators and execute native and mobile web testing. Use embedded Mobile Device Farm and Selenium/Appium Hub for testing on Android, iOS, AppleTV etc devices? Enable? y/n [y]:y Review pre-generated credentials and components links. Later you can find them in NOTICE.txt file Copy and save auto-generated crendentials. Detailes can be found also in NOTICE.txt ZEBRUNNER URL: http://3.236.66.54:80 REPORTING SERVICE CREDENTIALS: USER: admin/changeit IAM POSTGRES: postgres/7GyFmdnsHQJEePeDQa1kYpknrgu7tUtVMGQ00p9ARP5qDBck REPORTING POSTGRES: postgres/m1lkBtdEKXqLzX48HA9gmvRrvlJbcWqM4jsayl0xTBheobij RABBITMQ: admin/CZrbcTBh0ACHoDYuiMmbNz9jmJ2o2OESKOjmCI9R50NxDOT2 REDIS: rfdQgjU6JR4BlpflBxPSuECcyL8grjT38XmF8utyfl5RPzOn REPORTING SMTP INTEGRATIONS: SMTP HOST: smtp.gmail.com:587 EMAIL: myemail@gmail.com USER: myemail/mypassword JENKINS URL: http://3.236.66.54:80/jenkins JENKINS USER: admin/changeit SONARQUBE URL: http://3.236.66.54:80/sonarqube SONARQUBE USER: admin/admin SELENIUM HUB URL: http://3.236.66.54:80/selenoid/wd/hub STF URL: http://3.236.66.54:80/stf APPIUM HUB URL: http://3.236.66.54:80/mcloud/wd/hub Start Services: WARNING! Your services needs to be started after setup. Start now? y/n [y]:y","title":"Setup services"},{"location":"install-guide/#manage-services","text":"Use ./zebrunner.sh script to start/stop/restart etc Zebrunner Community Edition services ./zebrunner.sh Usage: ./zebrunner.sh [option] Flags: --help | -h Print help Arguments: setup Setup Zebrunner Community Edition start Start container stop Stop and keep container restart Restart container down Stop and remove container shutdown Stop and remove container, clear volumes backup Backup container restore Restore container upgrade Upgrade to the latest version of Zebrunner Community Edition version Version of components For more help join telegram channel: https://t.me/zebrunner To reconfigure services, disable/enable components, setup distributed environments re-execute again setup procedure and provide updated inputs","title":"Manage services"},{"location":"install-guide/#support-channel","text":"Join Telegram channel in case of any question","title":"Support Channel"},{"location":"prerequisites/","text":"Prerequisites System requirements Hardware requirements Requirements Operating System Ubuntu 16.04 - 21.10 Linux CentOS 7+ Amazon Linux 2 CPU 8+ Cores Memory 32 Gb RAM Free space SSD 128Gb+ of free space All in one standalone deployment supports up to 5 parallel executors for web and api tests. The most optimal EC2 instance type is t3a.2xlarge with enabled \"T2/T3 Unlimited\" feature Software requirements Install docker ( Ubuntu 16.04 , Ubuntu 18.04 , Ubuntu 20.04 , Amazon Linux 2 , Redhat/Cent OS ) Install docker-composer 1.29.2 Install git 2.20.0+ Security requirements NGiNX WebServer port is shared By default 80 for http and 443 for https","title":"Prerequisites"},{"location":"prerequisites/#prerequisites","text":"","title":"Prerequisites"},{"location":"prerequisites/#system-requirements","text":"","title":"System requirements"},{"location":"prerequisites/#hardware-requirements","text":"Requirements Operating System Ubuntu 16.04 - 21.10 Linux CentOS 7+ Amazon Linux 2 CPU 8+ Cores Memory 32 Gb RAM Free space SSD 128Gb+ of free space All in one standalone deployment supports up to 5 parallel executors for web and api tests. The most optimal EC2 instance type is t3a.2xlarge with enabled \"T2/T3 Unlimited\" feature","title":"Hardware requirements"},{"location":"prerequisites/#software-requirements","text":"Install docker ( Ubuntu 16.04 , Ubuntu 18.04 , Ubuntu 20.04 , Amazon Linux 2 , Redhat/Cent OS ) Install docker-composer 1.29.2 Install git 2.20.0+","title":"Software requirements"},{"location":"prerequisites/#security-requirements","text":"NGiNX WebServer port is shared By default 80 for http and 443 for https","title":"Security requirements"},{"location":"user-guide/","text":"User Guide Preconditions TestNG repository is available. For quick start use carina archetype Infrustructure is deployed, and optionally onPullRequest/onPush events configured. Continious Intergration (Jenkins) All test jobs are created and maintained automatically according to IaC processes. For every TestNG suite dedicated job is created. For example visit carina suites Test Jobs (API/Web/Mobile) Use special annotations to define jobs name, ownership, schedule coverage matrix etc, for example API-Demo-Test Test Jobs can be executed on-demand, scheduled, included into different testing layers (Smoke, Regression, etc.). Create a Job Open TestNG suite xml file Fill the bunch of parameters in your xml: Commit and merge. After scan is finished (automatic or manual execution of SYSTEM->onPush job) \"Job1\" test job is created in Jenkins. Also you can register custom jenkins job fields if neccessary: Run a Job Steps: Login to Jenkins Go to organization/repository and open a Job Click Build with Parameters and run Build When Job is completed analyze published reports/logs (Zebrunner Report and TestNG reports) Schedule a Job Open TestNG suite xml file Declare \"scheduling\" parameter : Note: Provide regular Jenkins Cron expression as a value. To organize multiple schedules use \"::\" as separator: Commit and merge. Delete a Job Delete TestNG suite xml file Commit and merge. Ask your administrator to remove the Job on Jenkins. Cron Jobs (Layer of Testing) Jenkins Pipeline Cron - this is a job that can execute different suites/jobs in scope of single run. Test Job can be assigned to testing layer(cron) using \"jenkinsRegressionPipeline\" annotation. Create a Cron Open TestNG suite xml file Declare \"jenkinsRegressionPipeline\" property in xml: Commit and merge. After scan is finished (automatic or manual) nightly_regression and full_regression crons are created in Jenkins. During execution nightly_regression or full_regression crons current test suite(job) must be executed. How to Set up Configuration Matrix Open TestNG suite xml file Declare \"jenkinsRegressionMatrix\" property in xml: Commit and merge. After scan is finished (automatic or manual) Carina-Demo-Regression-Pipeline cron job is created in Jenkins. Every time you run Carina-Demo-Regression-Pipeline job it should start your suite xml child job twice for DEMO and PROD environments using appropriate branches. Note: Any param values pairs can be provided. Comma separated - for single job params. Semicolon separated for multiple child job params. Run a Cron Steps: Go to organization/repository and open a Cron Job Note: There is a \"CRON\" view for such kind of jobs Click Build with Parameters and run Build Cron Job should trigger children jobs according to desired configuration matrix When Cron and children jobs are finished analyze children jobs' reports/logs (Zebrunner Report and TestNG reports) Schedule a Cron Open any child TestNG suite xml file Declare \"jenkinsRegressionScheduling\" parameter : Commit and merge. After scan is finished (automatic or manual) Carina-Demo-Regression-Pipeline is created and sheduled to run periodically in Jenkins. Delete a Cron Open each TestNG suite xml file(s) and remove declaration of \"jenkinsRegressionPipeline\" property. Commit and merge. Ask your administrator to delete Cron job in Jenkins Special Annotations To start there are a number of additional parameters that can be added to an existing Test Suite xml. These parameters are: jenkinsJobName - This property is just the name that Jenkins should create a job for, the normal pattern here is to include the platform name in the job itself to make it easier to find inside of Jenkins. jenkinsJobDisabled - This property is for disable job on Jenkins. jenkinsJobType \u2013 This property tells Jenkins what type of job it is. This field can take a \u201cweb\u201d, \u201capi\u201d, \u201cios\u201d, \u201candroid\u201d value. For each type of job appropriate capabilities and parameter are generated. If value set to \u201capi\u201d \u2013 Jenkins knows that there is no need to use web browser for run this Test Suite. If value set to \u201cweb\u201d \u2013 Jenkins will use web browser to run the Test. Chrome browser will be used by default. If value set to \u201cios\u201d \u2013 ios native application test job. If value set to \u201candroid\u201d \u2013 android native application test job. capabilities - This property is extended W3C driver capabilities. scheduling - This property is for running jobs by the schedule. jenkinsGroups - This property is for running jobs in accordance with testng groups annotation. jenkinsEmail - This property takes a comma separated list of emails/distribution lists that end results of a Test Suite will be emailed to. jenkinsFailedEmail - This property takes a comma separated list of emails/distribution lists that end results of a Test Suite that contains failures will be emailed to. jenkinsRegressionPipeline - This property takes a comma separated string of the various pipelines that a specific Test Suite will be attached to. jenkinsEnvironments - This property takes a comma separated string of the various environments that might be tested for that particular suite i.e. PROD, QA, DEV, STAGE, BETA, etc. jenkinsJobExecutionOrder - This property takes a number value and allows for a pipeline to be generated which will run tests in a sequential synchronous manner, compared to the default asynchronous manner. jenkinsJobExecutionMode - This property is only consumed when a jenkinsJobExecutionOrder has been set on a pipeline which would put that pipeline into a synchronous mode and takes a value of \"continue\" or \"abort\". When it is \"abort\" we halt the entire pipeline as only failed job detected. It might be useful to setup extended health-check scenarios. jenkinsRegressionMatrix - This property we use for creating configuration test matrix. overrideFields - This property takes any number of custom fields that need to be available at run-time for a job to run successfully. They can override any CI parameter forcibly. jenkinsSlackChannels - This property is responsible for send test run results to Slack channel via slack-api. jenkinsFailedSlackChannels - This property takes a comma separated list of slack channels to notify about failures. jenkinsDefaultRetryCount - This property allows to provide custom retry_count property (number of extra attempts for test execution). jenkinsNodeLabel - This property allows to override slave label and execute test on custom server. overrideFields - This property allows to add custom Fields that can override default fields. provider - This property is for add provider for test job. jenkinsAutoScreenshot - This property is a boolean parameter mostly to enable auto_screenshot which is disabled by default. Support Channel Join Telegram channel in case of any question","title":"User Guide"},{"location":"user-guide/#user-guide","text":"","title":"User Guide"},{"location":"user-guide/#preconditions","text":"TestNG repository is available. For quick start use carina archetype Infrustructure is deployed, and optionally onPullRequest/onPush events configured.","title":"Preconditions"},{"location":"user-guide/#continious-intergration-jenkins","text":"All test jobs are created and maintained automatically according to IaC processes. For every TestNG suite dedicated job is created. For example visit carina suites","title":"Continious Intergration (Jenkins)"},{"location":"user-guide/#test-jobs-apiwebmobile","text":"Use special annotations to define jobs name, ownership, schedule coverage matrix etc, for example API-Demo-Test Test Jobs can be executed on-demand, scheduled, included into different testing layers (Smoke, Regression, etc.).","title":"Test Jobs (API/Web/Mobile)"},{"location":"user-guide/#create-a-job","text":"Open TestNG suite xml file Fill the bunch of parameters in your xml: Commit and merge. After scan is finished (automatic or manual execution of SYSTEM->onPush job) \"Job1\" test job is created in Jenkins. Also you can register custom jenkins job fields if neccessary: ","title":"Create a Job"},{"location":"user-guide/#run-a-job","text":"Steps: Login to Jenkins Go to organization/repository and open a Job Click Build with Parameters and run Build When Job is completed analyze published reports/logs (Zebrunner Report and TestNG reports)","title":"Run a Job"},{"location":"user-guide/#schedule-a-job","text":"Open TestNG suite xml file Declare \"scheduling\" parameter : Note: Provide regular Jenkins Cron expression as a value. To organize multiple schedules use \"::\" as separator: Commit and merge.","title":"Schedule a Job"},{"location":"user-guide/#delete-a-job","text":"Delete TestNG suite xml file Commit and merge. Ask your administrator to remove the Job on Jenkins.","title":"Delete a Job"},{"location":"user-guide/#cron-jobs-layer-of-testing","text":"Jenkins Pipeline Cron - this is a job that can execute different suites/jobs in scope of single run. Test Job can be assigned to testing layer(cron) using \"jenkinsRegressionPipeline\" annotation.","title":"Cron Jobs (Layer of Testing)"},{"location":"user-guide/#create-a-cron","text":"Open TestNG suite xml file Declare \"jenkinsRegressionPipeline\" property in xml: Commit and merge. After scan is finished (automatic or manual) nightly_regression and full_regression crons are created in Jenkins. During execution nightly_regression or full_regression crons current test suite(job) must be executed.","title":"Create a Cron"},{"location":"user-guide/#how-to-set-up-configuration-matrix","text":"Open TestNG suite xml file Declare \"jenkinsRegressionMatrix\" property in xml: Commit and merge. After scan is finished (automatic or manual) Carina-Demo-Regression-Pipeline cron job is created in Jenkins. Every time you run Carina-Demo-Regression-Pipeline job it should start your suite xml child job twice for DEMO and PROD environments using appropriate branches. Note: Any param values pairs can be provided. Comma separated - for single job params. Semicolon separated for multiple child job params.","title":"How to Set up Configuration Matrix"},{"location":"user-guide/#run-a-cron","text":"Steps: Go to organization/repository and open a Cron Job Note: There is a \"CRON\" view for such kind of jobs Click Build with Parameters and run Build Cron Job should trigger children jobs according to desired configuration matrix When Cron and children jobs are finished analyze children jobs' reports/logs (Zebrunner Report and TestNG reports)","title":"Run a Cron"},{"location":"user-guide/#schedule-a-cron","text":"Open any child TestNG suite xml file Declare \"jenkinsRegressionScheduling\" parameter : Commit and merge. After scan is finished (automatic or manual) Carina-Demo-Regression-Pipeline is created and sheduled to run periodically in Jenkins.","title":"Schedule a Cron"},{"location":"user-guide/#delete-a-cron","text":"Open each TestNG suite xml file(s) and remove declaration of \"jenkinsRegressionPipeline\" property. Commit and merge. Ask your administrator to delete Cron job in Jenkins","title":"Delete a Cron"},{"location":"user-guide/#special-annotations","text":"To start there are a number of additional parameters that can be added to an existing Test Suite xml. These parameters are: jenkinsJobName - This property is just the name that Jenkins should create a job for, the normal pattern here is to include the platform name in the job itself to make it easier to find inside of Jenkins. jenkinsJobDisabled - This property is for disable job on Jenkins. jenkinsJobType \u2013 This property tells Jenkins what type of job it is. This field can take a \u201cweb\u201d, \u201capi\u201d, \u201cios\u201d, \u201candroid\u201d value. For each type of job appropriate capabilities and parameter are generated. If value set to \u201capi\u201d \u2013 Jenkins knows that there is no need to use web browser for run this Test Suite. If value set to \u201cweb\u201d \u2013 Jenkins will use web browser to run the Test. Chrome browser will be used by default. If value set to \u201cios\u201d \u2013 ios native application test job. If value set to \u201candroid\u201d \u2013 android native application test job. capabilities - This property is extended W3C driver capabilities. scheduling - This property is for running jobs by the schedule. jenkinsGroups - This property is for running jobs in accordance with testng groups annotation. jenkinsEmail - This property takes a comma separated list of emails/distribution lists that end results of a Test Suite will be emailed to. jenkinsFailedEmail - This property takes a comma separated list of emails/distribution lists that end results of a Test Suite that contains failures will be emailed to. jenkinsRegressionPipeline - This property takes a comma separated string of the various pipelines that a specific Test Suite will be attached to. jenkinsEnvironments - This property takes a comma separated string of the various environments that might be tested for that particular suite i.e. PROD, QA, DEV, STAGE, BETA, etc. jenkinsJobExecutionOrder - This property takes a number value and allows for a pipeline to be generated which will run tests in a sequential synchronous manner, compared to the default asynchronous manner. jenkinsJobExecutionMode - This property is only consumed when a jenkinsJobExecutionOrder has been set on a pipeline which would put that pipeline into a synchronous mode and takes a value of \"continue\" or \"abort\". When it is \"abort\" we halt the entire pipeline as only failed job detected. It might be useful to setup extended health-check scenarios. jenkinsRegressionMatrix - This property we use for creating configuration test matrix. overrideFields - This property takes any number of custom fields that need to be available at run-time for a job to run successfully. They can override any CI parameter forcibly. jenkinsSlackChannels - This property is responsible for send test run results to Slack channel via slack-api. jenkinsFailedSlackChannels - This property takes a comma separated list of slack channels to notify about failures. jenkinsDefaultRetryCount - This property allows to provide custom retry_count property (number of extra attempts for test execution). jenkinsNodeLabel - This property allows to override slave label and execute test on custom server. overrideFields - This property allows to add custom Fields that can override default fields. provider - This property is for add provider for test job. jenkinsAutoScreenshot - This property is a boolean parameter mostly to enable auto_screenshot which is disabled by default.","title":"Special Annotations"},{"location":"user-guide/#support-channel","text":"Join Telegram channel in case of any question","title":"Support Channel"},{"location":"integration/aws-s3/","text":"AWS S3 Bucket Create bucket Create new bucket in AWS S3 choose region closer to your location In bucket \"Public Access Settings\" uncheck all properties Security will be configured via UserAgent token * In \"Bucket Policy\" put below json: { \"Version\": \"2012-10-17\", \"Statement\": [ { \"Sid\": \"AllowGetObject\", \"Effect\": \"Allow\", \"Principal\": \"*\", \"Action\": \"s3:GetObject\", \"Resource\": \"arn:aws:s3:::MYBUCKET/*\", \"Condition\": { \"StringLike\": { \"aws:UserAgent\": \"MyStrongPassword\" } } } ] } replacing MYBUCKET with actual name and putting password instead of MyStrongPassword Provide MYBUCKET as Bucket and MyStrongPassword as UserAgent key during setup procedure Create user Goto IAM -> Policies -> Create Policy -> Active JSON Put below value, replacing MYBUCKET with actual value { \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"s3:ListAllMyBuckets\", \"Resource\": \"arn:aws:s3:::*\" }, { \"Effect\": \"Allow\", \"Action\": \"s3:*\", \"Resource\": [ \"arn:aws:s3:::MYBUCKET\", \"arn:aws:s3:::MYBUCKET/*\" ] } ] } Click Review policy -> specify name like zebrunner-s3-writer-policy -> Create Policy Goto IAM -> Users -> Add User Specify username like zebrunner-s3-user -> Pick \u201cProgrammatic access\u201d -> Next: Permissions: -> Attach existing policies directly Choose previously created policy -> Next: Tags -> Next: Review -> Create User Provide user keys as Access key and Secret key during setup procedure","title":"S3 Storage"},{"location":"integration/aws-s3/#aws-s3-bucket","text":"","title":"AWS S3 Bucket"},{"location":"integration/aws-s3/#create-bucket","text":"Create new bucket in AWS S3 choose region closer to your location In bucket \"Public Access Settings\" uncheck all properties Security will be configured via UserAgent token * In \"Bucket Policy\" put below json: { \"Version\": \"2012-10-17\", \"Statement\": [ { \"Sid\": \"AllowGetObject\", \"Effect\": \"Allow\", \"Principal\": \"*\", \"Action\": \"s3:GetObject\", \"Resource\": \"arn:aws:s3:::MYBUCKET/*\", \"Condition\": { \"StringLike\": { \"aws:UserAgent\": \"MyStrongPassword\" } } } ] } replacing MYBUCKET with actual name and putting password instead of MyStrongPassword Provide MYBUCKET as Bucket and MyStrongPassword as UserAgent key during setup procedure","title":"Create bucket"},{"location":"integration/aws-s3/#create-user","text":"Goto IAM -> Policies -> Create Policy -> Active JSON Put below value, replacing MYBUCKET with actual value { \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"s3:ListAllMyBuckets\", \"Resource\": \"arn:aws:s3:::*\" }, { \"Effect\": \"Allow\", \"Action\": \"s3:*\", \"Resource\": [ \"arn:aws:s3:::MYBUCKET\", \"arn:aws:s3:::MYBUCKET/*\" ] } ] } Click Review policy -> specify name like zebrunner-s3-writer-policy -> Create Policy Goto IAM -> Users -> Add User Specify username like zebrunner-s3-user -> Pick \u201cProgrammatic access\u201d -> Next: Permissions: -> Attach existing policies directly Choose previously created policy -> Next: Tags -> Next: Review -> Create User Provide user keys as Access key and Secret key during setup procedure","title":"Create user"},{"location":"integration/scm/","text":"Source Code Manager Integration Setup webhook events (push and pull requests) In order to enable full CI/CD workflow you need to add a webhook to your repository registered in Zebrunner, this webhook will trigger onPush and onPullRequests events on the CI component (Jenkins by default). After each Push and Pull Request events, related Jenkins jobs will pull your repository, scan and generate new test jobs automatically and optionally execute the static code analysis via the sonarqube. Configure required credentials After you register a repository a jenkins credential is generated with the format of orgName-scmType-webhook-token , this credential needs to be updated with a personal access token generated in your repository scm. Note: this jenkins credentials are globally used for each repository of an organization registered in zebrunner. Github access token Follow steps 1-9 here to create your GitHub personal access token. Grant access for the following permissions: repo and admin:repo_hook . Gitlab access token Follow steps 1-7 here to create your Gitlab personal access token. In step 5 select the api, read_repository, write_repository scopes. BitBucket Cloud token Open your terminal and run the following command echo -n username:password | base64 where username and password are your BitBucket credentials, this will return a token encoded in base64. Note: make sure to copy your token as your are going to need it in the Configure Webhooks and Update Jenkins Credentials sections. Update Jenkins Credentials Go to Jenkins > Manage Jenkins > Manage credentials . Find your orgName-scmType-webhook-token credential and click on the ID. Update the Secret text with your correspondent scm token. Click save. Configure Webhooks GitHub: Configure Webhook for Pushes and Pull Requests Go to your GitHub repository page > Settings > Webhooks > Add webhook . Add http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=github-token-here into \"Payload URL\" field. Select application/json in \"Content Type\" field. Click Let me select individual events and select Pushes, Pull Requests . Click Add webhook . Gitlab: Configure Webhook for Pushes and Pull Requests Go to your Gitlab repository page > Settings > Webhooks . Add http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=gitlab-token-here into \"Payload URL\" field. \"Secret Token\" is empty field. Select Push and Merge Requests events . Click Add webhook . BitBucket Cloud: Configure Webhook for Pushes Go to your BitBucket repository page > Repository Settings > Webhooks > add webhook . Enter http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=bitbucket-token-here into URL field. Check that Repository push is selected. Click Save . Support Channel Join Telegram channel in case of any question","title":"Source Code Manager"},{"location":"integration/scm/#source-code-manager-integration","text":"","title":"Source Code Manager Integration"},{"location":"integration/scm/#setup-webhook-events-push-and-pull-requests","text":"In order to enable full CI/CD workflow you need to add a webhook to your repository registered in Zebrunner, this webhook will trigger onPush and onPullRequests events on the CI component (Jenkins by default). After each Push and Pull Request events, related Jenkins jobs will pull your repository, scan and generate new test jobs automatically and optionally execute the static code analysis via the sonarqube.","title":"Setup webhook events (push and pull requests)"},{"location":"integration/scm/#configure-required-credentials","text":"After you register a repository a jenkins credential is generated with the format of orgName-scmType-webhook-token , this credential needs to be updated with a personal access token generated in your repository scm. Note: this jenkins credentials are globally used for each repository of an organization registered in zebrunner.","title":"Configure required credentials"},{"location":"integration/scm/#github-access-token","text":"Follow steps 1-9 here to create your GitHub personal access token. Grant access for the following permissions: repo and admin:repo_hook .","title":"Github access token"},{"location":"integration/scm/#gitlab-access-token","text":"Follow steps 1-7 here to create your Gitlab personal access token. In step 5 select the api, read_repository, write_repository scopes.","title":"Gitlab access token"},{"location":"integration/scm/#bitbucket-cloud-token","text":"Open your terminal and run the following command echo -n username:password | base64 where username and password are your BitBucket credentials, this will return a token encoded in base64. Note: make sure to copy your token as your are going to need it in the Configure Webhooks and Update Jenkins Credentials sections.","title":"BitBucket Cloud token"},{"location":"integration/scm/#update-jenkins-credentials","text":"Go to Jenkins > Manage Jenkins > Manage credentials . Find your orgName-scmType-webhook-token credential and click on the ID. Update the Secret text with your correspondent scm token. Click save.","title":"Update Jenkins Credentials"},{"location":"integration/scm/#configure-webhooks","text":"","title":"Configure Webhooks"},{"location":"integration/scm/#github-configure-webhook-for-pushes-and-pull-requests","text":"Go to your GitHub repository page > Settings > Webhooks > Add webhook . Add http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=github-token-here into \"Payload URL\" field. Select application/json in \"Content Type\" field. Click Let me select individual events and select Pushes, Pull Requests . Click Add webhook .","title":"GitHub: Configure Webhook for Pushes and Pull Requests"},{"location":"integration/scm/#gitlab-configure-webhook-for-pushes-and-pull-requests","text":"Go to your Gitlab repository page > Settings > Webhooks . Add http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=gitlab-token-here into \"Payload URL\" field. \"Secret Token\" is empty field. Select Push and Merge Requests events . Click Add webhook .","title":"Gitlab: Configure Webhook for Pushes and Pull Requests"},{"location":"integration/scm/#bitbucket-cloud-configure-webhook-for-pushes","text":"Go to your BitBucket repository page > Repository Settings > Webhooks > add webhook . Enter http://your-zebrunner-domain.com/jenkins/generic-webhook-trigger/invoke?token=bitbucket-token-here into URL field. Check that Repository push is selected. Click Save .","title":"BitBucket Cloud: Configure Webhook for Pushes"},{"location":"integration/scm/#support-channel","text":"Join Telegram channel in case of any question","title":"Support Channel"},{"location":"integration/sonarqube/","text":"SonarQube Integration The sonarqube static analysis is invoked for each webhook event triggered on your target repository(pushes and/or pull/merge requests). If the event is a pull/merge request the reports from the sonarqube analysis will be decorated into the pull request itself for the correspondant scm system. On the contrary, only the analysis will run for push events. Note: default credentials for embedded sonarqube are: admin/admin. Please, change them after 1st login Login to SonarQube Go to My Account > Security Generate new token using Global Analysis Token type and No expiration Login to the Jenkins, go to Manage Jenkins > System Configuration > Global Properties Search for SONAR_TOKEN and put generated value > To integrate private sonarqube server update also SONAR_URL global env variable. GitHub configuration To enable pull request decoration on your github repository you need to create a GitHub App , its purpose is to publish the sonarqube reports generated on the webhook event being processed as checks into the pull request itself on github. Steps were generated based on original Sonarqube article Create a GitHub App Follow Steps 1\u20134 here to start creating your GitHub App Under GitHub App name , give your app a name, such as SonarQubePRDecorator. Add a Homepage URL . GitHub requires this, but it isn't important for Pull Request decoration. You can use any URL, such as https://zebrunner.com/. Enter your User authorization callback URL . Set this to your instance's base URL. For example, https://your-zebrunner-domain/sonarqube/oauth2/callback Add Webhook URL . Set this to your instance's base URL. For example, https://zebrunner.com/. Grant access for the following Permissions : Permission Access Checks Read & Write Metadata Read-Only Pull Requests Read & Write Commit statuses Read-only Contents Read-only Email addresses Read-only Members Read-only Projects Read-only Note: if your are using Github Enterprise the permission \"Metadata\" is renamed to \"Repository Metadata\" Under \"Where can this GitHub App be installed?\" select Any account. Click Create GitHub App . This will take you to your new GitHub App's page. Scroll down to the bottom of your app page and click Generate Private Key. This downloads a .pem file that you'll use in the Configure SonarQube server section. Tip: in order to acces the private key open the .pem file with your favorite text editor. Install your app Once the app is created, you need to install it in your target organization to grant acces to all of your repositories with the permissions specified in the Create a [GitHub App] section. Install your GitHub App from the app's settings page. Go to your GitHub profile > Developer settings > GitHub Apps > Your app name > Install App Select the organization to install the app Select All repositories Click install Note: You can select specific repositories, so the github application will have access only for those specified Configure SonarQube with your app Login into your SonarQube instance Go to Administration > DevOps Platform Integrations > GitHub create configuration using your GitHub App ID, Client ID, Client Secret and Private Key Note: make sure to copy all content from the .pem file generated in the Create GitHub App section Configure DevOps Integration for your project Login into your SonarQube instance Go to your project General Settings > DevOps Platform Integrations Choose Configuration name , specify Repository name and Enable analysis summary under the GitHub Conversation tab Pull Request decoration example When you create a pull and the sonar analysis reported issues, your pull request will be decorated with those issues and links to the sonarqube instance with your project. Gitlab, Bitbucket and Azure configuration Visit original Sonarqube integration guide Configure sonarqube base URL This will serve static context(such as images, links, etc.) for pull/merge requests decoration. Follow the below steps to configure your server base URL: Add your SonarQube server under Administration > Configuration > General Settings > Server base URL Tip: If you are missing images in your decorated pull/merge request it is probably due to configuration issues or the sonarqube server being unavailable at that moment. Support Channel Join Telegram channel in case of any question","title":"SonarQube"},{"location":"integration/sonarqube/#sonarqube-integration","text":"The sonarqube static analysis is invoked for each webhook event triggered on your target repository(pushes and/or pull/merge requests). If the event is a pull/merge request the reports from the sonarqube analysis will be decorated into the pull request itself for the correspondant scm system. On the contrary, only the analysis will run for push events. Note: default credentials for embedded sonarqube are: admin/admin. Please, change them after 1st login Login to SonarQube Go to My Account > Security Generate new token using Global Analysis Token type and No expiration Login to the Jenkins, go to Manage Jenkins > System Configuration > Global Properties Search for SONAR_TOKEN and put generated value > To integrate private sonarqube server update also SONAR_URL global env variable.","title":"SonarQube Integration"},{"location":"integration/sonarqube/#github-configuration","text":"To enable pull request decoration on your github repository you need to create a GitHub App , its purpose is to publish the sonarqube reports generated on the webhook event being processed as checks into the pull request itself on github. Steps were generated based on original Sonarqube article","title":"GitHub configuration"},{"location":"integration/sonarqube/#create-a-github-app","text":"Follow Steps 1\u20134 here to start creating your GitHub App Under GitHub App name , give your app a name, such as SonarQubePRDecorator. Add a Homepage URL . GitHub requires this, but it isn't important for Pull Request decoration. You can use any URL, such as https://zebrunner.com/. Enter your User authorization callback URL . Set this to your instance's base URL. For example, https://your-zebrunner-domain/sonarqube/oauth2/callback Add Webhook URL . Set this to your instance's base URL. For example, https://zebrunner.com/. Grant access for the following Permissions : Permission Access Checks Read & Write Metadata Read-Only Pull Requests Read & Write Commit statuses Read-only Contents Read-only Email addresses Read-only Members Read-only Projects Read-only Note: if your are using Github Enterprise the permission \"Metadata\" is renamed to \"Repository Metadata\" Under \"Where can this GitHub App be installed?\" select Any account. Click Create GitHub App . This will take you to your new GitHub App's page. Scroll down to the bottom of your app page and click Generate Private Key. This downloads a .pem file that you'll use in the Configure SonarQube server section. Tip: in order to acces the private key open the .pem file with your favorite text editor.","title":"Create a GitHub App"},{"location":"integration/sonarqube/#install-your-app","text":"Once the app is created, you need to install it in your target organization to grant acces to all of your repositories with the permissions specified in the Create a [GitHub App] section. Install your GitHub App from the app's settings page. Go to your GitHub profile > Developer settings > GitHub Apps > Your app name > Install App Select the organization to install the app Select All repositories Click install Note: You can select specific repositories, so the github application will have access only for those specified","title":"Install your app"},{"location":"integration/sonarqube/#configure-sonarqube-with-your-app","text":"Login into your SonarQube instance Go to Administration > DevOps Platform Integrations > GitHub create configuration using your GitHub App ID, Client ID, Client Secret and Private Key Note: make sure to copy all content from the .pem file generated in the Create GitHub App section","title":"Configure SonarQube with your app"},{"location":"integration/sonarqube/#configure-devops-integration-for-your-project","text":"Login into your SonarQube instance Go to your project General Settings > DevOps Platform Integrations Choose Configuration name , specify Repository name and Enable analysis summary under the GitHub Conversation tab","title":"Configure DevOps Integration for your project"},{"location":"integration/sonarqube/#pull-request-decoration-example","text":"When you create a pull and the sonar analysis reported issues, your pull request will be decorated with those issues and links to the sonarqube instance with your project.","title":"Pull Request decoration example"},{"location":"integration/sonarqube/#gitlab-bitbucket-and-azure-configuration","text":"Visit original Sonarqube integration guide","title":"Gitlab, Bitbucket and Azure configuration"},{"location":"integration/sonarqube/#configure-sonarqube-base-url","text":"This will serve static context(such as images, links, etc.) for pull/merge requests decoration. Follow the below steps to configure your server base URL: Add your SonarQube server under Administration > Configuration > General Settings > Server base URL Tip: If you are missing images in your decorated pull/merge request it is probably due to configuration issues or the sonarqube server being unavailable at that moment.","title":"Configure sonarqube base URL"},{"location":"integration/sonarqube/#support-channel","text":"Join Telegram channel in case of any question","title":"Support Channel"}]}
\ No newline at end of file
diff --git a/sitemap.xml.gz b/sitemap.xml.gz
index 0f6eb6afde0fb96e0c55b349ce752eae30b4c727..6fbdde7c7c57a0a52676cf5f8910326200859228 100644
GIT binary patch
delta 14
VcmX@cc#M%vzMF$1W8Xx!0{|h^1k3;c
delta 14
VcmX@cc#M%vzMF&N|K5pg2LL3)1!4dI