Blob Blame History Raw
{%- from 'macros.jinja' import puma_service_dropin %}
{%- set ruby = 'ruby2.7' %}

tsp_dependencies:
  pkg.installed:
    - pkgs:
      - git
      - tar
      - make
      - gcc-c++
      - zlib-devel
      - libQt5WebKit5-devel
      - postgresql-devel
      - postgresql-server-devel
      - {{ ruby }}-devel
      - system-user-wwwrun

tsp_user:
  user.present:
    - name: tsp

/srv/www/travel-support-program:
  file.directory:
    - user: tsp

/var/cache/tsp:
  file.directory:
    - user: wwwrun

/var/log/tsp:
  file.directory:
    - user: wwwrun

https://github.com/openSUSE/travel-support-program.git:
  git.latest:
    - branch: master
    - target: /srv/www/travel-support-program
    - rev: master
    - user: tsp

/srv/www/travel-support-program/tmp:
  file.directory:
    - user: tsp

/srv/www/travel-support-program/log:
  file.directory:
    - user: tsp

tsp_ruby_dependencies:
  cmd.run:
    - name: bundler.{{ ruby }} install --deployment
    - cwd: /srv/www/travel-support-program
    - runas: tsp
    - unless: bundler.{{ ruby }} check

tsp_db_migration:
  cmd.run:
    - name: rake.{{ ruby }} db:migrate
    - cwd: /srv/www/travel-support-program
    - env:
      - RAILS_ENV: 'production'
    - runas: tsp
    - require:
        - cmd: tsp_ruby_dependencies
    - onlyif: rake.{{ ruby }} db:migrate:status | grep down

tsp_assets_precompile:
  cmd.run:
    - name: rake.{{ ruby }} assets:precompile
    - cwd: /srv/www/travel-support-program
    - env:
      - RAILS_ENV: 'production'
    - runas: tsp
    - onchanges:
        - git: https://github.com/openSUSE/travel-support-program.git
    - require:
        - cmd: tsp_ruby_dependencies

/etc/systemd/system/tsp.service:
  file.managed:
    - source: salt://profile/tsp/files/tsp.service
    - template: jinja
    - context:
        ruby: {{ ruby }}
    - require_in:
      - service: tsp_service

/srv/www/travel-support-program/config/site.yml:
  file.managed:
    - source: salt://profile/tsp/files/site.yml
    - template: jinja
    - user: tsp
    - require_in:
      - service: tsp_service

/srv/www/travel-support-program/config/database.yml:
  file.managed:
    - source: salt://profile/tsp/files/database.yml
    - template: jinja
    - user: tsp
    - require_in:
      - service: tsp_service

{{ puma_service_dropin('tsp') }}

tsp_service:
  service.running:
    - name: tsp
    - enable: True
    - watch:
        - file: /etc/systemd/system/tsp.service
        - file: /srv/www/travel-support-program/config/site.yml
        - file: /srv/www/travel-support-program/config/database.yml
        - file: tsp_puma_service_custom