Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.56 KiB
Newer Older
default:
  tags:
    - ovh
  - default_validate
Vincent SIMONIN's avatar
Vincent SIMONIN committed
  - lint
  - test
  - deliver
include:
  - project: 'digit-c4/digitc4-template-cicd'
    file: 'gitlab-ci-ansible.yml'
    ref: main

Vincent SIMONIN's avatar
Vincent SIMONIN committed
lint-job:
  stage: lint
  before_script:
    - python3 -m venv "$CI_PROJECT_DIR/plugins/venv"
    - source "$CI_PROJECT_DIR/plugins/venv/bin/activate"
Vincent SIMONIN's avatar
Vincent SIMONIN committed
    - 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"
Vincent SIMONIN's avatar
Vincent SIMONIN committed
  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

  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"
Vincent SIMONIN's avatar
Vincent SIMONIN committed
    - 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"
Vincent SIMONIN's avatar
Vincent SIMONIN committed
  script:
    - env HOST="$HOST" PORT="$PORT" API_KEY="$API_KEY" pytest --junit-xml=tests-report-netbox-rps-plugin.xml "$CI_PROJECT_DIR/plugins/netbox-rps-plugin/tests/"
    - env HOST="$HOST" PORT="$PORT" API_KEY="$API_KEY" pytest --junit-xml=tests-report-netbox-cert-plugin.xml "$CI_PROJECT_DIR/plugins/netbox-cert-plugin/tests/"
    - env HOST="$HOST" PORT="$PORT" API_KEY="$API_KEY" pytest --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
Vincent SIMONIN's avatar
Vincent SIMONIN committed
    - 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