Развертывание и запуск файлов .exe с использованием Azure Pipelines - PullRequest
0 голосов
/ 01 апреля 2020

Я изо всех сил стараюсь, чтобы мои конвейеры MultiStage запускали файл .exe в размещенном агенте, работающем на Azure ВМ.

Мой файл .yaml:

trigger:
- develop

 stages:
  - stage: build
    displayName: Build
  jobs:
   - job: buildJob
     pool: 
       vmImage: 'ubuntu-16.04'
     variables:
       buildConfiguration: 'Release'  
 steps:
  - task: NuGetToolInstaller@1
    inputs:
      versionSpec: '5.5.0'

  - task: DotNetCoreCLI@2
    displayName: 'Dotnet Build $(buildConfiguration)'
    inputs:      
      command: 'build'
      arguments: '--configuration $(buildConfiguration)'
      projects: '**/TestProj.csproj'

  - task: DotNetCoreCLI@2
    displayName: "Publish"
    inputs:
      command: 'publish'
      publishWebProjects: false                    
      projects: '**/TestProj.csproj'
      arguments: '--no-restore --configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
      zipAfterPublish: false

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'          
      publishLocation: Container

- stage: Release
   displayName: Release
   dependsOn: build
  jobs:      
   - deployment: AzureVMDeploy           
     displayName: agentDeploy
     environment:           
       name: AzureDeploy
       resourceName: vmName
       resourceType: VirtualMachine
       tags: develop

Эта виртуальная машина находится на azure конвейерах Environment. После запуска этого конвейера папка загружается в ВМ, но я не могу найти, как автоматизировать выполнение выходного файла .exe в этой папке. Я думаю, что путь состоит в том, чтобы создать задание с задачей, которая должна это сделать, но я не могу понять, как настроить агент, установленный на виртуальной машине, для выполнения этой задачи.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Вы можете указать задачи в стратегии: Задание развертывания Например:

YAML

stages:
- stage: build
  jobs:
    - job: buildJob
      pool:
        vmImage: 'Ubuntu-16.04'
      steps:
        - task: PublishPipelineArtifact@1
          inputs:
            targetPath: '$(Pipeline.Workspace)'
            publishLocation: 'pipeline'

- stage: deploy
  dependsOn: build
  jobs:
  - deployment: DeployWeb
    displayName: deploy Web App
    environment:
      name: vm1
      resourceType: virtualmachine
    strategy:
      runOnce:
        deploy:
            steps:
            - script: echo my first deployment
            - task: CmdLine@2
              inputs:
                script: 'more README.md'
                workingDirectory: '$(Pipeline.Workspace)/build.buildJob/s'

Для этого конвейера YAML я публикую sh все файлы в конвейерное рабочее пространство для артефакта на этапе сборки, затем этот артефакт будет загружен на целевую виртуальную машину среды vm1 на этапе развертывания (имя папки будет {имя этапа}. {имя задания}), затем запустите задачу командной строки, чтобы получить содержимое файла. , (Задачи сценариев и командной строки будут выполняться на этой виртуальной машине)

0 голосов
/ 01 апреля 2020

Если я вас правильно понял, вы хотите выполнить файл артефакта, который был развернут на ВМ.

Я думаю, что PowerShell на целевой машине должна выполнить эту работу за вас. Yoy может написать простой встроенный скрипт для исполнения вашего файла. Однако вам нужно иметь удаленное взаимодействие на ВМ. Эта статья может помочь вам в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...