kind: pipeline
type: docker
name: default
 
trigger:
  event:
    - push

steps:
  - name: build
    image: python:3.9-slim-buster
    volumes:
      - name: docs
        path: /docs
    commands:
      - cd src/
      - python -m venv venv
      - source venv/bin/activate
      - pip install -r requirements.txt
      - python setup.py install
      - python -m pytest
      - python setup.py sdist bdist_wheel

  
  # docker image build
  - name: docker-build-and-push
    image: plugins/docker
    settings:
       dockerfile: ./Dockerfile
       context: src/
       registry: hub.codefirst.iut.uca.fr
       repo: hub.codefirst.iut.uca.fr/louis.dufour/detection_d_intrusion
       username:
         from_secret: SECRET_REGISTRY_USERNAME
       password:
         from_secret: SECRET_REGISTRY_PASSWORD


  - name: generate-and-deploy-docs
    image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-docdeployer
    failure: ignore
    volumes:
      - name: docs
        path: /docs
    commands:
      #- cd Documentation/doxygen
      #- doxygen Doxyfile
      - /entrypoint.sh
    when:
      branch:
        - master
    depends_on: [ build ]

  # container deployment
  - name: deploy-container
    image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
    environment:
        IMAGENAME: hub.codefirst.iut.uca.fr/louis.dufour/detection_d_intrusion:latest
        CONTAINERNAME: containersae
        COMMAND: create
        OVERWRITE: true
    depends_on: [ docker-build-and-push ]

  - name: code-analysis
    image: sonarsource/sonar-scanner-cli:latest
    commands:
      - cd src/
      - sonar-scanner \
          -Dsonar.projectKey=detection_d_intrusion \
          -Dsonar.projectName=detection_d_intrusion \
          -Dsonar.sources=. \
          -Dsonar.host.url=https://codefirst.iut.uca.fr/sonar \
          -Dsonar.login=$${PLUGIN_SONAR_TOKEN}
    secrets: [ SONAR_TOKEN ]
    settings:
      # accessible en ligne de commande par $${PLUGIN_SONAR_HOST}
      sonar_host: https://codefirst.iut.uca.fr/sonar/
      # accessible en ligne de commande par $${PLUGIN_SONAR_TOKEN}
      sonar_token:
        from_secret: SONAR_TOKEN
    depends_on: [build]

volumes:
- name: docs
  temp: {}