
The validation is not yet enabled on CI checks because there exist too many errors in existing rule descriptions at the moment.
145 lines
4.1 KiB
YAML
145 lines
4.1 KiB
YAML
env:
|
|
GITHUB_TOKEN: VAULT[development/github/token/${CIRRUS_REPO_OWNER}-${CIRRUS_REPO_NAME}-ro token]
|
|
SONAR_HOST_URL: VAULT[development/kv/data/next data.url]
|
|
SONAR_TOKEN: VAULT[development/kv/data/next data.token]
|
|
SONAR_SCANNER_VERSION: 4.6.1.2450
|
|
SONAR_SCANNER_HOME: ${HOME}/.sonar/sonar-scanner-${SONAR_SCANNER_VERSION}-linux
|
|
PATH: ${SONAR_SCANNER_HOME}/bin:$PATH
|
|
# Need to clone full depth to track the changed files: for SQ analysis and for validation tasks
|
|
CIRRUS_CLONE_DEPTH: 0
|
|
# Use bash (instead of sh on linux or cmd.exe on windows)
|
|
CIRRUS_SHELL: bash
|
|
BASE_BRANCH: ${CIRRUS_BASE_BRANCH}
|
|
DEFAULT_BRANCH: ${CIRRUS_DEFAULT_BRANCH}
|
|
|
|
|
|
container_definition: &CONTAINER_DEFINITION
|
|
cluster_name: ${CIRRUS_CLUSTER_NAME}
|
|
builder_role: cirrus-builder
|
|
builder_image: docker-builder-v*
|
|
builder_instance_type: t3.small
|
|
builder_subnet_id: ${CIRRUS_AWS_SUBNET}
|
|
region: eu-central-1
|
|
namespace: default
|
|
use_in_memory_disk: true
|
|
|
|
setup_sonar_scanner: &SETUP_SONAR_SCANNER
|
|
setup_sonar_scanner_script:
|
|
- apt update -y && apt upgrade -y && apt update -y && apt install -y unzip
|
|
- curl --create-dirs -sSLo $HOME/.sonar/sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip
|
|
- unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/
|
|
|
|
tooling_tests_task:
|
|
eks_container:
|
|
<<: *CONTAINER_DEFINITION
|
|
dockerfile: ci/Dockerfile
|
|
cpu: 1
|
|
memory: 2G
|
|
env:
|
|
PYTHONPATH: .
|
|
install_dependencies_script:
|
|
- cd rspec-tools
|
|
- pipenv install
|
|
- pipenv run pip install pytest pytest-cov
|
|
tests_script:
|
|
- bash ci/fetch_branches.sh
|
|
- cd rspec-tools
|
|
- pipenv run pytest --cov=rspec_tools --cov-report=xml
|
|
<<: *SETUP_SONAR_SCANNER
|
|
analyze_script:
|
|
- cd rspec-tools
|
|
- sonar-scanner
|
|
|
|
|
|
frontend_tests_task:
|
|
eks_container:
|
|
<<: *CONTAINER_DEFINITION
|
|
dockerfile: ci/frontend-tests-dockerfile
|
|
cpu: 1
|
|
memory: 2G
|
|
node_modules_cache:
|
|
folder: frontend/node_modules
|
|
reupload_on_changes: false # since there is a fingerprint script
|
|
fingerprint_script:
|
|
- echo $CIRRUS_OS
|
|
- node --version
|
|
- cat frontend/package-lock.json
|
|
populate_script:
|
|
- cd frontend
|
|
- npm install
|
|
tests_script:
|
|
- bash ci/fetch_branches.sh
|
|
- cd frontend
|
|
- npm run build
|
|
- npm test -- --detectOpenHandles --coverage .
|
|
<<: *SETUP_SONAR_SCANNER
|
|
analyze_script:
|
|
- cd frontend
|
|
- sonar-scanner
|
|
|
|
validate_metadata_task:
|
|
eks_container:
|
|
<<: *CONTAINER_DEFINITION
|
|
dockerfile: ci/Dockerfile
|
|
cpu: 1
|
|
memory: 2G
|
|
metadata_tests_script:
|
|
- ./ci/validate_metadata.sh
|
|
|
|
validate_ci_tests_task:
|
|
skip: "!changesInclude('ci_tests/**', 'ci/**')"
|
|
eks_container:
|
|
<<: *CONTAINER_DEFINITION
|
|
dockerfile: ci/Dockerfile
|
|
cpu: 1
|
|
memory: 2G
|
|
ci_tests_script:
|
|
- ./ci_tests/asciidoc_validation/run_tests.sh
|
|
|
|
validate_asciidoc_task:
|
|
eks_container:
|
|
<<: *CONTAINER_DEFINITION
|
|
dockerfile: ci/Dockerfile
|
|
cpu: 1
|
|
memory: 2G
|
|
asciidoc_tests_script:
|
|
- ./ci/validate_asciidoc.sh
|
|
|
|
validate_links_task:
|
|
timeout_in: 120m
|
|
eks_container:
|
|
<<: *CONTAINER_DEFINITION
|
|
dockerfile: ci/Dockerfile
|
|
cpu: 1
|
|
memory: 2G
|
|
env:
|
|
LINK_CACHE_NAME: link-probing-status
|
|
LINK_CACHE_PATH: /root/link-probing-history.cache
|
|
cache_download_script:
|
|
- bash ci/cirrus-cache.sh download ${LINK_CACHE_NAME} ${LINK_CACHE_PATH}
|
|
tests_script:
|
|
- md5sum /root/link-probing-history.cache/link_probes.history || true
|
|
- ./ci/validate_links.sh ${LINK_CACHE_PATH}
|
|
- md5sum /root/link-probing-history.cache/link_probes.history
|
|
always:
|
|
cache_upload_script:
|
|
- bash ci/cirrus-cache.sh upload ${LINK_CACHE_NAME} ${LINK_CACHE_PATH}
|
|
|
|
all_required_checks_task:
|
|
depends_on:
|
|
- tooling_tests
|
|
- frontend_tests
|
|
- validate_metadata
|
|
- validate_asciidoc
|
|
- validate_ci_tests
|
|
eks_container:
|
|
<<: *CONTAINER_DEFINITION
|
|
dockerfile: ci/Dockerfile
|
|
cpu: 1
|
|
memory: 1G
|
|
clone_script:
|
|
- echo 'This is a dummy task used to wait on other tasks. Clone is not necessary.'
|
|
print_message_script:
|
|
- echo 'All required checks have passed'
|
|
|