- ---
-
- - name: Ensure Matrix base path exists
- ansible.builtin.file:
- path: "{{ item }}"
- state: directory
- mode: "{{ matrix_base_data_path_mode }}"
- owner: "{{ matrix_user_username }}"
- group: "{{ matrix_user_groupname }}"
- with_items:
- - "{{ matrix_base_data_path }}"
-
- - name: Preserve vars.yml on the server for easily restoring if it gets lost later on
- ansible.builtin.copy:
- src: "{{ matrix_vars_yml_snapshotting_src }}"
- dest: "{{ matrix_base_data_path }}/vars.yml"
- owner: "{{ matrix_user_username }}"
- group: "{{ matrix_user_groupname }}"
- mode: '0660'
- when: "matrix_vars_yml_snapshotting_enabled | bool"
-
- - name: Save current git-repo status on the target to aid with restoring in case of problems
- block:
- - name: Get local git hash
- delegate_to: 127.0.0.1
- become: false
- register: git_describe
- shell:
- git describe
- --always
- --tags
- --dirty
- --long
- --all
-
- - set_fact:
- git_hash: "{{ git_describe.stdout }}"
-
- - name: Git hash
- debug:
- msg: "Git hash: {{ git_hash }}"
-
- - name: Save git hash in git_hash.yml
- become: false
- local_action:
- copy
- content="git_hash_last_run{{ ":" }} {{ git_hash }}\n"
- dest="{{ matrix_vars_yml_snapshotting_src }}/git_hash.yml"
-
- - name: Copy git_hash.yml file to target
- copy:
- src: "{{ matrix_vars_yml_snapshotting_src }}/git_hash.yml"
- dest: "{{ matrix_base_data_path }}/git_hash.yml"
- owner: "{{ matrix_user_username }}"
- group: "{{ matrix_user_groupname }}"
- mode: '0660'
-
- rescue:
- - name: GIT not found error
- ansible.builtin.debug:
- msg: >-
- Couldn't find GIT on the local machine. Continuing without saving the GIT hash.
- You can disable saving the GIT hash by setting 'matrix_playbook_commit_hash_preservation_enabled: false' in vars.yml
- when: "git_describe.stderr.find('not found') != -1"
-
- - name: GIT hash error
- ansible.builtin.fail:
- msg: >-
- Error when trying to get the GIT hash.
- You can disable saving the GIT hash by setting 'matrix_playbook_commit_hash_preservation_enabled: false' in vars.yml
- when: "git_describe.stderr.find('not found') == -1"
-
- when: "matrix_vars_yml_snapshotting_enabled|bool and matrix_playbook_commit_hash_preservation_enabled|bool"
-
- - name: Ensure Matrix network is created in Docker
- community.docker.docker_network:
- name: "{{ matrix_docker_network }}"
- driver: bridge
-
- - name: Ensure matrix-remove-all script created
- ansible.builtin.template:
- src: "{{ role_path }}/templates/usr-local-bin/matrix-remove-all.j2"
- dest: "{{ matrix_local_bin_path }}/matrix-remove-all"
- mode: 0750
|