From fd50c6783814ca21a406ff31406d90f9485160c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zieli=C5=84ski?= Date: Tue, 29 Nov 2022 20:20:17 +0000 Subject: [PATCH] Set up CI with Azure Pipelines [skip ci] --- azure-pipelines.yml | 79 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..6f2a46c --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,79 @@ +# ASP.NET +# Build and test ASP.NET projects. +# Add steps that publish symbols, save build artifacts, deploy, and more: +# https://docs.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4 + +trigger: +- deploy + +pool: + vmImage: 'ubuntu-latest' + +variables: + buildConfiguration: 'Release' + targetRuntime: 'linux-x64' + selfContained: false + dotNetFramework: 'net6.0' + dotNetVersion: '6.0.x' + +steps: +# Start: Build WebAPI +- task: UseDotNet@2 + inputs: + version: $(dotNetVersion) +- script: dotnet build --configuration $(buildConfiguration) "WebAPI/Diuna WebAPI.csproj" + displayName: 'Build .NET 6 Application' + +- task: DotNetCoreCLI@2 + displayName: 'dotnet publish $(buildConfiguration)' + inputs: + command: publish + publishWebProjects: True + arguments: '--configuration $(BuildConfiguration) --framework $(dotNetFramework) --runtime $(targetRuntime) --self-contained $(selfContained) --output $(Build.ArtifactStagingDirectory)' + workingDirectory: 'WebAPI' + zipAfterPublish: False + +- task: ArchiveFiles@2 + inputs: + rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/WebAPI/' + includeRootFolder: true + archiveType: 'zip' + archiveFile: '$(Build.ArtifactStagingDirectory)/zip/Diuna-WebAPI.zip' + replaceExistingArchive: true +# End: Build WebAPI +# Start: Build Frontend +- task: NodeTool@0 + inputs: + versionSpec: '14.x' + displayName: 'Install Node.js' +- script: | + npm install -g @angular/cli + npm install + ng build --configuration production + workingDirectory: 'Frontend' + displayName: 'npm install and build' +- task: CopyFiles@2 + inputs: + SourceFolder: '$(Build.Repository.LocalPath)/Frontend/dist/diuna' + Contents: '**' + TargetFolder: '$(Build.ArtifactStagingDirectory)/Frontend' +- task: ArchiveFiles@2 + inputs: + rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/Frontend/' + includeRootFolder: true + archiveType: 'zip' + archiveFile: '$(Build.ArtifactStagingDirectory)/zip/Diuna-Frontend.zip' + replaceExistingArchive: true +# End: Build Frontend +# Cleanup +- task: DeleteFiles@1 + inputs: + Contents: | + $(Build.ArtifactStagingDirectory)/WebApi/* + $(Build.ArtifactStagingDirectory)/Frontend/* +# Publish results +- task: PublishBuildArtifacts@1 + displayName: 'publish artifacts' + inputs: + pathtoPublish: '$(Build.ArtifactStagingDirectory)/zip' +