Назад | Перейти на главную страницу

SaltStack: установка pip только при изменении git checkout

Я работаю над солевым состоянием для развертывания приложения Python. В основном это работает. Одна из моих проблем заключается в том, что pip install запускается каждый раз, когда запускается солевой миньон. Я хочу, чтобы он запускался только тогда, когда в git checkout есть новая фиксация. Я попробовал выполнить требования к обмену и просмотру, но это не помогло.

Это мое солевое состояние:

dmt src:
  git.latest:
    - target: /opt/dmt/src/dmt
    - name: git@gitlab.xyz.co.za:lsd/dmt.git
    - identity: /opt/dmt/src/deploy_id_rsa
    - force: True
    - force_checkout: True
    - force_reset: True
    - require:
      - file: /opt/dmt/src
      - file: /opt/dmt/src/deploy_id_rsa


dmt virtualenv:
  virtualenv.managed:
    - name: /opt/dmt
    - system_site_packages: False
    - use_wheel: True
    - python: /usr/bin/python2

dmt pip install:
  pip.installed:
    - onchange:
      - git: dmt src
    - requires:
      - virtualenv: dmt virtualenv
    - name: ""
    - pip_bin: /opt/dmt/bin/pip
    - editable: /opt/dmt/src/dmt

Как я могу сделать pip install запускаться только при наличии новой фиксации в git checkout?

Я считаю, что это множественное число: "onchange"s"

dmt pip install:
  pip.installed:
    - onchanges:
      - git: "dmt src"
    - requires:
      - virtualenv: "dmt virtualenv"
    {# ...snip... #}