Skip to content

Commit

Permalink
Add systemd unit
Browse files Browse the repository at this point in the history
  • Loading branch information
dann1 committed Mar 28, 2024
1 parent b0d1d96 commit e4adb6f
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 3 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/rspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ jobs:
run: cd ./tests && ./prepare.rb "${{ env.oned }}" "${{ env.oneflow }}"

- name: Start engine
run: provision-engine-server start && sleep 2
run: systemctl start provision-engine && sleep 2

- name: Rspec
run: cd ./tests && rspec init.rb

- name: Stop engine
run: provision-engine-server stop
run: systemctl stop provision-engine

- name: Uninstall
run: ./install.sh purge
Expand Down
9 changes: 8 additions & 1 deletion install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
install() {
# dependencies
for gem in "${gems[@]}"; do
is_gem_installed $gem || sudo gem install $gem
is_gem_installed "$gem" || sudo gem install "$gem"
done

[ -d "$CONF_DIR" ] || sudo mkdir "$CONF_DIR"
Expand All @@ -12,6 +12,7 @@ install() {

src_conf="$(realpath "share/etc/$CONF_FILE")"
src_exec="$(realpath src/server/cli/provision-engine-server)"
src_systemd="$(realpath share/etc/$SYSTEMD_UNIT)"

if [[ $setup_mode == "copy" ]]; then
# config
Expand All @@ -22,6 +23,7 @@ install() {

# executable
[ -f "$EXEC_PATH" ] || sudo cp "$src_exec" "$EXEC_PATH"
[ "$(uname)" == Linux ] && sudo cp "$src_systemd" "$SYSTEMD_UNIT_PATH"

# libraries
for file in $MODULES; do
Expand All @@ -36,12 +38,14 @@ install() {

# executable
[ -L "$EXEC_PATH" ] || sudo ln -s "$src_exec" "$EXEC_PATH"
[ "$(uname)" == Linux ] && sudo ln -s "$src_systemd" "$SYSTEMD_UNIT_PATH"

# libraries
for file in $MODULES; do
[ -L "$INSTALL_DIR/${file}" ] || ln -s "$(realpath "src/server/${file}")" "${INSTALL_DIR}"
done
fi

}

postinstall() {
Expand All @@ -63,6 +67,7 @@ clean() {
fi

[ -f "$EXEC_PATH" ] || [ -L "$EXEC_PATH" ] && sudo rm $EXEC_PATH
[ -f "$SYSTEMD_UNIT_PATH" ] || [ -L "$SYSTEMD_UNIT_PATH" ] && sudo rm $SYSTEMD_UNIT_PATH
[ -d "$INSTALL_DIR" ] && rm -rf "$INSTALL_DIR"
}

Expand All @@ -83,6 +88,8 @@ SCHEMAS="serverless_runtime.json error.json config.json"

EXEC_FILE="provision-engine-server"
EXEC_PATH="/usr/local/bin/${EXEC_FILE}"
SYSTEMD_UNIT="provision-engine.service"
SYSTEMD_UNIT_PATH="/etc/systemd/system/$SYSTEMD_UNIT"

INSTALL_DIR="/opt/provision-engine"
MODULES="client.rb configuration.rb log.rb server.rb runtime.rb error.rb function.rb"
Expand Down
13 changes: 13 additions & 0 deletions share/provision-engine.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[Unit]
Description=Provision Engine Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/provision-engine-server start
ExecStop=/usr/bin/provision-engine-server stop
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

0 comments on commit e4adb6f

Please sign in to comment.