summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <egor@tensin.name>2025-11-15 23:13:59 +0100
committerEgor Tensin <egor@tensin.name>2025-11-15 23:28:25 +0100
commit8014c89aa0061f2ea5ef7d2bc5ee3db541590168 (patch)
tree52e20b75d36c49e358daff78bea4143e300def38
parentfix a deprecation warning (diff)
downloadinfra-ansible-8014c89aa0061f2ea5ef7d2bc5ee3db541590168.tar.gz
infra-ansible-8014c89aa0061f2ea5ef7d2bc5ee3db541590168.zip
my_workspace: simplify file existsence checks
-rw-r--r--roles/my_workspace/tasks/project.yml65
1 files changed, 37 insertions, 28 deletions
diff --git a/roles/my_workspace/tasks/project.yml b/roles/my_workspace/tasks/project.yml
index 260950a..59661d0 100644
--- a/roles/my_workspace/tasks/project.yml
+++ b/roles/my_workspace/tasks/project.yml
@@ -3,6 +3,8 @@
project_url: '{{ project.url | default(project) }}'
project_name: "{{ project.name | default(project_url | urlsplit('path') | basename | regex_replace('\\.git$', '')) }}"
project_dir: '{{ my_workspace_dir }}/{{ project_name }}'
+ makefile: '{{ project_dir }}/Makefile'
+ compose_file: '{{ project_dir }}/docker-compose.yml'
block:
- name: Update repository
ansible.builtin.git: # noqa: latest
@@ -22,34 +24,41 @@
- name: user.email
value: '{{ my_workspace_git_email }}'
- - name: Set the project running
- when: not my_workspace_clone_only
- block:
- - name: Check for Makefile
- ansible.builtin.file:
- path: '{{ project_dir }}/Makefile'
- state: file
- register: makefile_check
- ignore_errors: true
+ - name: Check for Makefile
+ ansible.builtin.stat:
+ path: '{{ makefile }}'
+ get_attributes: false
+ get_checksum: false
+ get_mime: false
+ follow: true
+ register: makefile_stat
- - name: Check for docker-compose.yml
- ansible.builtin.file:
- path: '{{ project_dir }}/docker-compose.yml'
- state: file
- register: docker_compose_check
- ignore_errors: true
+ - name: Check for docker-compose file
+ ansible.builtin.stat:
+ path: '{{ compose_file }}'
+ get_attributes: false
+ get_checksum: false
+ get_mime: false
+ follow: true
+ register: compose_file_stat
- - name: Run make
- become: true
- community.general.make:
- chdir: '{{ project_dir }}'
- when: makefile_check is succeeded
+ - name: Run make
+ become: true
+ community.general.make:
+ chdir: '{{ project_dir }}'
+ when: makefile_stat.stat.readable
- - name: Run docker-compose
- become: true
- community.docker.docker_compose_v2:
- project_src: '{{ project_dir }}'
- pull: always
- build: always
- remove_orphans: true
- when: makefile_check is not succeeded and docker_compose_check is succeeded
+ - name: Run docker-compose
+ become: true
+ community.docker.docker_compose_v2:
+ project_src: '{{ project_dir }}'
+ pull: always
+ build: always
+ remove_orphans: true
+ when: not makefile_stat.stat.readable and compose_file_stat.stat.readable
+
+ - name: Fail if both files are unreadable
+ ansible.builtin.fail:
+ msg: |
+ Don't know how to run project in {{ project_dir }}
+ when: not (makefile_stat.stat.readable or compose_file_stat.stat.readable)