168 lines
3.8 KiB
YAML
168 lines
3.8 KiB
YAML
# this test is based on the docker image described in env/bitbucket/Dockerfile
|
|
image: iterativ/vbv-lernwelt-bitbucket-node20
|
|
|
|
## job definitions
|
|
e2e: &e2e
|
|
name: cypress test worker
|
|
max-time: 45
|
|
services:
|
|
- postgres
|
|
caches:
|
|
- node
|
|
- clientnode
|
|
- vbvpip
|
|
- cypress
|
|
script:
|
|
- export CURRENTS_RECORD_KEY=etzp5VXtJcSX8Z4H
|
|
- export IT_SERVE_VUE=false
|
|
- export IT_ALLOW_LOCAL_LOGIN=true
|
|
- source ./env/bitbucket/prepare_for_test.sh
|
|
- pip install -r server/requirements/requirements-dev.txt
|
|
- npm install
|
|
- CYPRESS_DOWNLOAD_MIRROR=https://cy-cdn.currents.dev npx cypress install --force
|
|
- npm run build
|
|
- ./prepare_server_cypress.sh --start-background
|
|
- npm run cypress:ci
|
|
artifacts:
|
|
- cypress/**/*.png
|
|
- cypress/**/*.mp4
|
|
|
|
deploy: &deploy
|
|
name: deploy
|
|
max-time: 30
|
|
caches:
|
|
- node
|
|
- clientnode
|
|
- vbvpip
|
|
- docker
|
|
services:
|
|
- docker
|
|
script:
|
|
- source ./env/bitbucket/prepare_for_deployment.sh
|
|
- ./caprover_deploy.sh ${DEPLOY_ENVIRONMENT:-}
|
|
- cat /tmp/caprover_app_url.txt
|
|
|
|
python-tests: &python-tests
|
|
name: python tests
|
|
max-time: 15
|
|
services:
|
|
- postgres
|
|
caches:
|
|
- vbvpip
|
|
script:
|
|
- source ./env/bitbucket/prepare_for_test.sh
|
|
- pip install -r server/requirements/requirements-dev.txt
|
|
- ./server/run_tests_coverage.sh
|
|
|
|
python-linting: &python-linting
|
|
name: python linting
|
|
max-time: 15
|
|
services:
|
|
- postgres
|
|
caches:
|
|
- vbvpip
|
|
script:
|
|
- source ./env/bitbucket/prepare_for_test.sh
|
|
- pip install -r server/requirements/requirements-dev.txt
|
|
- ruff check server
|
|
- ruff format server --check
|
|
- git-crypt status -e | sort > git-crypt-encrypted-files-check.txt && diff -w git-crypt-encrypted-files.txt git-crypt-encrypted-files-check.txt
|
|
- trufflehog --exclude_paths trufflehog-exclude-patterns.txt --allow trufflehog-allow.json --entropy=True --max_depth=100 .
|
|
|
|
js-tests: &js-tests
|
|
name: js tests
|
|
max-time: 15
|
|
caches:
|
|
- node
|
|
- clientnode
|
|
script:
|
|
- cd client
|
|
- pwd
|
|
- npm install
|
|
- npm run codegen
|
|
- npm test
|
|
|
|
js-linting: &js-linting
|
|
name: js linting
|
|
max-time: 15
|
|
caches:
|
|
- node
|
|
- clientnode
|
|
script:
|
|
- cd client
|
|
- pwd
|
|
- npm install
|
|
- npm run prettier:check
|
|
- npm run lint
|
|
- npm run typecheck
|
|
|
|
default-steps: &default-steps
|
|
- parallel:
|
|
- step: *e2e
|
|
- step: *e2e
|
|
- step: *e2e
|
|
- step: *python-tests
|
|
- step: *python-linting
|
|
- step: *js-tests
|
|
- step: *js-linting
|
|
|
|
# main pipelines definitions
|
|
pipelines:
|
|
default:
|
|
- <<: *default-steps
|
|
- step:
|
|
<<: *deploy
|
|
name: deploy feature
|
|
trigger: manual
|
|
branches:
|
|
develop:
|
|
- <<: *default-steps
|
|
- step:
|
|
<<: *deploy
|
|
deployment: develop
|
|
name: deploy develop
|
|
master:
|
|
- <<: *default-steps
|
|
- step:
|
|
<<: *deploy
|
|
deployment: master
|
|
name: deploy master
|
|
tags:
|
|
v202*:
|
|
- step:
|
|
name: prepare prod deployment
|
|
script:
|
|
- echo "Release ready!"
|
|
- parallel:
|
|
- step:
|
|
<<: *deploy
|
|
name: deploy prod
|
|
deployment: prod
|
|
trigger: manual
|
|
- step:
|
|
<<: *deploy
|
|
name: deploy prod-azure
|
|
deployment: prod-azure
|
|
trigger: manual
|
|
custom:
|
|
deploy-feature-branch:
|
|
- step:
|
|
<<: *deploy
|
|
name: deploy feature
|
|
deploy-stage:
|
|
- step:
|
|
<<: *deploy
|
|
deployment: stage
|
|
|
|
definitions:
|
|
caches:
|
|
cypress: /root/.cache/Cypress
|
|
vbvpip: /opt/atlassian/pipelines/agent/build/vbvvenv/
|
|
clientnode: /opt/atlassian/pipelines/agent/build/client/node_modules/
|
|
services:
|
|
postgres:
|
|
image: postgres
|
|
memory: 512
|
|
variables:
|
|
POSTGRES_HOST_AUTH_METHOD: trust
|