Files
dc-deployments-automation/pipeline_generator/templates/bitbucket-pipelines.yml.j2

62 lines
2.0 KiB
Django/Jinja

---
# This file was generated; to regnerated `cd` to `pipeline_generator`
# and run:
#
# make > ../bitbucket-pipelines.yml
image: debian:bullseye
options:
size: 2x
definitions:
caches:
ansible-collections: ansible_collections
services:
docker:
memory: 4096
pipelines:
default:
- step:
name: Pre Parallelization stage
script:
- echo "Running tests in {{ scenario_paths|length }} batches"
- step:
name: Check if the template is up-to-date
script:
- |
actual_scenario_count=$(find ./roles -type f -name "molecule.yml" -exec dirname {} ';' | wc -l | sed -e 's/^[[:space:]]*//')
grep "Running tests in ${actual_scenario_count} batches" bitbucket-pipelines.yml
GREP_RETURN_CODE=$?
if [[ $GREP_RETURN_CODE -ne 0 ]]; then
echo "Mismatch between expected and actual number [${actual_scenario_count}] of scenarios. Please look at https://bitbucket.org/atlassian/dc-deployments-automation/src/master/DEVELOPMENT.md for instructions on how to fix this error."
exit $GREP_RETURN_CODE
fi
- parallel:
{% for spath in scenario_paths %}
- step:
name: {{ spath.parts[2] }}/{{ spath.parts[4] }}
caches:
- ansible-collections
services:
- docker
script:
- export ANSIBLE_CONFIG=./ansible.cfg
- ./bin/install-ansible --dev
- cd roles/{{ spath.parts[2] }}
- pipenv run molecule test -s {{ spath.parts[4] }}
{% endfor %}
- step:
name: Run Snyk security scan
services:
- docker
script:
- ./bin/install-ansible --dev
- apt-get update && apt-get install -y npm
- npm install -g snyk
- snyk auth $SNYK_TOKEN
- pipenv run snyk monitor --severity-threshold=high --project-name=dc-deployments-automation