Зависимости артефактов (место назначения) с использованием спецификаций Bamboo YAML - PullRequest
2 голосов
/ 29 мая 2020

Я пытаюсь настроить конфигурацию плана сборки Bamboo, используя спецификации Bamboo YAML (файл .yml ниже). На последнем этапе (создание артефактов развертывания) я хочу использовать общие артефакты из предыдущего этапа. Указав артефакты заданий как «shared: true», я могу использовать их на втором этапе. Однако они находятся в одной папке назначения. Это можно легко отредактировать с помощью пользовательского интерфейса.

Зависимости артефактов

Но как я могу указать папку назначения для двух артефактов в спецификациях Bamboo YAML, например, от «Root рабочего каталога» до » ./app "и" ./wwwroot "соответственно?

---
version: 2
plan:
  project-key: COCKPIT
  key: BE
  name: Cockpit - Continuous Build - Windows 
stages:
  - Build Stage:
    - Build Backend
    - Build Frontend
  - Build Artifact:
    - Create Deployment Artifact

Build Backend:
  requirements:
    - Visual Studio Build Tools (32-bit)
  tasks:
    - checkout:
        repository: cockpit_backend
        path: 'cockpit_backend'
        force-clean-build: false
    - script:
      - dotnet publish .\cockpit_backend\src\Cockpit.WebApi\ --configuration Release

  artifacts:
    -
      name: BackendBuild
      location: cockpit_backend/src/Cockpit.WebApi/bin/Release/netcoreapp3.1/publish
      pattern: '**/*.*'
      required: true
      shared: true

Build Frontend:
  requirements:
    - os_linux
  tasks:
    - checkout:
        repository: 'Cockpit / cockpit_frontend'
        path: 'cockpit_frontend'
        force-clean-build: false
    - script:
      - cd cockpit_frontend
      - npm install
    - script:
      - cd cockpit_frontend
      - npm run build-prod
  docker: 
    image: node:alpine
  artifacts:
    -
      name: FrontendBuild
      location: cockpit_frontend/dist
      pattern: '**/*.*'
      required: true
      shared: true

Create Deployment Artifact:
  requirements:
    - os_windows
  tasks:
    - script:
        interpreter: powershell
        scripts:
          - $buildDir = "Cockpit"
          - $dest = "Cockpit_${bamboo.buildNumber}.zip"
          - Add-Type -assembly "system.io.compression.filesystem"
          - '[io.compression.zipfile]::CreateFromDirectory($buildDir, $dest)'
  artifacts:
    -
      name: Completebuild
      pattern: 'Cockpit_${bamboo.buildNumber}.zip'
      required: true

1 Ответ

0 голосов
/ 30 мая 2020

Спецификации YAML не поддерживают управление зависимостями артефактов, и вам необходимо иметь задачу сценария в задании «Создать артефакт развертывания», чтобы поместить их в отдельные папки из root перед сжатием

...