kind: pipeline type: docker name: HeartTrack-API #trigger: # branch: # - master # event: # - push steps: - name: build image: mcr.microsoft.com/dotnet/sdk:8.0 commands: - cd src/ - dotnet restore HeartTrack.sln - dotnet build HeartTrack.sln -c Release --no-restore - dotnet publish HeartTrack.sln -c Release --no-restore -o CI_PROJECT_DIR/build/release - name: tests image: mcr.microsoft.com/dotnet/sdk:8.0 commands: - cd src/ - dotnet restore HeartTrack.sln - dotnet test HeartTrack.sln --no-restore depends_on: [build] - name: code-analysis image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dronesonarplugin-dotnet8 secrets: [ SECRET_SONAR_LOGIN ] settings: sonar_host: https://codefirst.iut.uca.fr/sonar/ sonar_token: from_secret: SECRET_SONAR_LOGIN project_key: HeartTrack-API coverage_exclusions: Tests/**, StubbedContextLib/**, StubAPI/** duplication_exclusions: Tests/**, StubbedContextLib/** commands: - cd src/ - dotnet restore HeartTrack.sln - dotnet sonarscanner begin /k:HeartTrack-API /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} /d:sonar.coverage.exclusions="Tests/**, StubbedContextLib/**, StubAPI/**, HeartTrackAPI/Utils/**" /d:sonar.cpd.exclusions="Tests/**, StubbedContextLib/**, StubAPI/**" /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml" - dotnet build HeartTrack.sln -c Release --no-restore - dotnet test HeartTrack.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage" - reportgenerator -reports:"**/coverage.cobertura.xml" -reporttypes:SonarQube -targetdir:"coveragereport" - dotnet publish HeartTrack.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release - dotnet sonarscanner end /d:sonar.login=$${PLUGIN_SONAR_TOKEN} depends_on: [ tests ] - name: swagger image: mcr.microsoft.com/dotnet/sdk:7.0 failure: ignore volumes: - name: docs path: /docs environment: CODEFIRST_CLIENTDRONE_ENV_DOTNET_ROLL_FORWARD: LatestMajor CODEFIRST_CLIENTDRONE_ENV_DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1 commands: - cd src/ - dotnet restore HeartTrack.sln - cd HeartTrackAPI - dotnet new tool-manifest - dotnet tool install -g --version 6.5.0 Swashbuckle.AspNetCore.Cli - cd ../ - dotnet build HeartTrack.sln -c Release --no-restore - dotnet publish HeartTrack.sln -c Release --no-restore -o CI_PROJECT_DIR/build/release - export PATH="$PATH:/root/.dotnet/tools" - swagger tofile --output /docs/swagger.json HeartTrackAPI/bin/Release/net8.0/HeartTrackAPI.dll v1 depends_on: [build,tests] - name: generate-and-deploy-docs image: hub.codefirst.iut.uca.fr/maxime.batista/codefirst-docdeployer failure: ignore commands: - /entrypoint.sh -l docs/doxygen -t doxygen when: event: - push depends_on: [ build ] volumes: - name: docs temp: {} --- kind: pipeline type: docker name: HeartTrack-API-CD trigger: event: - push steps: - name: docker-build-and-push image: plugins/docker settings: dockerfile: src/HeartTrackAPI/Dockerfile context: src/ registry: hub.codefirst.iut.uca.fr repo: hub.codefirst.iut.uca.fr/david.d_almeida/api username: from_secret: SECRET_REGISTRY_USERNAME password: from_secret: SECRET_REGISTRY_PASSWORD # database container stub - name: deploy-container-stub image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest environment: CODEFIRST_CLIENTDRONE_ENV_TYPE: STUB IMAGENAME: hub.codefirst.iut.uca.fr/david.d_almeida/api:latest CONTAINERNAME: heart_stub COMMAND: create ADMINS: davidd_almeida,kevinmonteiro,antoineperederii,paullevrault,antoinepinagot,nicolasraymond,camillepetitalot OVERWRITE: true depends_on: [ docker-build-and-push ] # - name: deploy-container # image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest # environment: # IMAGENAME: hub.codefirst.iut.uca.fr/david.d_almeida/api:latest # CONTAINERNAME: heart_api # CODEFIRST_CLIENTDRONE_ENV_TYPE: API # CODEFIRST_CLIENTDRONE_ENV_PORT: 8080 # ADMINS: davidd_almeida,kevinmonteiro,antoineperederii,paullevrault,antoinepinagot,nicolas.raymond # COMMAND: create # OVERWRITE: true # depends_on: [ docker-build-and-push, deploy-container-stub ] # database container deployment - name: deploy-container-mysql image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest environment: IMAGENAME: mariadb:10 CONTAINERNAME: mysql COMMAND: create OVERWRITE: false PRIVATE: true CODEFIRST_CLIENTDRONE_ENV_MARIADB_ROOT_PASSWORD: from_secret: db_root_password CODEFIRST_CLIENTDRONE_ENV_MARIADB_DATABASE: from_secret: db_database CODEFIRST_CLIENTDRONE_ENV_MARIADB_USER: from_secret: db_user CODEFIRST_CLIENTDRONE_ENV_MARIADB_PASSWORD: from_secret: db_password ADMINS: davidd_almeida,kevinmonteiro,antoineperederii,paullevrault,antoinepinagot,nicolasraymond,camillepetitalot # database container bdd - name: deploy-container-bdd image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest environment: CODEFIRST_CLIENTDRONE_ENV_TYPE: BDD CODEFIRST_CLIENTDRONE_ENV_HOST: HeartDev-mysql CODEFIRST_CLIENTDRONE_ENV_PORTDB: 3306 CODEFIRST_CLIENTDRONE_ENV_DATABASE: from_secret: db_database CODEFIRST_CLIENTDRONE_ENV_USERNAME: from_secret: db_user CODEFIRST_CLIENTDRONE_ENV_PASSWORD: from_secret: db_password IMAGENAME: hub.codefirst.iut.uca.fr/david.d_almeida/api:latest CONTAINERNAME: api CODEFIRST_CLIENTDRONE_ENV_PORT: 8080 ADMINS: davidd_almeida,kevinmonteiro,antoineperederii,paullevrault,antoinepinagot,nicolasraymond COMMAND: create OVERWRITE: true depends_on: [deploy-container-mysql, docker-build-and-push, deploy-container-stub] - name: deploy-container-phpmyadmin image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest environment: IMAGENAME: phpmyadmin/phpmyadmin CONTAINERNAME: phpmyadmin COMMAND: create OVERWRITE: true CODEFIRST_CLIENTDRONE_ENV_PMA_HOST: HeartDev-mysql CODEFIRST_CLIENTDRONE_ENV_PMA_PORT: 3306 # CODEFIRST_CLIENTDRONE_ENV_PMA_ABSOLUTE_URI: /containers/HeartDev-phpmyadmin CODEFIRST_CLIENTDRONE_ENV_PMA_USER: from_secret: db_user CODEFIRST_CLIENTDRONE_ENV_PMA_PASSWORD: from_secret: db_password # CODEFIRST_CLIENTDRONE_ENV_PMA_ABSOLUTE_URI: /phpmyadmin ADMINS: davidd_almeida,kevinmonteiro,antoineperederii,paullevrault,antoinepinagot,nicolasraymond depends_on: [deploy-container-mysql]