В предыдущем посте я написал, как создать трубу Bitbucket и интегрировать ее с помощью Octopus Deploy. Если вы начинаете с труб впервые, это стоит прочитать.
В этом посте я дам вам обзор новой экспериментальной трубы Bitbucket для осьминога — Octopus-Cli-Run Анкет Если вы заинтересованы в попытке экспериментальной трубы, вы можете использовать ее для запуска команд из Octopus cli , позволяя вам дополнительно интегрировать ваш atlassian Bitbucket Pipeline с осьминогом для управления вашими пакетами, выпусками и развертываниями.
В этом посте
- Труба ямль определение
- Определения переменных труб
- Поддерживаемые команды
- Пакет
- Толкать
- Создайте информацию
- Создать выпуск
- Развернуть релиз
- Используя трубу
- Вывод
Труба ямль определение
Базовое определение трубы включает в себя ссылку на его хранилище, размещенное на Битбакет . Он также был опубликован как Осьминоги/Осьминог-Кли-Рун на Docker Hub.
У него есть один необходимый Cli_command
переменная. Это команда CLI для запуска.
Использовать трубу в вашем Bitbucket-Pipelines.yml
Файл, добавьте следующий фрагмент YAML в раздел скрипта:
- pipe: octopusdeploy/octopus-cli-run:0.13.0 variables: CLI_COMMAND: "" # EXTRA_ARGS: [' ',' ' ..] # Optional # DEBUG: " " # Optional
Труба также предоставляет Необязательно переменная массива называется Extra_args
что вы можете использовать для включения любых дополнительных аргументов командной строки для указанной команды.
Определения переменных труб
Переменные в трубах и трубах Bitbucket настроены как Переменные среды Анкет Как Octopus-Cli-Run
Труба содержит ряд команд, конкретные переменные, которые требуются, зависят от того, какую команду вы используете. Смотрите Readme Для получения дополнительной информации о переменных, которые требуются для каждой команды.
Поддерживаемые команды
Octopus-Cli-Run
Труба была написана с наиболее часто используемыми командами CLI, и она фактически построена на вершине Octopus Cli Docker Image . Это включает в себя возможность:
- Упакуйте свои файлы или создайте артефакты, используя Пакет Анкет
- Отправить пакеты в встроенный репозиторий осьминога с использованием push Анкет
- Подтолкнуть информацию о осьминоге с использованием встроенная информация Анкет
- Автоматизируйте создание выпусков, используя Создать релиз Анкет
- Развертывание выпусков, которые уже были созданы с использованием Развертывание смягчения Анкет
Далее мы рассмотрим, как выглядят шаги трубопровода для каждой из команд, используя Петлиновый Пример приложения доступен на Битбакет . Чтобы сделать это просто, шаги были уменьшены до минимального определения, которое необходимо.
Пакет
Пакет
Команда позволяет создавать Пакеты (либо как Zip или Nupkg) из файлов на диске, без необходимости в .nuspec
или .csproj
файл.
Чтобы создать пакет, определите такой шаг, как это:
- step: name: octo pack mysql-flyway script: - pipe: octopusdeploy/octopus-cli-run:0.13.0 variables: CLI_COMMAND: 'pack' ID: 'petclinic.mysql.flyway' FORMAT: 'Zip' VERSION: '1.0.0.0' SOURCE_PATH: 'flyway' OUTPUT_PATH: 'flyway' artifacts: - "flyway/*.zip"
Это упаковки пролет
Папка и создает zip -файл с именем petclinic.mysql.flyway.1.0.0.0.zip
в той же папке.
Толкать
push
Команда позволяет вам нажимать пакеты (.zip, .nupkg, .war и т. Д.) к осьминогу Встроенный репозиторий
Он также поддерживает толкание нескольких пакетов одновременно. Чтобы выполнить мульти-пакет push
, определите такой шаг, как это:
- step: name: octo push script: - pipe: octopusdeploy/octopus-cli-run:0.13.0 variables: CLI_COMMAND: 'push' OCTOPUS_SERVER: $OCTOPUS_SERVER OCTOPUS_APIKEY: $OCTOPUS_API_KEY OCTOPUS_SPACE: $OCTOPUS_SPACE PACKAGES: [ "./flyway/petclinic.mysql.flyway.1.0.0.0.zip", "target/petclinic.web.1.0.0.0.war" ]
Это толкает оба petclinic.mysql.flyway.1.0.0.0.zip
и petclinic.web.1.0.0.0.war
Пакеты до осьминога.
Создайте информацию
встроенная информация
Команда поможет вам передать информацию о вашей сборке (номер, URL, коммиты) на осьминога. Эта информация может быть просмотрена в Octopus, а также может использоваться в обоих Примечания выпуска и Примечания к развертыванию .
Если вы уже создали файл встроенной информации, вы можете предоставить его команде, используя Файл
переменная. Если переменная не предоставлена, труба будет генерировать свой собственный файл информации о сборке и отправлять его в Octopus.
Чтобы протолкнуть файл информации об автоматической сборке сборки, определите шаг, подобный этому:
- step: name: octo build-information script: - pipe: octopusdeploy/octopus-cli-run:0.13.0 variables: CLI_COMMAND: 'build-information' OCTOPUS_SERVER: $OCTOPUS_SERVER OCTOPUS_APIKEY: $OCTOPUS_API_KEY OCTOPUS_SPACE: $OCTOPUS_SPACE VERSION: '1.0.0.0' PACKAGE_IDS: ['petclinic.web']
Это создает информацию о сборке, связывает ее с версией 1.0.0.0
из petclinic.web
упаковка и подталкивает его к осьминогам.
Создать выпуск
Создать релиз
Команда позволяет создать релиз в осьминоге. Вы указываете проект, чтобы создать релиз для использования Проект
переменная.
При желании вы также можете развернуть релиз в одну или несколько сред. Чтобы достичь этого, вы должны использовать Global Extra_args
переменная массива и предоставить соответствующие варианты. Например:
Extra_args: [‘—deployto’, ‘development’, ‘-guidedfailure’, ‘true’]
Чтобы создать релиз, и позвольте Octopus выбрать версию для использования, создайте шаг, как это:
- step: name: octo create-release script: - pipe: octopusdeploy/octopus-cli-run:0.13.0 variables: CLI_COMMAND: 'create-release' OCTOPUS_SERVER: $OCTOPUS_SERVER OCTOPUS_APIKEY: $OCTOPUS_API_KEY OCTOPUS_SPACE: $OCTOPUS_SPACE PROJECT: $OCTOPUS_PROJECT
Развернуть релиз
Развертывание смягчения
Команда позволяет развернуть релизы, которые уже были созданы. Вы указываете проект и номер выпуска, чтобы развернуть релиз для использования Проект
и Release_number
переменные.
Выберите среду (ы) для развертывания, указав их в Deploy_to
переменная, используя имя или идентификатор, как так:
Deploy_to: [‘Environments-1’, ‘Development’, ‘Staging’, ‘test’]
Развернуть Последний
выпустить в Развитие
Для проекта создайте такой шаг, как это:
- step: name: octo deploy-release script: - pipe: octopusdeploy/octopus-cli-run:0.13.0 variables: CLI_COMMAND: 'deploy-release' OCTOPUS_SERVER: $OCTOPUS_SERVER OCTOPUS_APIKEY: $OCTOPUS_API_KEY OCTOPUS_SPACE: $OCTOPUS_SPACE PROJECT: $OCTOPUS_PROJECT RELEASE_NUMBER: 'latest' DEPLOY_TO: ['Development']
Используя трубу
Наконец, давайте посмотрим на использование трубы в нескольких шагах, чтобы составить полный трубопровод Bitbucket:
image: maven:3.6.1 pipelines: branches: master: - step: name: build petclinic caches: - maven script: - mvn -B verify -DskipTests -Dproject.versionNumber=1.0.0.0 -DdatabaseUserName=$DatabaseUserName -DdatabaseUserPassword=$DatabaseUserPassword -DdatabaseServerName=$DatabaseServerName -DdatabaseName=$DatabaseName artifacts: - "target/*.war" - step: name: octo pack mysql-flyway script: - pipe: octopusdeploy/octopus-cli-run:0.13.0 variables: CLI_COMMAND: 'pack' ID: 'petclinic.mysql.flyway' FORMAT: 'Zip' VERSION: '1.0.0.0' SOURCE_PATH: 'flyway' OUTPUT_PATH: './flyway' artifacts: - "flyway/*.zip" - step: name: octo push script: - pipe: octopusdeploy/octopus-cli-run:0.13.0 variables: CLI_COMMAND: 'push' OCTOPUS_SERVER: $OCTOPUS_SERVER OCTOPUS_APIKEY: $OCTOPUS_API_KEY OCTOPUS_SPACE: $OCTOPUS_SPACE PACKAGES: [ "./flyway/petclinic.mysql.flyway.1.0.0.0.zip", "target/petclinic.web.1.0.0.0.war" ] - step: name: octo build-information script: - pipe: octopusdeploy/octopus-cli-run:0.13.0 variables: CLI_COMMAND: 'build-information' OCTOPUS_SERVER: $OCTOPUS_SERVER OCTOPUS_APIKEY: $OCTOPUS_API_KEY OCTOPUS_SPACE: $OCTOPUS_SPACE VERSION: '1.0.0.0' PACKAGE_IDS: ['petclinic.web'] - step: name: octo create-release script: - pipe: octopusdeploy/octopus-cli-run:0.13.0 variables: CLI_COMMAND: 'create-release' OCTOPUS_SERVER: $OCTOPUS_SERVER OCTOPUS_APIKEY: $OCTOPUS_API_KEY OCTOPUS_SPACE: $OCTOPUS_SPACE PROJECT: $OCTOPUS_PROJECT - step: name: octo deploy-release script: - pipe: octopusdeploy/octopus-cli-run:0.13.0 variables: CLI_COMMAND: 'deploy-release' OCTOPUS_SERVER: $OCTOPUS_SERVER OCTOPUS_APIKEY: $OCTOPUS_API_KEY OCTOPUS_SPACE: $OCTOPUS_SPACE PROJECT: $OCTOPUS_PROJECT RELEASE_NUMBER: 'latest' DEPLOY_TO: ['Development']
Вот и все!
Вы можете просмотреть полный Петклинический Bitbucket-Pipelines.yml
Файл на Битбакет .
Образец проекта осьминога Вы можете увидеть Петклиновый проект осьминога в нашем образцы пример.
Вывод
Использование трубы Bitbucket действительно помогает упростить конфигурацию в вашем трубопроводе Bitbucket, и в качестве автора помогает способствовать повторному использованию ваших действий. Проверьте Bitbucket Pipelines Для получения дополнительной информации и Экспериментальная труба осьминога Для получения более подробной информации о том, как вы можете использовать Bitbucket и Octopus вместе.
Этот пост был первоначально опубликован в octopus.com .
Оригинал: «https://dev.to/octopus/octopus-pipe-for-bitbucket-octopus-cli-run-3pfc»