Как создать подпапку в Bitbucket Pipelines

Я изо всех сил пытаюсь настроить сборку в Bitbucket Pipelines.

Это решение C #, и код находится во вложенной папке, а не в корневой папке репозитория. Вот почему при его создании я получаю сообщение об ошибке:

+ восстановление dotnet

MSBUILD: ошибка MSB1003: укажите файл проекта или решения. Текущий рабочий каталог не содержит файла проекта или решения.

Я прочитал документы, но, похоже, нет возможности попытаться указать подпапку. Как тогда его настроить?

Вот мой файл .yml:

image: microsoft/dotnet:latest

pipelines:
  default:
    - step:
        caches:
          - dotnetcore
        script: # Modify the commands below to build your repository.
          - export PROJECT_NAME=MyProjectNameHere
          - export TEST_NAME=MyProjectNameHere
          - dotnet restore
          - dotnet build $PROJECT_NAME
          - dotnet test $TEST_NAME

person Community    schedule 01.08.2017    source источник


Ответы (4)


Нашел экспериментально, в документации об этом вообще не упоминалось.

Вам нужно использовать полный путь и имя файла решения в двух строках и только имя папки в строке restore:

image: microsoft/dotnet:latest

pipelines:
  default:
    - step:
        caches:
          - dotnetcore
        script: # Modify the commands below to build your repository.
          - export PROJECT_NAME=FolderNameHere/MySolution.sln # use the full path and solution file name
          - export TEST_NAME=FolderNameHere/MySolution.sln # use the full path and solution file name
          - dotnet restore FolderNameHere # use only folder name here
          - dotnet build $PROJECT_NAME
          - dotnet test $TEST_NAME
person Community    schedule 01.08.2017

Возможно, вы могли бы cd зайти в подпапку перед вызовом команд сборки.

image: microsoft/dotnet:latest

pipelines:
  default:
    - step:
        caches:
          - dotnetcore
        script:
          - cd MyProject # Set current working directory to subfolder
          - export ...
          - dotnet restore

Вы также можете добавить проверки для печати текущей папки в любое время с шагом, который запускает pwd («печать рабочего каталога»).

person Mr-IDE    schedule 31.03.2019

Теперь вы также можете использовать папки проекта и вам не нужно использовать файл .sln в переменных PROJECT_NAME и TEST_NAME.

- step:
    caches:
      - dotnetcore
    script: # Modify the commands below to build your repository.
      - export PROJECT_NAME=YourSolutionFolder/YourProjectFolder
      - export TEST_NAME=YourSolutionFolder/YourTestProjectFolder
      - dotnet restore YourSolutionFolder
      - dotnet build $PROJECT_NAME
      - dotnet test $TEST_NAME
person Fjut    schedule 06.11.2018

Нашел экспериментальным путем.

image: mcr.microsoft.com/dotnet/core/sdk:3.1
pipelines:
  default:
    - step:
        caches:
          - dotnetcore
        script: # Modify the commands below to build your repository.
          - cd MainDir
          - cd SubDir
          - export PROJECT_NAME=MyProject
          - export TEST_NAME=MyProject.Test
          - dotnet restore 
          - dotnet build $PROJECT_NAME
          - dotnet test $TEST_NAME
person İsmail Kocacan    schedule 17.05.2020