@installdoc/ansible-gas-station
Version:
An Ansible playbook that provisions your network with software from GitHub Awesome lists, developed with disaster recovery in mind ⛽🔥🤤
91 lines (82 loc) • 3.43 kB
YAML
- name: 'Ensure {{ sdk_location }}/cmdline-tools directory exists'
become_user: '{{ user.username }}'
file:
mode: 0700
path: '{{ sdk_location }}/cmdline-tools'
state: directory
when: install_cmdlinetools
- name: Ensure older version of cmdline-tools is removed
become_user: '{{ user.username }}'
file:
path: '{{ sdk_location }}/cmdline-tools/latest'
state: absent
when: install_cmdlinetools
- name: Ensure commandline-tools is up-to-date
become_user: '{{ user.username }}'
unarchive:
dest: '{{ sdk_location }}/cmdline-tools'
remote_src: true
src: '/tmp/{{ cmdline_tools_file_name }}'
when: install_cmdlinetools
- name: Rename commandline-tools directory after extraction
become_user: '{{ user.username }}'
command: 'mv {{ sdk_location }}/cmdline-tools/cmdline-tools {{ sdk_location }}/cmdline-tools/latest'
when: install_cmdlinetools
- name: Fetch the list of available SDKs and Tools
become_user: '{{ user.username }}'
command: '{{ sdk_location }}/cmdline-tools/latest/bin/sdkmanager --list'
register: sdk_list
when: android_sdks | length == 0
- name: Find the latest version of SDKs and Tools
become_user: '{{ user.username }}'
set_fact:
build_tools_version: ["{{ sdk_list.stdout_lines | regex_findall('build-tools;\\d*\\.\\d*\\.\\d* ') | last | trim }}"]
emulator_version: [emulator]
patcher_version: ["{{ sdk_list.stdout_lines | regex_findall('patcher;v\\d*') | last }}"]
platform_tools_version: [platform-tools]
platforms_version: ["{{ sdk_list.stdout_lines | regex_findall('platforms;android-\\d{2,}') | last }}"]
sources_version: ["{{ sdk_list.stdout_lines | regex_findall('sources;android-\\d*') | last }}"]
when: android_sdks | length == 0
- name: Ensure SDKs and Tools are installed # noqa 301
become_user: '{{ user.username }}'
shell: |
set -o pipefail
echo 'y' | {{ sdk_location }}/cmdline-tools/latest/bin/sdkmanager --install "{{ item }}"
args:
executable: /bin/bash
loop: '{{ android_sdks +
build_tools_version | default([]) +
platforms_version | default([]) +
sources_version | default([]) +
patcher_version | default([]) +
emulator_version | default([]) +
platform_tools_version | default([]) }}'
# @action Ensures configured Android SDKs are present
# Updates `~/.bashrc` to include SDK tools in `PATH` on Linux systems
- name: Ensure Tools are added to Bash PATH
become_user: '{{ user.username }}'
blockinfile:
block: |
export PATH="$PATH:{{ sdk_location }}/cmdline-tools/latest/bin"
export PATH="$PATH:{{ sdk_location }}/platform-tools"
export PATH="$PATH:{{ sdk_location }}/tools/bin"
export PATH="$PATH:{{ sdk_location }}/tools"
create: true
marker: '# {mark} ANSIBLE MANAGED BLOCK for Android Studio'
mode: 0644
path: ~/.bashrc
# @action Ensures configured Android SDKs are present
# Updates `~/.zshrc` to include SDK tools in `PATH` on Linux systems
- name: Ensure Tools are added to ZSH PATH
become_user: '{{ user.username }}'
blockinfile:
block: |
export PATH="$PATH:{{ sdk_location }}/cmdline-tools/latest/bin"
export PATH="$PATH:{{ sdk_location }}/platform-tools"
export PATH="$PATH:{{ sdk_location }}/tools/bin"
export PATH="$PATH:{{ sdk_location }}/tools"
create: true
marker: '# {mark} ANSIBLE MANAGED BLOCK for Android Studio'
mode: 0644
path: ~/.zshrc