kind: pipeline
type: docker


steps : 

	- name: build
	  image: mcr.microsoft.com/dotnet/sdk:6.0
	  commands:
		- cd myBlazorApp/
		- dotnet restore myBlazorApp.sln
		- dotnet build myBlazorApp.sln -c Release --no-restore
	

	- name: tests
	  image: mcr.microsoft.com/dotnet/sdk:6.0
	  commands: 
		- cd myBlazorApp/
		- dotnet restore myBlazorApp.sln
		- dotnet test myBlazorApp.sln --no-restore
	  depends_on: [build]

	- name: code-analysis
      image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dronesonarplugin-dotnet6
      commands:
        - cd myBlazorApp/
        - dotnet restore myBlazorApp.sln
        - dotnet sonarscanner begin /k:$REPO_NAME /d:sonar.host.url=$$$${PLUGIN_SONAR_HOST} /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml" /d:sonar.coverage.exclusions="Tests/**" /d:sonar.login=$$$${PLUGIN_SONAR_TOKEN} 
        - dotnet build myBlazorApp.sln -c Release --no-restore
        - dotnet test myBlazorApp.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 myBlazorApp.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release
        - dotnet sonarscanner end /d:sonar.login=$$$${PLUGIN_SONAR_TOKEN}
    secrets: [ SECRET_SONAR_LOGIN ]
    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: SECRET_SONAR_LOGIN
    depends_on: [tests]


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

## The volumes declaration appear at the end of the file, after all steps
#volumes:
#- name: docs
#  temp: {}


    - name: docker-build
      image: plugins/docker
      settings:
        dockerfile: myBlazorApp/myBlazorApp/Dockerfile
        context: .
        registry: hub.codefirst.iut.uca.fr
        repo: hub.codefirst.iut.uca.fr/lucie.bedouret/blazorCourse
        username:
            from_secret: SECRET_REGISTRY_USERNAME
        password:
            from_secret: SECRET_REGISTRY_PASSWORD
    when:
      branch:
        - master