Files

687 lines
26 KiB
YAML

---
kind: pipeline
name: opencti-tests
steps:
- name: Runner information
image: alpine:3.23
commands:
- echo DRONE_STAGE_MACHINE ${DRONE_STAGE_MACHINE}
- name: dependencies-checkout
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
environment:
GITHUB_TOKEN:
from_secret: github_token
commands:
# copy opencti-platform without nodes_modules
- cp -R opencti-platform platform-reference
- apk add git github-cli
- chmod 777 scripts/*
- ./scripts/clone-dependencies.sh "${DRONE_SOURCE_BRANCH}" "${DRONE_TARGET_BRANCH}" "$(pwd)" "${DRONE_PULL_REQUEST}"
- ls -lart
- name: backend-verify-licenses
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
volumes:
- name: cache-backend-verify-licenses-yarn
path: /root/.yarn/berry
commands:
- echo "$(ls /root/.yarn/berry/cache/ 2> /dev/null | wc -l || echo 0) packages in Yarn global cache"
- apk add build-base git libffi-dev cargo
- pip3 install --upgrade setuptools
- cd "$DRONE_WORKSPACE/client-python"
- pip install -r requirements.txt
- pip install -e .[dev,doc]
- cd "$DRONE_WORKSPACE/opencti-platform/opencti-graphql"
- npm install -g corepack
- cp $DRONE_WORKSPACE/opencti-platform/.yarnrc.yml .
- yarn install
- yarn verify-licenses
depends_on:
- dependencies-checkout
- name: frontend-verify-licenses
image: node:22.21.1
volumes:
- name: cache-frontend-verify-licenses-yarn
path: /root/.yarn/berry
commands:
- echo "$(ls /root/.yarn/berry/cache/ 2> /dev/null | wc -l || echo 0) packages in Yarn global cache"
- cd ./opencti-platform/opencti-front
- npm install -g corepack
- cp $DRONE_WORKSPACE/opencti-platform/.yarnrc.yml .
- yarn install
- yarn verify-licenses
depends_on:
- dependencies-checkout
- name: generate-licenses
image: node:22.21.1
commands:
- chmod 777 scripts/*
- ./scripts/generate-licenses.sh
- test -f ./licenses/third-party-licenses.txt
depends_on:
- backend-verify-licenses
- frontend-verify-licenses
- name: api-tests
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
volumes:
- name: cache-api-tests-yarn
path: /root/.yarn/berry
environment:
APP__BASE_URL: http://api-tests:4010/
APP__ADMIN__PASSWORD: admin
APP__CHILD_LOCKING_PROCESS__ENABLED: false
APP__ENTERPRISE_EDITION_LICENSE:
from_secret: ee_license
APP__SYNC_RAW_START_REMOTE_URI: http://opencti-raw-start:4100/graphql
APP__SYNC_LIVE_START_REMOTE_URI: http://opencti-live-start:4200/graphql
APP__SYNC_DIRECT_START_REMOTE_URI: http://opencti-direct-start:4300/graphql
APP__SYNC_RESTORE_START_REMOTE_URI: http://opencti-restore-start:4400/graphql
APP__ADMIN__TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
REDIS__HOSTNAME: redis
ELASTICSEARCH__URL: http://elastic:9200
MINIO__ENDPOINT: minio
RABBITMQ__HOSTNAME: rabbitmq
EXPIRATION_SCHEDULER__ENABLED: false
SUBSCRIPTION_SCHEDULER__ENABLED: false
SMTP__ENABLED: false
PYTHONUNBUFFERED: 1
commands:
- if [ -f $DRONE_WORKSPACE/api-test.skip ]; then echo "API TESTS ARE SKIPPED" ; exit 0; fi
- echo "$(ls /root/.yarn/berry/cache/ 2> /dev/null | wc -l || echo 0) packages in Yarn global cache"
- apk add build-base git libffi-dev cargo
- pip3 install --upgrade setuptools
- cd "$DRONE_WORKSPACE/client-python"
- pip install -r requirements.txt
- pip install -e .[dev,doc]
- cd "$DRONE_WORKSPACE/opencti-platform/opencti-graphql"
- npm install -g corepack
- cp $DRONE_WORKSPACE/opencti-platform/.yarnrc.yml .
- yarn install
- yarn build
- yarn check-ts
- yarn lint
- if [ $(wget --server-response "http://opencti-raw-start:4100/health?health_access_key=cihealthkey" -O opencti-raw-start-health 2>&1 | grep -c "200 OK") != 1 ]; then echo "ERROR opencti-raw-start has not start correctly"; exit 1; fi
- if [ $(wget --server-response "http://opencti-live-start:4200/health?health_access_key=cihealthkey" -O opencti-live-start-health 2>&1 | grep -c "200 OK") != 1 ]; then echo "ERROR opencti-live-start has not start correctly"; exit 1; fi
- if [ $(wget --server-response "http://opencti-direct-start:4300/health?health_access_key=cihealthkey" -O opencti-direct-start 2>&1 | grep -c "200 OK") != 1 ]; then echo "ERROR opencti-direct-start has not start correctly"; exit 1; fi
- if [ $(wget --server-response "http://opencti-restore-start:4400/health?health_access_key=cihealthkey" -O opencti-restore-start 2>&1 | grep -c "200 OK") != 1 ]; then echo "ERROR opencti-restore-start has not start correctly"; exit 1; fi
- NODE_OPTIONS=--max_old_space_size=8192 yarn test
depends_on:
- dependencies-checkout
- generate-licenses
- name: api-coverage
image: plugins/codecov
failure: ignore
settings:
flags:
- opencti
- opencti-graphql
token:
from_secret: codecov_token
paths:
- opencti-platform/opencti-graphql/coverage
depends_on:
- api-tests
- name: frontend-tests
image: node:22-alpine
volumes:
- name: cache-frontend-tests-yarn
path: /root/.yarn/berry
commands:
- echo "$(ls /root/.yarn/berry/cache/ 2> /dev/null | wc -l || echo 0) packages in Yarn global cache"
- apk add git tini gcc g++ make musl-dev cargo python3 python3-dev postfix postfix-pcre
- npm install -g node-gyp
- cd opencti-platform/opencti-front
- npm install -g corepack
- cp $DRONE_WORKSPACE/opencti-platform/.yarnrc.yml .
- yarn install
- yarn build
- yarn check-ts
- yarn lint
- NODE_OPTIONS=--max_old_space_size=8192 yarn test:coverage
depends_on:
- generate-licenses
- name: frontend-e2e-tests
image: node:22.21.1
volumes:
- name: cache-frontend-e2e-tests-yarn
path: /root/.yarn/berry
environment:
BACK_END_URL: http://opencti-e2e-start:4500
E2E_TEST: true
TEAMS_WEBHOOK: teams-webhook-url
ipc: host
commands:
- echo "$(ls /root/.yarn/berry/cache/ 2> /dev/null | wc -l || echo 0) packages in Yarn global cache"
- apt-get update
- apt-get -y install netcat-traditional
- cd opencti-platform/opencti-front
- npm install -g corepack
- cp $DRONE_WORKSPACE/opencti-platform/.yarnrc.yml .
- yarn install
- npx playwright install --with-deps chromium
- yarn build
- yarn test:e2e
depends_on:
- frontend-tests
- name: frontend-coverage
image: plugins/codecov
settings:
flags:
- opencti
- opencti-front
token:
from_secret: codecov_token
paths:
- opencti-platform/opencti-front/coverage/unit
depends_on:
- frontend-tests
- name: upload-build-artefact
image: node:22.21.1
failure: ignore
when:
status:
- failure
- success
environment:
JFROG_TOKEN:
from_secret: jfrog_token
JFROG_BUILD_NAME: opencti-build
JFROG_REPOSITORY: opencti-drone
JFROG_URL: https://filigran.jfrog.io/artifactory
commands:
- apt-get update
# see https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory
- npm install -g jfrog-cli-v2-jf
# Collect git info
- jf rt bag $JFROG_BUILD_NAME $DRONE_BUILD_NUMBER
# Archive and upload each artefact that we need, if folder are present.
- test -d opencti-platform/opencti-front/test-results && tar -czvf frontend-test-results-$DRONE_BUILD_NUMBER.tar.gz opencti-platform/opencti-front/test-results
- test -d opencti-platform/opencti-front/test-results && jf rt u frontend-test-results-$DRONE_BUILD_NUMBER.tar.gz $JFROG_REPOSITORY --build-name=$JFROG_BUILD_NAME --build-number=$DRONE_BUILD_NUMBER --url=$JFROG_URL --access-token=$JFROG_TOKEN
- test -d opencti-platform/opencti-graphql/test-results && tar -czvf backend-test-results-$DRONE_BUILD_NUMBER.tar.gz opencti-platform/opencti-graphql/test-results
- test -d opencti-platform/opencti-graphql/test-results && jf rt u backend-test-results-$DRONE_BUILD_NUMBER.tar.gz $JFROG_REPOSITORY --build-name=$JFROG_BUILD_NAME --build-number=$DRONE_BUILD_NUMBER --url=$JFROG_URL --access-token=$JFROG_TOKEN
# Next line should be done only once at the end: it's recording and gathering build info
- jf rt bp $JFROG_BUILD_NAME $DRONE_BUILD_NUMBER --url=$JFROG_URL --access-token=$JFROG_TOKEN --build-url=$DRONE_BUILD_LINK
# Cleaning up old build in JFrog
- jf rt bdi $JFROG_BUILD_NAME --max-days=30 --url=$JFROG_URL --access-token=$JFROG_TOKEN
depends_on:
- frontend-e2e-tests
- api-tests
- name: frontend-verify-translation
image: node:22.21.1
commands:
- cd opencti-platform/opencti-front
- node script/verify-translation.js
- name: client-test-39
image: python:3.9
environment:
OPENCTI_API_URL: http://opencti-pycti-start:4600
OPENCTI_API_TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
commands:
- cd client-python
- pip3 install -r requirements.txt --user
- pip3 install -r test-requirements.txt --user
- sleep 180
- python3 -m pytest --no-header -vv --disable-warnings --cov=pycti --drone
depends_on:
- dependencies-checkout
- name: client-test-310
image: python:3.10
environment:
OPENCTI_API_URL: http://opencti-pycti-start:4600
OPENCTI_API_TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
commands:
- cd client-python
- pip3 install -r requirements.txt --user
- pip3 install -r test-requirements.txt --user
# - sleep 180
- python3 -m pytest --no-header -vv --disable-warnings --cov=pycti --drone
depends_on:
- client-test-39
- name: client-test-311
image: python:3.11
environment:
OPENCTI_API_URL: http://opencti-pycti-start:4600
OPENCTI_API_TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
commands:
- cd client-python
- pip3 install -r requirements.txt --user
- pip3 install -r test-requirements.txt --user
# - sleep 180
- python3 -m pytest --no-header -vv --disable-warnings --cov=pycti --drone
depends_on:
- client-test-310
- name: client-test-312
image: python:3.12
environment:
OPENCTI_API_URL: http://opencti-pycti-start:4600
OPENCTI_API_TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
commands:
- cd client-python
- pip3 install -r requirements.txt --user
- pip3 install -r test-requirements.txt --user
# - sleep 180
- python3 -m pytest --no-header -vv --disable-warnings --cov=pycti --drone
depends_on:
- client-test-311
# always run the examples last since they don't clean up
# ---------> already done in Github Actions
- name: pycti-example-tests
image: python:3.12
environment:
OPENCTI_API_URL: http://opencti-pycti-start:4600
OPENCTI_API_TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
commands:
- cd client-python
- pip3 install -r requirements.txt --user
- pip3 install .
- cd examples/
- /bin/bash run_all.sh
depends_on:
- client-test-312
- name: slack
image: plugins/slack
settings:
webhook:
from_secret: slack_webhook
username: drone
channel: notifications
when:
status: [success, failure]
depends_on:
- api-tests
- frontend-tests
- frontend-e2e-tests
services:
- name: redis
image: redis:8.4.0
- name: elastic
image: elasticsearch:8.19.8
environment:
discovery.type: single-node
xpack.security.enabled: false
ES_JAVA_OPTS: -Xms2g -Xmx2g
- name: minio
image: minio/minio:RELEASE.2025-06-13T11-33-47Z
environment:
MINIO_ROOT_USER: ChangeMe
MINIO_ROOT_PASSWORD: ChangeMe
command: [server, /data]
- name: rabbitmq
image: rabbitmq:4.2.1-management
- name: opencti-raw-start
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
volumes:
- name: cache-opencti-raw-start-yarn
path: /root/.yarn/berry
environment:
APP__PORT: 4100
APP__ADMIN__PASSWORD: admin
APP__ENABLED_DEV_FEATURES: '["*"]'
APP__CHILD_LOCKING_PROCESS__ENABLED: true
APP__ENTERPRISE_EDITION_LICENSE:
from_secret: ee_license
APP__ADMIN__TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
APP__APP_LOG__EXTENDED_ERROR_MESSAGE: true
APP__HEALTH_ACCESS_KEY: cihealthkey
REDIS__HOSTNAME: redis
REDIS__NAMESPACE: raw-start
ELASTICSEARCH__URL: http://elastic:9200
ELASTICSEARCH__INDEX_PREFIX: raw-start
MINIO__ENDPOINT: minio
MINIO__BUCKET_NAME: raw-start-bucket
RABBITMQ__HOSTNAME: rabbitmq
RABBITMQ__QUEUE_PREFIX: raw-start
EXPIRATION_SCHEDULER__ENABLED: false
SUBSCRIPTION_SCHEDULER__ENABLED: false
SMTP__ENABLED: false
commands:
- echo "$(ls /root/.yarn/berry/cache/ 2> /dev/null | wc -l || echo 0) packages in Yarn global cache"
- sleep 10
- if [ -f $DRONE_WORKSPACE/api-test.skip ]; then echo "API TESTS ARE SKIPPED" ; exit 0; fi
- ls -lart
- apk add build-base git libffi-dev cargo
- mkdir -p /tmp/raw-start-platform/
- cp -a $DRONE_WORKSPACE/platform-reference/* /tmp/raw-start-platform/
- cd "$DRONE_WORKSPACE/client-python"
- pip install -r requirements.txt
- pip install -e .[dev,doc]
- cd /tmp/raw-start-platform/opencti-graphql
- npm install -g corepack
- cp $DRONE_WORKSPACE/opencti-platform/.yarnrc.yml .
- yarn install
- yarn install:python
- NODE_OPTIONS=--max_old_space_size=8192 yarn start
- name: opencti-live-start
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
volumes:
- name: cache-opencti-live-start-yarn
path: /root/.yarn/berry
environment:
APP__PORT: 4200
APP__ADMIN__PASSWORD: admin
APP__ENABLED_DEV_FEATURES: '["*"]'
APP__CHILD_LOCKING_PROCESS__ENABLED: true
APP__ENTERPRISE_EDITION_LICENSE:
from_secret: ee_license
APP__ADMIN__TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
APP__APP_LOG__EXTENDED_ERROR_MESSAGE: true
APP__HEALTH_ACCESS_KEY: cihealthkey
REDIS__HOSTNAME: redis
REDIS__NAMESPACE: live-start
ELASTICSEARCH__URL: http://elastic:9200
ELASTICSEARCH__INDEX_PREFIX: live-start
MINIO__ENDPOINT: minio
MINIO__BUCKET_NAME: live-start-bucket
RABBITMQ__HOSTNAME: rabbitmq
RABBITMQ__QUEUE_PREFIX: live-start
EXPIRATION_SCHEDULER__ENABLED: false
SUBSCRIPTION_SCHEDULER__ENABLED: false
SMTP__ENABLED: false
commands:
- echo "$(ls /root/.yarn/berry/cache/ 2> /dev/null | wc -l || echo 0) packages in Yarn global cache"
- sleep 10
- if [ -f $DRONE_WORKSPACE/api-test.skip ]; then echo "API TESTS ARE SKIPPED" ; exit 0; fi
- apk add build-base git libffi-dev cargo
- mkdir -p /tmp/live-start-platform/
- cp -a $DRONE_WORKSPACE/platform-reference/* /tmp/live-start-platform/
- cd "$DRONE_WORKSPACE/client-python"
- pip install -r requirements.txt
- pip install -e .[dev,doc]
- cd /tmp/live-start-platform/opencti-graphql
- npm install -g corepack
- cp $DRONE_WORKSPACE/opencti-platform/.yarnrc.yml .
- yarn install
- yarn install:python
- NODE_OPTIONS=--max_old_space_size=8192 yarn start
- name: opencti-direct-start
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
volumes:
- name: cache-opencti-direct-start-yarn
path: /root/.yarn/berry
environment:
APP__PORT: 4300
APP__ADMIN__PASSWORD: admin
APP__ENABLED_DEV_FEATURES: '["*"]'
APP__CHILD_LOCKING_PROCESS__ENABLED: true
APP__ENTERPRISE_EDITION_LICENSE:
from_secret: ee_license
APP__ADMIN__TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
APP__APP_LOG__EXTENDED_ERROR_MESSAGE: true
APP__HEALTH_ACCESS_KEY: cihealthkey
REDIS__HOSTNAME: redis
REDIS__NAMESPACE: direct-start
ELASTICSEARCH__URL: http://elastic:9200
ELASTICSEARCH__INDEX_PREFIX: direct-start
MINIO__ENDPOINT: minio
MINIO__BUCKET_NAME: direct-start-bucket
RABBITMQ__HOSTNAME: rabbitmq
RABBITMQ__QUEUE_PREFIX: direct-start
EXPIRATION_SCHEDULER__ENABLED: false
SUBSCRIPTION_SCHEDULER__ENABLED: false
SMTP__ENABLED: false
commands:
- echo "$(ls /root/.yarn/berry/cache/ 2> /dev/null | wc -l || echo 0) packages in Yarn global cache"
- sleep 10
- if [ -f $DRONE_WORKSPACE/api-test.skip ]; then echo "API TESTS ARE SKIPPED" ; exit 0; fi
- apk add build-base git libffi-dev cargo
- mkdir -p /tmp/direct-start-platform/
- cp -a $DRONE_WORKSPACE/platform-reference/* /tmp/direct-start-platform/
- cd "$DRONE_WORKSPACE/client-python"
- pip install -r requirements.txt
- pip install -e .[dev,doc]
- cd /tmp/direct-start-platform/opencti-graphql
- npm install -g corepack
- cp $DRONE_WORKSPACE/opencti-platform/.yarnrc.yml .
- yarn install
- yarn install:python
- NODE_OPTIONS=--max_old_space_size=8192 yarn start
- name: opencti-direct-worker
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
environment:
OPENCTI_URL: http://opencti-direct-start:4300
OPENCTI_TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
WORKER_LOG_LEVEL: info
commands:
- sleep 10
- if [ -f $DRONE_WORKSPACE/api-test.skip ]; then echo "API TESTS ARE SKIPPED" ; exit 0; fi
- apk add build-base git libffi-dev cargo
- cp -a opencti-worker /tmp/direct-start-worker
- cd "$DRONE_WORKSPACE/client-python"
- pip install -r requirements.txt
- pip install -e .[dev,doc]
- while ! nc -z opencti-direct-start 4300 ; do sleep 1 ; done
- cd /tmp/direct-start-worker
# Remove pycti as it is already installed and can conflict
- sed -i '/^pycti==/d' src/requirements.txt
- pip3 install -r src/requirements.txt
- python3 src/worker.py
- name: opencti-test-worker
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
environment:
OPENCTI_URL: http://api-tests:4010
OPENCTI_TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
WORKER_LOG_LEVEL: info
commands:
- sleep 10
- if [ -f $DRONE_WORKSPACE/api-test.skip ]; then echo "API TESTS ARE SKIPPED" ; exit 0; fi
- cp -a opencti-worker /tmp/opencti-test-worker
- apk add build-base git libffi-dev cargo
- cd "$DRONE_WORKSPACE/client-python"
- echo "[INFO] using client-python on branch $(git branch --show-current)"
- pip install -r requirements.txt
- pip install -e .[dev,doc]
- while ! nc -z api-tests 4010 ; do sleep 1 ; done
- cd /tmp/opencti-test-worker
- pip install -r src/requirements.txt
- python3 src/worker.py
- name: opencti-restore-start
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
volumes:
- name: cache-opencti-restore-start-yarn
path: /root/.yarn/berry
environment:
APP__PORT: 4400
APP__ADMIN__PASSWORD: admin
APP__ENABLED_DEV_FEATURES: '["*"]'
APP__CHILD_LOCKING_PROCESS__ENABLED: true
APP__ENTERPRISE_EDITION_LICENSE:
from_secret: ee_license
APP__ADMIN__TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
APP__APP_LOG__EXTENDED_ERROR_MESSAGE: true
APP__HEALTH_ACCESS_KEY: cihealthkey
REDIS__HOSTNAME: redis
REDIS__NAMESPACE: restore-start
ELASTICSEARCH__URL: http://elastic:9200
ELASTICSEARCH__INDEX_PREFIX: restore-start
MINIO__ENDPOINT: minio
MINIO__BUCKET_NAME: restore-start-bucket
RABBITMQ__HOSTNAME: rabbitmq
RABBITMQ__QUEUE_PREFIX: restore-start
EXPIRATION_SCHEDULER__ENABLED: false
SUBSCRIPTION_SCHEDULER__ENABLED: false
SMTP__ENABLED: false
commands:
- echo "$(ls /root/.yarn/berry/cache/ 2> /dev/null | wc -l || echo 0) packages in Yarn global cache"
- sleep 10
- if [ -f $DRONE_WORKSPACE/api-test.skip ]; then echo "API TESTS ARE SKIPPED" ; exit 0; fi
- apk add build-base git libffi-dev cargo
- mkdir -p /tmp/restore-start-platform/
- cp -a $DRONE_WORKSPACE/platform-reference/* /tmp/restore-start-platform/
- cd "$DRONE_WORKSPACE/client-python"
- pip install -r requirements.txt
- pip install -e .[dev,doc]
- cd /tmp/restore-start-platform/opencti-graphql
- npm install -g corepack
- cp $DRONE_WORKSPACE/opencti-platform/.yarnrc.yml .
- yarn install
- yarn install:python
- NODE_OPTIONS=--max_old_space_size=8192 yarn start
- name: opencti-e2e-start
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
volumes:
- name: cache-opencti-e2e-start-yarn
path: /root/.yarn/berry
environment:
APP__PORT: 4500
APP__ENABLED_DEV_FEATURES: '["*"]'
APP__ADMIN__PASSWORD: admin
APP__CHILD_LOCKING_PROCESS__ENABLED: true
APP__ENTERPRISE_EDITION_LICENSE:
from_secret: ee_license
APP__ADMIN__TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
APP__APP_LOG__EXTENDED_ERROR_MESSAGE: true
APP__HEALTH_ACCESS_KEY: cihealthkey
REDIS__HOSTNAME: redis
REDIS__NAMESPACE: e2e-start
ELASTICSEARCH__URL: http://elastic:9200
ELASTICSEARCH__INDEX_PREFIX: e2e-start
MINIO__ENDPOINT: minio
MINIO__BUCKET_NAME: e2e-start-bucket
RABBITMQ__HOSTNAME: rabbitmq
RABBITMQ__QUEUE_PREFIX: e2e-start
EXPIRATION_SCHEDULER__ENABLED: false
SUBSCRIPTION_SCHEDULER__ENABLED: false
PUBLISHER_MANAGER__ENABLED: false
SMTP__ENABLED: false
commands:
- echo "$(ls /root/.yarn/berry/cache/ 2> /dev/null | wc -l || echo 0) packages in Yarn global cache"
- sleep 10
- apk add build-base git libffi-dev cargo
- mkdir -p /tmp/e2e-start-platform/
- cp -a $DRONE_WORKSPACE/platform-reference/* /tmp/e2e-start-platform/
- cd "$DRONE_WORKSPACE/client-python"
- pip install -r requirements.txt
- pip install -e .[dev,doc]
- cd /tmp/e2e-start-platform/opencti-graphql
- npm install -g corepack
- cp $DRONE_WORKSPACE/opencti-platform/.yarnrc.yml .
- yarn install
- yarn install:python
- BRANCH=$(echo $DRONE_COMMIT_BRANCH | cut -d "/" -f 2)
- yarn build:dev
- yarn wait-api && node build/script-insert-dataset.js --datasets=DATA-TEST-STIX2_v2,data-test-stix-e2e,poisonivy &
- NODE_OPTIONS=--max_old_space_size=8192 yarn start
- name: opencti-e2e-worker
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
environment:
OPENCTI_URL: http://opencti-e2e-start:4500
OPENCTI_TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
WORKER_LOG_LEVEL: info
commands:
- sleep 10
- cp -a opencti-worker /tmp/opencti-e2e-worker
- apk add build-base git libffi-dev cargo
- cd "$DRONE_WORKSPACE/client-python"
- echo "[INFO] using client-python on branch $(git branch --show-current)"
- pip install -r requirements.txt
- pip install -e .[dev,doc]
- while ! nc -z opencti-e2e-start 4500 ; do sleep 1 ; done
- cd /tmp/opencti-e2e-worker
- pip install -r src/requirements.txt
- python3 src/worker.py
- name: opencti-pycti-start
image: nikolaik/python-nodejs:python3.11-nodejs22-alpine
volumes:
- name: cache-opencti-pycti-start-yarn
path: /root/.yarn/berry
environment:
APP__PORT: 4600
APP__HEALTH_ACCESS_KEY: cihealthkey
APP__ADMIN__PASSWORD: admin
APP__ADMIN__TOKEN: bfa014e0-e02e-4aa6-a42b-603b19dcf159
APP__ENTERPRISE_EDITION_LICENSE:
from_secret: ee_license
REDIS__HOSTNAME: redis
REDIS__NAMESPACE: pycti-start
ELASTICSEARCH__URL: http://elastic:9200
ELASTICSEARCH__INDEX_PREFIX: pycti-start
MINIO__ENDPOINT: minio
MINIO__BUCKET_NAME: pycti-start
RABBITMQ__HOSTNAME: rabbitmq
RABBITMQ__QUEUE_PREFIX: pycti-start
EXPIRATION_SCHEDULER__ENABLED: false
SUBSCRIPTION_SCHEDULER__ENABLED: false
SMTP__ENABLED: false
GITHUB_TOKEN:
from_secret: github_token
commands:
- echo "$(ls /root/.yarn/berry/cache/ 2> /dev/null | wc -l || echo 0) packages in Yarn global cache"
- sleep 10
- ls -lart
- apk add build-base git libffi-dev cargo
- mkdir -p /tmp/pycti-start-platform/
- cp -a $DRONE_WORKSPACE/platform-reference/* /tmp/pycti-start-platform/
- cd "$DRONE_WORKSPACE/client-python"
- pip install -r requirements.txt
- pip install -e .[dev,doc]
- cd /tmp/pycti-start-platform/opencti-graphql
- npm install -g corepack
- cp $DRONE_WORKSPACE/opencti-platform/.yarnrc.yml .
- yarn install
- yarn install:python
- NODE_OPTIONS=--max_old_space_size=8192 yarn start
volumes:
- name: cache-backend-verify-licenses-yarn
host:
path: /tmp/cache-backend-verify-licenses-yarn
- name: cache-frontend-verify-licenses-yarn
host:
path: /tmp/cache-frontend-verify-licenses-yarn
- name: cache-api-tests-yarn
host:
path: /tmp/cache-api-tests-yarn
- name: cache-opencti-raw-start-yarn
host:
path: /tmp/cache-opencti-raw-start-yarn
- name: cache-opencti-live-start-yarn
host:
path: /tmp/cache-opencti-live-start-yarn
- name: cache-opencti-direct-start-yarn
host:
path: /tmp/cache-opencti-direct-start-yarn
- name: cache-opencti-restore-start-yarn
host:
path: /tmp/cache-opencti-restore-start-yarn
- name: cache-opencti-e2e-start-yarn
host:
path: /tmp/cache-opencti-e2e-start-yarn
- name: cache-frontend-tests-yarn
host:
path: /tmp/cache-frontend-tests-yarn
- name: cache-frontend-e2e-tests-yarn
host:
path: /tmp/cache-frontend-e2e-tests-yarn
- name: cache-opencti-pycti-start-yarn
host:
path: /tmp/cache-opencti-pycti-start-yarn
image_pull_secrets:
- dockerconfigjson