from semver import compare repo.libs.tools.require_bundle(node, 'nodejs') git_deploy = { '/opt/hedgedoc': { 'rev': node.metadata.get('hedgedoc/version'), 'repo': 'https://github.com/hedgedoc/hedgedoc.git', 'needs': { 'directory:/opt/hedgedoc', }, 'triggers': { 'action:hedgedoc_yarn', 'svc_systemd:hedgedoc:restart', }, }, } files = { '/opt/hedgedoc/config.json': { 'content_type': 'mako', 'needs': { 'git_deploy:/opt/hedgedoc', }, 'triggers': { 'svc_systemd:hedgedoc:restart', }, }, '/etc/systemd/system/hedgedoc.service': { 'triggers': { 'action:systemd-reload', 'svc_systemd:hedgedoc:restart', }, } } directories = { '/opt/hedgedoc': {}, '/var/opt/hedgedoc': { 'owner': 'hedgedoc', 'group': 'hedgedoc', }, '/opt/hedgedoc/.yarn': { 'owner': 'hedgedoc', 'group': 'hedgedoc', 'needs': { 'git_deploy:/opt/hedgedoc', }, }, } if compare(node.metadata.get('hedgedoc/version'), '1.9.7') <= 0: command = ' && '.join([ 'cd /opt/hedgedoc', 'yarn workspaces focus --production', 'yarn install --ignore-scripts', 'yarn build', ]) elif compare(node.metadata.get('hedgedoc/version'), '1.9.9') >= 0: command = ' && '.join([ 'cd /opt/hedgedoc', 'bin/setup', 'yarn install --immutable', 'yarn build', ]) actions = { 'hedgedoc_yarn': { 'command': ' && '.join([ 'cd /opt/hedgedoc', 'yarn install --immutable', 'yarn build', ]), 'needs': { 'action:nodejs_install_yarn', 'file:/opt/hedgedoc/config.json', 'git_deploy:/opt/hedgedoc', 'pkg_apt:nodejs', }, 'triggered': True, }, } svc_systemd = { 'hedgedoc': { 'needs': { 'file:/opt/hedgedoc/config.json', 'directory:/var/opt/hedgedoc', 'directory:/opt/hedgedoc/.yarn', 'action:hedgedoc_yarn', 'postgres_db:hedgedoc', }, }, } users = { 'hedgedoc': { 'home': '/opt/hedgedoc', }, }