default: tags: - ovh stages: - default_validate - lint - build - test - deliver include: - project: 'digit-c4/digitc4-template-cicd' file: 'gitlab-ci-ansible.yml' ref: main lint-job: stage: lint before_script: - python3 -m venv "$CI_PROJECT_DIR/plugins/venv" - source "$CI_PROJECT_DIR/plugins/venv/bin/activate" - pip install pylint script: - pylint "$CI_PROJECT_DIR/plugins/netbox-rps-plugin/netbox_rps_plugin" "$CI_PROJECT_DIR/plugins/netbox-rps-plugin/tests" - pylint "$CI_PROJECT_DIR/plugins/netbox-cert-plugin/netbox_cert_plugin" "$CI_PROJECT_DIR/plugins/netbox-cert-plugin/tests" - pylint "$CI_PROJECT_DIR/tests" after_script: - deactivate - rm -rf "$CI_PROJECT_DIR/plugins/venv" build-job: # This job runs in the build stage, which runs first. stage: build script: - ansible-playbook ansible/build.yml run-test-job: stage: test before_script: - chmod 600 $ANSIBLE_PRIVATE_KEY_FILE - env ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_PRIVATE_KEY_FILE="$ANSIBLE_PRIVATE_KEY_FILE" ansible-playbook -i "$TESTING_HOSTS" -u debian ansible/deploy_on_test.yml - python3 -m venv "$CI_PROJECT_DIR/plugins/venv" - source "$CI_PROJECT_DIR/plugins/venv/bin/activate" - pip install -r "$CI_PROJECT_DIR/plugins/netbox-rps-plugin/tests/requirements.e2e.txt" - pip install -r "$CI_PROJECT_DIR/plugins/netbox-cert-plugin/tests/requirements.e2e.txt" - pip install -r "$CI_PROJECT_DIR/tests/requirements.e2e.txt" script: - env HOST="$CI_COMMIT_SHORT_SHA.$HOSTNAME" PORT="$PORT" API_KEY="$API_KEY" pytest -s --junit-xml=tests-report-netbox-rps-plugin.xml "$CI_PROJECT_DIR/plugins/netbox-rps-plugin/tests/" - env HOST="$CI_COMMIT_SHORT_SHA.$HOSTNAME" PORT="$PORT" API_KEY="$API_KEY" pytest -s --junit-xml=tests-report-netbox-cert-plugin.xml "$CI_PROJECT_DIR/plugins/netbox-cert-plugin/tests/" - env HOST="$CI_COMMIT_SHORT_SHA.$HOSTNAME" PORT="$PORT" API_KEY="$API_KEY" pytest -s --junit-xml=tests-report-netbox-dist-plugin.xml "$CI_PROJECT_DIR/tests/e2e/" after_script: - env ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_PRIVATE_KEY_FILE="$ANSIBLE_PRIVATE_KEY_FILE" ansible-playbook -i "$TESTING_HOSTS" -u debian ansible/halt_test.yml - deactivate - rm -rf "$CI_PROJECT_DIR/plugins/venv" artifacts: when: always reports: junit: tests-report-netbox-*-plugin.xml deliver-latest-job: stage: deliver variables: IMAGE_TAG: "latest" script: - ansible-playbook ansible/deliver.yml only: - main - master deliver-tagged-job: stage: deliver variables: IMAGE_TAG: $CI_COMMIT_TAG script: - ansible-playbook ansible/deliver.yml only: - tags