
Extract the bits using the custom asciidoctor to a dedicated file. This new script uses `set -e` to catch unexpected errors. It is also covered with integration tests that get executed on the CI. This serves as the groundwork to integrate more advanced validation tests.
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'
|
|
|