# this test is based on the docker image described in env/bitbucket/Dockerfile
image: iterativ/vbv-lernwelt-bitbucket
pipelines:
  default:
    - parallel:
        - step:
            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
              - git-crypt status -e | sort > git-crypt-encrypted-files-check.txt && diff 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 .
              - ./server/run_tests_coverage.sh
#              - ./src/run_pylint.sh
        - step:
            name: cypress tests
            max-time: 45
            services:
              - postgres
            artifacts:
              - cypress/**/*.png
              - cypress/**/*.mp4
            caches:
              - node
              - vbvpip
              - cypress
            script:
              - source ./env/bitbucket/prepare_for_test.sh
              - python -m venv vbvvenv
              - source vbvvenv/bin/activate
              - pip install -r server/requirements/requirements-dev.txt
              - npm install
              - ./prepare_server_cypress.sh --start-background
              - npm run cypress:ci
#              - npm run build
#              - ./run_jshint.sh
#              # - npm test
#              - (cd landingpage && npm install && echo "{}" > ./src/translations/translations.json && npm run build)
  tags:
    v202*:
      - step:
          name: Hello world
          script:
            - echo "Release ready!"
      - step:
          name: Deploy to PROD
          deployment: prod
          trigger: manual
          script:
            - ./deploy.sh --commit "$BITBUCKET_COMMIT" --token "$DEPLOY_TOKEN" --url https://myservicecrm.swisscom.ch/deploy-iesc-bKVAkQguPDVi
  custom:
    deploy-preprod:
      - step:
          name: Deploy to PREPROD
          deployment: preprod
          script:
            - ./deploy.sh --commit "$BITBUCKET_COMMIT" --token "$DEPLOY_TOKEN" --url https://preprod.myservicecrm.ch/deploy-iesc-bKVAkQguPDVi
    deploy-api:
      - step:
          name: Deploy to API
          deployment: api
          script:
            - ./deploy.sh --commit "$BITBUCKET_COMMIT" --token "$DEPLOY_TOKEN" --url https://api.myservicecrm.ch/deploy-iesc-bKVAkQguPDVi

definitions:
  caches:
    cypress: /root/.cache/Cypress
    vbvpip: /opt/atlassian/pipelines/agent/build/vbvvenv/
  services:
    postgres:
      image: postgres
      memory: 512
      variables:
        POSTGRES_HOST_AUTH_METHOD: trust
