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
Лицензия
Unknown
Загрузки
97
Владелец
ML Engineer, computer vision and C++/Python addict. Open source advocate. Atlassian enthusiast https://bitbucket.org/renficiaud https://yayimorphology.org