100 lines
2.3 KiB
Python
100 lines
2.3 KiB
Python
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',
|
|
},
|
|
}
|