diff --git a/jobs/templates/swh-cypress.groovy b/jobs/templates/swh-cypress.groovy index 7b38e7a..46f7c0a 100644 --- a/jobs/templates/swh-cypress.groovy +++ b/jobs/templates/swh-cypress.groovy @@ -1,83 +1,100 @@ pipeline {{ agent {{ label '{docker-image}' }} environment {{ PHAB_CONDUIT_URL = 'https://forge.softwareheritage.org/api/' }} stages {{ stage('Checkout') {{ steps {{ withCredentials([ string(credentialsId: 'swh-public-ci', variable: 'PHAB_CONDUIT_TOKEN')]) {{ sh ''' if [ -n "$PHID" ]; then python3 -m pyarcanist send-message work $PHID fi ''' }} checkout([$class: 'GitSCM', branches: [[name: "${{params.REVISION}}"]], doGenerateSubmoduleConfigurations: false, extensions: [], gitTool: 'Default', submoduleCfg: [], userRemoteConfigs: [[url: 'https://forge.softwareheritage.org/source/{display-name}.git']] ]) }} }} stage('Setup environment') {{ steps {{ sh '''#!/bin/bash python3 -m venv ~/swh-web-env source ~/swh-web-env/bin/activate pip3 install wheel pip3 install -e .[testing] - yarn install && yarn build-dev && yarn run cypress install + yarn install && yarn build-test && yarn run cypress install ''' }} }} stage('Run cypress tests') {{ steps {{ sh '''#!/bin/bash source ~/swh-web-env/bin/activate export PYTHONPATH=$PWD python3 swh/web/manage.py migrate python3 swh/web/manage.py createcachetable python3 swh/web/manage.py runserver --nostatic --settings=swh.web.settings.tests & wait-for-it localhost:5004 yarn run cypress run + yarn run mochawesome ''' }} }} }} post {{ always {{ withCredentials([ string(credentialsId: 'swh-public-ci', variable: 'PHAB_CONDUIT_TOKEN')]) {{ withEnv(["JOBSTATUS=${{currentBuild.currentResult}}"]) {{ sh ''' if [ "$JOBSTATUS" = "SUCCESS" ]; then MSGTYPE=pass else MSGTYPE=fail fi echo "Current job status is $JOBSTATUS -> $MGSTYPE" if [ -n "$PHID" ]; then python3 -m pyarcanist send-message $MSGTYPE $PHID fi ''' }} }} + publishHTML (target: [ + allowMissing: true, + alwaysLinkToLastBuild: false, + keepAll: true, + reportDir: 'cypress/mochawesome/report', + reportFiles: 'mochawesome.html', + reportName: "Mochawesome Tests Report" + ]) + publishHTML (target: [ + allowMissing: true, + alwaysLinkToLastBuild: false, + keepAll: true, + reportDir: 'cypress/coverage/lcov-report', + reportFiles: 'index.html', + reportName: "Istanbul Code Coverage" + ]) }} }} }} \ No newline at end of file diff --git a/jobs/templates/swh-cypress.yaml b/jobs/templates/swh-cypress.yaml index c6daddc..77bd820 100644 --- a/jobs/templates/swh-cypress.yaml +++ b/jobs/templates/swh-cypress.yaml @@ -1,80 +1,95 @@ - job-template: name: "{name}/cypress" display-name: "master branch (cypress)" project-type: pipeline docker-image: swh-cypress triggers: - timed: '@daily' sandbox: true auth-token: 'ph4br1cat0r' properties: - build-discarder: num-to-keep: 20 parameters: - git-parameter: name: REVISION type: PT_REVISION defaultValue: master description: Git revision to build. - string: name: PHID description: PHID of the Phabricator target object on which results will be reported. dsl: !include-raw: swh-cypress.groovy - job-template: name: "{name}/cypress-diff" display-name: 'Phab. Diff (cypress)' docker-image: swh-cypress node: "{docker-image}" auth-token: ph4br1cat0r parameters: - string: name: REPO description: PHID of the Diffusion repository - string: name: PHID description: PHID of the Target object - string: name: DIFF_ID description: ID of the Diff patch to apply, if any scm: - git: url: https://forge.softwareheritage.org/source/{display-name}.git wrappers: - phabricator-differential: apply-to-master: true patch-with-force-flag: true builders: - shell: | echo "Run cypress for:" echo " REPO=$REPO" echo " PHID=$PHID" echo " DIFF_ID=$DIFF_ID" - shell: | #!/bin/bash python3 -m venv ~/swh-web-env source ~/swh-web-env/bin/activate pip3 install wheel pip3 install -e .[testing] - yarn install && yarn build-dev && yarn run cypress install + yarn install && yarn build-test && yarn run cypress install export PYTHONPATH=$PWD python3 swh/web/manage.py migrate python3 swh/web/manage.py createcachetable python3 swh/web/manage.py runserver --nostatic --settings=swh.web.settings.tests & wait-for-it localhost:5004 yarn run cypress run + yarn run mochawesome publishers: - phabricator: uberalls-enabled: false comment-on-success: true comment-with-console-link-on-failure: true process-lint: true lint-file: .phabricator-lint lint-file-size: 1000000 + - html-publisher: + name: 'Mochawesome Tests Report' + dir: 'cypress/mochawesome/report' + files: 'mochawesome.html' + keep-all: true + allow-missing: true + link-to-last-build: false + - html-publisher: + name: 'Istanbul Code Coverage' + dir: 'cypress/coverage/lcov-report' + files: 'index.html' + keep-all: true + allow-missing: true + link-to-last-build: false