# 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: 'net9.0' dotNetVersion: '9.0.x' buildId: $(Build.BuildNumber) steps: # Start: Build WebAPI - task: UseDotNet@2 inputs: version: $(dotNetVersion) - script: dotnet build --configuration $(buildConfiguration) "WebAPI/DiunaBI-WebAPI.csproj" displayName: 'Build .NET 8 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: DeleteFiles@1 inputs: SourceFolder: '$(Build.ArtifactStagingDirectory)/WebAPI' Contents: | appsettings.Development.json client_secrets.Development.json # End: Build WebAPI # Start: Build Frontend - task: NodeTool@0 inputs: versionSpec: '18.x' displayName: 'Install Node.js' - script: | npm install -g @angular/cli npm install -g yarn yarn install ng config --global cli.packageManager yarn ng build --configuration production workingDirectory: 'Frontend' displayName: 'npm install and build' - task: CopyFiles@2 inputs: SourceFolder: '$(Build.Repository.LocalPath)/Frontend/dist/diunaBI/browser' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)/Frontend' - task: replacetokens@5 inputs: rootDirectory: '$(Build.ArtifactStagingDirectory)/Frontend' targetFiles: '**/*.js' encoding: 'auto' tokenPattern: 'default' writeBOM: true actionOnMissing: 'warn' keepToken: true actionOnNoFiles: 'warn' enableTransforms: false enableRecursion: false useLegacyPattern: false enableTelemetry: true # End: Build Frontend # Publish results - task: PublishBuildArtifacts@1 displayName: 'publish artifacts' inputs: pathtoPublish: '$(Build.ArtifactStagingDirectory)'