Зависимость Gitlab CI от выпуска или отладочной сборки - PullRequest
0 голосов
/ 01 февраля 2019

Я изучаю, как работает gitlab-runner, и создаю сценарий для запуска сборок для проекта Windows C #.

Я установил бегунок на своей оболочке и установил все необходимые инструменты для сборки, но теперь яЯ нахожусь на этапе, когда мне нужно создать хороший сценарий .yml для запуска.

У меня уже есть код, но я не знаю, возможно ли иметь несколько зависимостей, таких как OR ?

Это способ, которым я хочу его настроить: The steps

Это то, что у меня есть сейчас:

variables:
  PROJECT_LOCATION: "ProjectFolder"
  PROJECT_NAME: "ProjectName"

before_script:
  - echo "starting build for %PROJECT_NAME%"
  - cd %PROJECT_LOCATION%

stages:
  - build
  - artifacts
  - test
  - deploy

build:debug:
  stage: build
  script:
  - echo "Restoring NuGet Packages..."
  - 'nuget restore "%PROJECT_NAME%.sln"'
  - echo "Starting debug build..."
  - 'msbuild /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Debug /verbosity:quiet /p:AllowUnsafeBlocks=true /nr:false "%PROJECT_NAME%.sln"'
  except:
    - master
  tags:
    - windows

build:release:
  stage: build
  script:
  - echo "Restoring NuGet Packages..."
  - 'nuget restore "%PROJECT_NAME%.sln"'
  - echo "Starting release build..."
  - 'msbuild /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet /p:AllowUnsafeBlocks=true /nr:false "%PROJECT_NAME%.sln"'
  only:
    - master
  tags:
    - windows

artifacts:
  stage: artifacts
  script:
  - echo "Creating artifacts..."
  dependencies: 
    - build
  artifacts:
    name: "Console"
    paths:
      - Project.Console/bin/
    expire_in: 2 days
    untracked: true

    name: "Service"
    paths:
       - Project.Service/bin/
    expire_in: 1 week
    untracked: true
  only:
    - tags
    - master
    - schedules
  tags:
    - windows

test:unit:
  stage: test
  script:
  - echo "Running tests..."
  dependencies: 
    - build
  tags:
    - windows

test:integration:
  stage: test
  script:
  - echo "Running integration tests..."
  dependencies: 
    - build
  only:
    - tags
    - master
    - schedules
  tags:
    - windows

deploy:
  stage: deploy
  script:
  - echo "Deploy to production..."
  dependencies: 
    - build
  environment:
    name: production
  only:
    - tags
  tags:
    - windows

Но, как вы можете видеть, я даю ей сборку зависимостей , и ей это не нравится, потому что у меня есть build: debug и build: release.Есть ли способ обойти это?

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

1 Ответ

0 голосов
/ 04 февраля 2019

Я нашел ответ, очевидно, у вас может быть несколько зависимостей, и это оператор or.

Так, например:

artifacts:
  stage: artifacts
  script:
  - echo "Creating artifacts..."
  dependencies: 
    - build:debug
    - build:release
  artifacts:
    name: "Console"
    paths:
      - Project.Console/bin/
    expire_in: 2 days
    untracked: true

    name: "Service"
    paths:
       - Project.Service/bin/
    expire_in: 1 week
    untracked: true
  only:
    - tags
    - master
    - schedules
  tags:
    - windows
...