Exécutez une tâche de build uniquement lorsque les modifications ont été extraites d'un référentiel git

StackOverflow https://stackoverflow.com//questions/23014713

  •  21-12-2019
  •  | 
  •  

Question

J'ai un programme C++ hébergé dans le référentiel git Bitbucket que je compile avec CMake.La pièce actuelle peut être vue ci-dessous.Ça marche bien sauf build-la tâche est exécutée à chaque fois que la lecture est exécutée.Au lieu de cela, j'aimerais build-tâche à exécuter uniquement lorsqu'une nouvelle version du logiciel est extraite git-module.Comment puis-je le savoir build-tâche si clone-task a trouvé une nouvelle version ?

---
# tasks of role: foo

- name: clone repository
  git: repo=git@bitbucket.org:foo/foo.git
       dest={{ foo.dir }}
       accept_hostkey=yes

- name: create build dir
  file: state=directory path={{ foo.build_dir }}

- name: build
  command: "{{ item }} chdir={{ foo.build_dir }}"
  with_items:
    - cmake ..
    - make
Était-ce utile?

La solution

Vous pouvez enregistrer une variable avec la sortie de clone tâche et invoquer build tâche lorsque l'état de clone la tâche est modifiée

Par exemple:

---
# tasks of role: foo

- name: clone repository
  git: repo=git@bitbucket.org:foo/foo.git
       dest={{ foo.dir }}
       accept_hostkey=yes
  register: gitclone

- name: create build dir
  file: state=directory path={{ foo.build_dir }}

- name: build
  command: "{{ item }} chdir={{ foo.build_dir }}"
  with_items:
    - cmake ..
    - make
  when: gitclone.changed
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top