atlassian-bambooagent-cmake-role
Роль Ansible для установки CMake на агенте Atlassian Bamboo
Устанавливает конкретную версию cmake
на удаленных системах и регистрирует cmake/cpack/ctest
как системные инструменты для возможностей агента Bamboo. Также регистрирует cmake
в PATH
на Windows и сохраняет версию и пути к cmake в факте bamboo_capabilities
.
Требования
В данный момент работает только на Ubuntu, OSX и Windows. Нужны официальные установочные пакеты на диске. На Linux это должен быть tar файл, предоставленный на официальной странице загрузки CMake. На Windows и OSX это соответственно установщики в формате .exe
и .dmg
.
Переменные роли
переменная | по умолчанию | значение |
---|---|---|
cmake_installation |
обязательно | словарь, описывающий установку, смотрите ниже. |
linux_install_prefix |
'' |
Префикс установки для Linux (по умолчанию пустая строка). |
bamboo_capabilities |
(пустой словарь) | словарь фактов, содержащий возможности агента. После выполнения будут добавлены дополнительные ключи. |
cmake_installation
На Linux: tar файл cmake распаковывается на удаленной системе по пути
{{ linux_install_prefix }}/usr/local/cmake-version-specific
. Параметрыfile
,subfolder
иversion
изcmake_installation
должны быть определены. Пример:local_cmake_version: major: 3 minor: 4 patch: 1 local_cmake_installation: file: 'cmake-{{ local_cmake_version.major }}.{{ local_cmake_version.minor }}.{{ local_cmake_version.patch }}-Linux-x86_64.tar.gz' subfolder: cmake-{{ local_cmake_version.major }}.{{ local_cmake_version.minor }}.{{ local_cmake_version.patch }}-Linux-x86_64 version: "{{ local_cmake_version }}"
На OSX: роль использует DMG установщик, в который нужно добавить 'version'. Пример:
bamboo_cmake_version: major: 3 minor: 4 patch: 1 local_cmake_installation: file: 'cmake-{{ local_cmake_version.major }}.{{ local_cmake_version.minor }}.{{ local_cmake_version.patch }}-Darwin-x86_64.dmg' install_cmd: 'rm -rf /Applications/CMake.app && cp -R -f "${mount}/CMake.app" /Applications/' remove_interactive: True version: "{{ local_cmake_version }}"
linux_install_prefix
Эта переменная используется для установки cmake
как переносимого пакета по указанному префиксу. Например, это может быть {{ bambooagent_install_root }}/usr/local
, который изолирует используемые бинарные файлы от остальной операционной системы. Эта папка должна иметь приоритет над системным путем при запуске агента.
Возможности, объявленные ролью
После выполнения эта роль объявляет следующие возможности для агента Bamboo:
возможность | значение |
---|---|
system.builder.command.cmake(/ctest/cpack) |
путь к командам |
cmake_version |
версия cmake |
Зависимости
Эта роль зависит от роли для установки DMG ansible-atlassian-bambooagent-install-dmg-role
.
Пример плейбука
Вот пример использования роли для установки на агентах OSX.
- hosts: osx-agents
vars:
# объявляет версию cmake и установщик
- play_cmake_version:
major: 3
minor: 7
patch: 1
- play_cmake_installation:
file: "/path/to/cmake/installers/cmake-{{ play_cmake_version.major }}.{{ play_cmake_version.minor }}.{{ play_cmake_version.patch }}-Darwin-x86_64.dmg"
install_cmd: 'rm -rf /Applications/CMake.app && cp -R -f "${mount}/CMake.app" /Applications/'
remove_interactive: True
version: "{{ bamboo_cmake_version }}"
pre_tasks:
- name: '[BAMBOO] пустая декларация возможностей'
set_fact:
bamboo_capabilities: {}
roles:
# Устанавливает cmake
- role: atlassian-bambooagent-cmake-role
vars:
cmake_installation: "{{ play_cmake_installation }}"
linux_install_prefix: "/home/bambooagent/"
Лицензия
BSD
Информация об авторе
Любые комментарии по Ansible, PR или отчеты об ошибках приветствуются в соответствующем проекте на GitHub.
Installs CMake in an Atlassian Bamboo remote agent and declares the cmake builder capability
ansible-galaxy install raffienficiaud/ansible-atlassian-bambooagent-cmake-role