0

私は Azure を初めて使用し、パイプラインを構成して Azure 内にソリューションをデプロイするのは簡単だと確信していましたが、2 日間立ち往生しており、最新の記事が見つかりません。完全な CI/CD について説明します。

これが私の解決策です(ABPボイラープレートに基づく):

- solution folder
  - aspnet-core solution folder (API .NET Core 2.2)
  - angular (frontend part in Angular 8)

私は Azure アカウントを持っており、次の 2 つの App Service を作成しました。

どちらの設定もデフォルトです。

  • WEBSITE_RUN_FROM_PACKAGE '1'
  • WEBSITE_ENABLE_SYNC_UPDATE_SITE「真」

Azure DevOps では、すべてが緑色です...

2 つのパイプライン:

  • 角度:
trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '10.x'
  displayName: 'Install Node.js'

- script: |
    cd angular
    npm install -g @angular/cli
    npm install
    ng build --prod
  displayName: 'npm install and build'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: 'angular/dist'
    TargetPath: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'UiApp'
    publishLocation: 'Container''
  • API:
# ASP.NET Core (.NET Framework)
# Build and test ASP.NET Core projects targeting the full .NET Framework.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: PublishBuildArtifacts@1
  inputs:
    TargetPath: '$(Build.ArtifactStagingDirectory)'

リリース部分の場合:

  • 角度

wwwroot 内にサブフォルダー UIApp が作成されますが、理由がわかりません

steps:
- task: AzureWebApp@1
  displayName: 'Azure Web App Deploy: XXXXX'
  inputs:
    azureSubscription: 'XXXXXXXX'
    appType: webApp
    appName: 'XXXXX'
    package: '_XXX - Angular'
  enabled: false
  • API

Azure Web App Deploy と Azure App Service Deploy の両方を試しました。

Zip のデプロイ / パッケージからの実行 / Web のデプロイ ... を使用しようとしましたが、成功しませんでした。

API では、次のように作成されていることがわかります。

/data/sitePackages/ で、日時を含む zip ファイル

/site/wwwroot/ にも zip ファイルがありますが、名前が異なります (wwwroot は読み取り専用です)。

ヤムル:

steps:
- task: AzureWebApp@1
  displayName: 'Azure Web App Deploy: XXXXX'
  inputs:
    azureSubscription: 'XXXXXXXXXXX'
    appType: webApp
    appName: 'XXXXXX'
    package: '_XXXXX - API/drop'
    deploymentMethod: runFromPackage
  enabled: false

何が欠けているのかわかりません。完全な azure スタックを簡単に使用できるはずです...どこかで詳細を見逃しているはずです (または、全体像と Yaml のトレーニングを見逃している可能性があります)。

フロントエンドの wwwroot にサブフォルダー UiApp が作成されないようにしたいと思います。

パッケージでバックエンドがまったく機能せず、問題を修正またはデバッグする方法がわかりません。ところで、パッケージから実行する必要はありません。IIS での「従来の」方法を好む

4

1 に答える 1