Set up CI with Azure Pipelines
[skip ci]
This commit is contained in:
79
azure-pipelines.yml
Normal file
79
azure-pipelines.yml
Normal file
@@ -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'
|
||||||
|
|
||||||
Reference in New Issue
Block a user