Skip to content

Repository for housing continuous integration related scripts and files for SDL Core

License

Notifications You must be signed in to change notification settings

smartdevicelink/sdl_core_ci

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

sdl_core_ci

Repository for housing continuous integration related scripts and files for SDL Core.

https://opensdl-jenkins.prjdmz.luxoft.com/

Currently, we are using Jenkins server for the Continuous Integration process of our project. It is mainly used for the following functionality:

- building SDL_CORE / SDL_ATF
- running ATF test scripts to check implemented functionality
- checking coding style and cppcheck

Here is a matrix of build jobs:

Job's name mask Description
_P / _E / _H build on Proprietary / External Proprietary / HTTP flows
BWSS_OFF builds with disabled option: -DBUILD_WEBSOCKET_SERVER_SUPPORT=OFF
_noUT / _UT build without UnitTests / with UnitTest
_EL_OFF build with disabled logging: -DENABLE_LOG=OFF
_ES_OFF build with disabled security: -DENABLE_SECURITY=OFF
_UC_OFF build with UnitTests with disabled cotire option: -DUSE_COTIRE=OFF
_BCAF builds with disabled option: -DBUILD_CLOUD_APP_SUPPORT=OFF
_ATF_BUILD a job which builds ATF for reuse in all the ATF test jobs
_TCP ATF scripts jobs with TCP transport type
_WS ATF scripts jobs with WebSocket transport type
_WSS ATF scripts jobs with WebSocketSecured transport type
_OFF jobs view that are running on sdl_core built in *_BWSS_OFF jobs previously described

Main view builds shows ATF build, UnitTests coverage, and a lot of sdl_core build jobs with different flags.

There are several regression views that run all our ATF tests from develop on each Policy flow (Proprietary, External Proprietary, HTTP) and transport type (TCP, WebSocket, WebSocketSecured), on TCP using Remote ATF, and a view with ATF test jobs which use sdl_core built without WebSocket support.

SDL continuous integration strategy

SDL continuously checks code:

  • check style
  • static code analysis
  • build and unit tests
  • smoke automated tests
  • regression automated tests

Job artifacts contain build results, ATF reports, SDL logs, etc ...

CI strategy described in details in proposal

Develop nightly and push checks

Only TCP transport is checked on 3 policy flows.

Develop push and nightly builds are available in the develop push and nightly status view :

Develop branch push and nightly automated scripts checks available in the develop push and nightly status view :

Automated scripts

Automated scripts checks triggered by no unit tests SDL build jobs. Each job contains a description of ATF test sets that it includes.

Automated smoke tests

Contains basic checks from smoke_tests.txt

A test set executed for SDL build in 3 policy flows:

  • badge
  • badge
  • badge

Automated regression

Automated policy regression

Check full regression specific for each policy flow.

A test set executed for SDL build in 3 policy flows:

  • badge
  • badge
  • badge

Automated RC regression

Check full regression specific for remote control on each policy flow.

A test set executed for SDL build in 3 policy flows:

  • badge
  • badge
  • badge

Various features regression

Contains all ATF scripts for all featured available in the development. For parallel execution, checks are split to multiple jobs with make name template Develop_TCP_ATF_VF{X}_{P,H,E}. X is the number.

Full list of regression ATF jobs available on : https://opensdl-jenkins.prjdmz.luxoft.com/view/ATF_Regression_on_TCP/

PR to develop checks

Pull request jobs are available in view: https://opensdl-jenkins.prjdmz.luxoft.com/view/PR_checks/

PR checks :

  • code style
  • build with unit tests
  • smoke_tests.txt trigger by build with unit tests.

CI triggers PR checks for any PR if CI label is assigned to this PR.

For the first build Rebuild required comment needs to be placed into PR. However further builds will be triggered automatically by any push into source branch.

Weekly checks

List of develop jobs executed weekly

Unit tests coverage

Unit tests coverage check weekly in the job: badge

Full ATF regression

On Saturday, SDL CI performs a full regression check on these following transports: TCP, WebSockets, SecureWebSockets, and all 3 policy flow. Weekly builds are available on the view https://opensdl-jenkins.prjdmz.luxoft.com/view/Develop_weekly/

Each SDL build without unit tests triggers full ATF regression. List of triggered jobs available in each build job as Downstream projects, example: https://opensdl-jenkins.prjdmz.luxoft.com/view/all/job/Develop_SDL_NoUT_E_BWSS_OFF/

Full weekly status is available on https://opensdl-jenkins.prjdmz.luxoft.com/view/Develop_weekly_status/

Feature checks:

For each feature before merging to develop should be created a list of jobs similar to develop to check that feature will not introduce a regression. There is a special job on CI Feature job create that will create a list of jobs and a separate view for the feature. When feature is delivered and no checks for it is needed appropriate jobs on CI can be deleted with Feature job delete In case feature check should be canceled immediately there is Feature job cancel that allows to stop all running jobs (e.g. builds, ATF test runs) relative to feature.

Required input values for feature job:

  • Feature name (will be used for view title)
  • sdl_core feature branch and repository (master by default)
  • sdl_atf feature branch and repository (master by default)
  • sdl_atf_test_scripts feature branch and repository. (master by default)
  • Feature test set (optional)
  • Additional info : evolution proposal, links to issues, etc ...

After job execution will be created a view with the following checks:

  1. SDL build with unit tests on 3 policy flows (triggers: push, nightly)
  2. SDL build without unit tests on 3 policy flows (triggers: push, nightly)
  3. Smoke tests on 3 policy flows (triggers: build jobs without unit tests)
  4. Feature tests on 3 policy flows (triggers: build jobs without unit tests)
  5. Regression tests on 3 policy flows (triggers: build jobs without unit tests)

Special requests

In case of special request (not ordinary builds for special feature, restart certain jobs, etc, ...) please contact:

About

Repository for housing continuous integration related scripts and files for SDL Core

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages