diff --git a/azure-pipelines-1.yml b/azure-pipelines-1.yml new file mode 100644 index 00000000000..70207a48067 --- /dev/null +++ b/azure-pipelines-1.yml @@ -0,0 +1,46 @@ +trigger: +- main + +pool: + vmImage: 'windows-latest' + +variables: + buildConfiguration: 'Release' + wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' + dotnetSdkVersion: '6.x' + +steps: +# Étape 1 : Installation du SDK .NET +- task: UseDotNet@2 + displayName: 'Install .NET SDK $(dotnetSdkVersion)' + inputs: + packageType: 'sdk' + version: '$(dotnetSdkVersion)' + +# Étape 2 : Restauration des dépendances +- script: dotnet restore + displayName: 'Restore dependencies' + +# Étape 3 : Build du projet avec la configuration spécifiée +- script: dotnet build --configuration $(buildConfiguration) --no-restore + displayName: 'Build project ($(buildConfiguration))' + +# Étape 4 : Exécution des tests +- script: dotnet test --configuration $(buildConfiguration) --no-build --verbosity normal + displayName: 'Run unit tests' + +# Étape 5 : Compilation des fichiers Sass en CSS +- script: './node_modules/.bin/node-sass $(wwwrootDir) --output $(wwwrootDir)' + displayName: 'Compile Sass assets ($(wwwrootDir))' + +# Étape 6 : Publication des artefacts +- script: dotnet publish --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory) + displayName: 'Publish project ($(buildConfiguration))' + +# Étape 7 : Téléversement de l’artefact de build +- task: PublishBuildArtifacts@1 + displayName: 'Upload artifact' + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)' + ArtifactName: 'drop' + publishLocation: 'Container' diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 23402e427df..70207a48067 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,3 +1,46 @@ -pool: MyAgentPool -steps: -- bash: echo hello world \ No newline at end of file +trigger: +- main + +pool: + vmImage: 'windows-latest' + +variables: + buildConfiguration: 'Release' + wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' + dotnetSdkVersion: '6.x' + +steps: +# Étape 1 : Installation du SDK .NET +- task: UseDotNet@2 + displayName: 'Install .NET SDK $(dotnetSdkVersion)' + inputs: + packageType: 'sdk' + version: '$(dotnetSdkVersion)' + +# Étape 2 : Restauration des dépendances +- script: dotnet restore + displayName: 'Restore dependencies' + +# Étape 3 : Build du projet avec la configuration spécifiée +- script: dotnet build --configuration $(buildConfiguration) --no-restore + displayName: 'Build project ($(buildConfiguration))' + +# Étape 4 : Exécution des tests +- script: dotnet test --configuration $(buildConfiguration) --no-build --verbosity normal + displayName: 'Run unit tests' + +# Étape 5 : Compilation des fichiers Sass en CSS +- script: './node_modules/.bin/node-sass $(wwwrootDir) --output $(wwwrootDir)' + displayName: 'Compile Sass assets ($(wwwrootDir))' + +# Étape 6 : Publication des artefacts +- script: dotnet publish --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory) + displayName: 'Publish project ($(buildConfiguration))' + +# Étape 7 : Téléversement de l’artefact de build +- task: PublishBuildArtifacts@1 + displayName: 'Upload artifact' + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)' + ArtifactName: 'drop' + publishLocation: 'Container' diff --git a/templates/build.yml b/templates/build.yml new file mode 100644 index 00000000000..15ca39ca575 --- /dev/null +++ b/templates/build.yml @@ -0,0 +1,19 @@ +parameters: + buildConfiguration: 'Release' + +steps: +- task: DotNetCoreCLI@2 + displayName: 'Build the project - ${{ parameters.buildConfiguration }}' + inputs: + command: 'build' + arguments: '--no-restore --configuration ${{ parameters.buildConfiguration }}' + projects: '**/*.csproj' + +- task: DotNetCoreCLI@2 + displayName: 'Publish the project - ${{ parameters.buildConfiguration }}' + inputs: + command: 'publish' + projects: '**/*.csproj' + publishWebProjects: false + arguments: '--no-build --configuration ${{ parameters.buildConfiguration }} --output $(Build.ArtifactStagingDirectory)/${{ parameters.buildConfiguration }}' + zipAfterPublish: true \ No newline at end of file