diff --git a/jobs/templates/swh-cypress.groovy b/jobs/templates/swh-cypress.groovy index 46f7c0a..82f991e 100644 --- a/jobs/templates/swh-cypress.groovy +++ b/jobs/templates/swh-cypress.groovy @@ -1,100 +1,101 @@ 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-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 migrate --settings=swh.web.settings.tests + python3 swh/web/manage.py createcachetable --settings=swh.web.settings.tests + cat swh/web/tests/create_test_admin.py | python3 swh/web/manage.py shell --settings=swh.web.settings.tests 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 77bd820..efc6712 100644 --- a/jobs/templates/swh-cypress.yaml +++ b/jobs/templates/swh-cypress.yaml @@ -1,95 +1,96 @@ - 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-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 migrate --settings=swh.web.settings.tests + python3 swh/web/manage.py createcachetable --settings=swh.web.settings.tests + cat swh/web/tests/create_test_admin.py | python3 swh/web/manage.py shell --settings=swh.web.settings.tests 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