Git Product home page Git Product logo

qps-pipeline's People

Contributors

alexandrecm avatar cboyle81 avatar ilya-varchenya avatar maksimsarychau avatar marinaverh avatar nazarenkav avatar sandinosanchez avatar sergeizagriychuk avatar tsvrko avatar vdelendik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qps-pipeline's Issues

pipeline: detect startup job reason cause

To be able to generate unified runner/scanner for the repo it would be nice to have single Jenkinsfile with ability to detect is it pr checker or merge/push startup and execute appropriate logic...

Adjust thread number counting to do it automatically during test run

...to avoid following errors:

org.openqa.selenium.WebDriverException: cannot create session QPS-HUB-* on any hosts after 1 attempt(s) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 300.00 seconds
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'
System info: host: '00953bdc2828', ip: '172.18.0.28', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-24-generic', java.version: '1.8.0_151'
Driver info: driver.version: AndroidDriver

com.qaprosoft.carina.core.foundation.webdriver.DriverPool.createDriver(DriverPool.java:370)
com.qaprosoft.carina.core.foundation.webdriver.DriverPool.getDriver(DriverPool.java:146)
com.qaprosoft.carina.core.foundation.webdriver.DriverPool.getDriver(DriverPool.java:98)
com.qaprosoft.carina.core.foundation.webdriver.DriverPool.getDriver(DriverPool.java:67)
com.qaprosoft.carina.core.foundation.utils.factory.CustomTypePageFactory.initPage(CustomTypePageFactory.java:59)

do not recreate already available cron pipeline jobs

To be able to manage extra actions for cron jobs it is supposed not to re-create them during scanner.
It will allow to adjust those items manually including:

  • custom cron trigger
  • custom project specific parameters

improve slave ip detection for debug mode

for now we write into the log and in UI zafira general host like "demo.qaprosoft.com" and port 8000.
this functionality should be improved in such way:

  1. pipeline Runner should detect current ip address

  2. this ip and port should be written in log

  3. wrap this functionality into separate protected method to be able to override on children level

improve pipeline for QPS-HUB to support execution iOS tests against emulators and real devices

  1. add new capability for mobile devices:
    emulated = true [false]

  2. adjust selenium-hub to be able to track new capability (by default is should be supported without any changes)

  3. adjust pipeline Runner for iOS mobile to detect build artifact extension.
    if it is ".ipa" then add capabilities.emulated=false
    if it is "
    .app" then capabilities.emulated=true
    also pay attantion for the zip like "...app.zip"

reuse /api/tests/runs/{id}/export zafira end-point to generate cross platform/language etc report

Current logic for generating local eTAF_report into dedicated location and replacing it by zafira has a lot of custom logic.
We should simplify this process a lot and incorporate into the pipeline runner steps for getting zafira results based on id/ci_run_id

Old logic to find and publish local report could be saved as well but using single findFiles logic and publish with different name: for example: eTAF_Local_Report

improve scanner logic to update only modified suites by default

  1. add new boolean field: onlyUpdated - true by default
  2. modify ignoreExisting functionality removing dependency onto the isUpdated(filter)
  3. if we execute job with onlyUpdated = true then
    a) skip execution when no suites updated (as previous)
    b) during registerObject call for job/cron do a verification that's appropriate suite was updated in latest commits

add browser_version support for dsl/pipeline and cron

for now browser_version was removed completely from job arguments.
I suggest:

  1. return it back as separate field (maybe hidden for the beginning
  2. adjust jobdsl for web use-case to insert appropriate hiddent fields
  3. improve cron parser supporting new notation with browser_version, i.e.:
    old one:

    new one

-> So if browsername contain space in jenkinsPipelibebrowsers then it is supposed to be a version. So we have to parse it correctly and generate 5 jobs during startup for:
-chrome *

  • firefox *
  • ie 9.0
    -ie *
    -edge 16.0

new default params for piepeline/cron jobs

Pipeline jobs should have such params:
priority - 5 as default and global choice list
env - empty by default as string param (think about global choice usage if possible)
browser - TDB. maybe empty again as default value

be able to exclude job from automatic recreation

Sometimes we test/debug new features on CI and update job manually adding extra arguments, changing existing one etc.
But as only push happens scanner recreate this job forcibly and we have to declare new fields again.

It would be nice to have possibility to avoid job re-creation via scanner.
Proposed solution:

  1. reuse description field for that putting into it some keyword like:
    DO NOT RECREATE, SCANNER-OUT etc :)
  2. scanner job before starting re-creation should just analyze description content and do not force re-creation until this description exists
  3. but to be informed that some jobs are not in sync with latest jobdsl/pipeline it is recommended t inform suite owners and swat admin team about it

git artifacts are not registered correctly

need adjust process and provide valid git args:
ci.setGitBranch(config.getString("git_branch", null));
ci.setGitCommit(config.getString("git_commit", null));
ci.setGitUrl(config.getString("git_url", null));

simplify packaging structure for the scripts

  1. remove com.qaprosoft.jenkins.repository package and move sub packages up
  2. remove com.qaprosoft.jenkins.repository.pipeline.v2 as we agreed do not support several versions of pipelines in the single bundle

Scheduling property is ignored

Details:

  1. within thw suite I want to run following parameter is set:

  2. following pipeline job is created on Jenkins:
    https://ua.qaprosoft.com/jenkins/job/Pipeline/job/MMF-Andoid-Minimal-Acceptance-Regression-Pipeline/

in wich following checkbox is checked: Build periodically
and the schedule is set according to the same parameter from within suite:

  1. there're no any errors in pipeline job or PipelineDSL job
    https://ua.qaprosoft.com/jenkins/job/Pipeline/job/MMF-Andoid-Minimal-Acceptance-Regression-Pipeline/65/console

https://ua.qaprosoft.com/jenkins/job/Management_Jobs/job/PipelineDSL/39/consoleFull

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.