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
,subfolder
andversion
ofcmake_installation
should 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.