Installs a specific version of cmake into the remotes and registers the cmake/cpack/ctest as system builders for the Bamboo agent's capabilities.
Also registers cmake on the PATH on Windows and registers the cmake version and paths in a fact bamboo_capabilities.
Currently working only on Ubuntu, OSX and Windows. Requires the official installation packages on disk. On Linux, this should be the tar file provided by
the official CMake download page. On Windows and OSX, those are respectively the .exe and .dmg packaged installers.
| variable | default | meaning |
|---|---|---|
cmake_installation |
required | a dictionary describing the installation, see below. |
linux_install_prefix |
'' |
Installation prefix for Linux (defaults to empty string). |
bamboo_capabilities |
(empty dict) | fact dictionary holding the agent's capabilities. The dictionary will contain additional keys after the run. |
-
On Linux: the cmake tar file is deflated on the remote under the
{{ linux_install_prefix }}/usr/local/cmake-version-specific. The fieldsfile,subfolderandversionofcmake_installationshould be defined. Example: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 }}"
-
On OSX: the role uses the DMG installer, to which 'version' should be added. Example:
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 }}"
The variable is used to install cmake as a relocatable package under this particular prefix. It can go for instance
{{ bambooagent_install_root }}/usr/local that is local to the build agent, and which isolates the binaries being in use from the rest of the
operating system. This folder should takes precedence over the system path when the agent starts.
Once run, this role declares the following capabilities onto the Bamboo agent instance:
| capability | value |
|---|---|
system.builder.command.cmake(/ctest/cpack) |
location of the commands |
cmake_version |
version of cmake |
This role relies on the DMG installation role ansible-atlassian-bambooagent-install-dmg-role.
Here is an example on how to use the role for installing on OSX agents.
- hosts: osx-agents
vars:
# declares the cmake version and installer
- 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] empty capabilities declaration'
set_fact:
bamboo_capabilities: {}
roles:
# Installs cmake
- role: atlassian-bambooagent-cmake-role
vars:
cmake_installation: "{{ play_cmake_installation }}"
linux_install_prefix: "/home/bambooagent/"BSD
Any comments on the Ansible, PR or bug reports are welcome from the corresponding Github project.