Files
ansible_role_package/tasks/helpers/cargo_build.yml
2026-02-06 01:28:14 -07:00

52 lines
2.0 KiB
YAML

# vim: set filetype=yaml.ansible :
---
- name: Cargo source install helper
block:
- name: Fetch git repo
vars:
git:
path: "{{ d_cache.path }}/{{ cargo_build.name }}"
repo: "{{ cargo_build.repo }}"
depth: "{{ cargo_build.depth | default(1) }}"
force: "{{ cargo_build.force_git | default(true) }}"
recursive: "{{ cargo_build.recursive | default(true) }}"
version: "{{ cargo_build.version | default(omit) }}"
ansible.builtin.include_tasks:
file: helpers/git.yml
- name: Build cargo release
ansible.builtin.command:
chdir: "{{ d_cache.path }}/{{ cargo_build.name }}"
argv: "{{ [cargo, build] + cargo_build.build_flags }}"
- name: Install cargo release
block:
- name: Create missing directories
become: "{{ install_become }}"
become_user: "{{ install_become_user }}"
loop: "{{ cargo_build.files }}"
loop_control:
loop_var: file
ansible.builtin.file:
state: directory
path: "{{ install_prefix }}/{{ file.to | dirname }}"
mode: '0755'
owner: "{{ cargo_build.owner | default(ansible_user_id) }}"
group: "{{ cargo_build.group | default(ansible_user_gid) }}"
- name: Install release files
become: "{{ install_become }}"
become_user: "{{ install_become_user }}"
loop: "{{ cargo_build.files }}"
loop_control:
loop_var: file
ansible.builtin.copy:
backup: false
remote_src: true
src: "{{ d_cache.path }}/{{ cargo_build.name }}/{{ file.from }}"
dest: "{{ install_prefix }}/{{ file.to }}"
owner: "{{ cargo_build.owner | default(ansible_user_id) }}"
group: "{{ cargo_build.group | default(ansible_user_gid) }}"
mode: "{{ file.mode | default('0644') }}"
force: "{{ file.force | default(true) }}"