diff --git a/deploy.sh b/deploy.sh deleted file mode 100755 index 060387bd5..000000000 --- a/deploy.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash - -# Get date and timestamp to ensure unique filenames. -# https://man7.org/linux/man-pages/man1/date.1.html -# https://www.geeksforgeeks.org/date-command-linux-examples/ -# Structured like this: __ -# Outputs: ______ -# Example: 19_11_2023__23_02_57 -now="$(date +"%m_%d_%Y__%H_%M_%S")" -filename="backend/logs/deploy__$now.log" - -echo "Running deploy script..." -echo "See logs in $filename" - -# https://serverfault.com/questions/103501/how-can-i-fully-log-all-bash-scripts-actions -# Redirect all commands, results and errors to a log file. -exec 1> "$filename" 2>&1 - - -# https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html -# -e: Stop script on first failed command. -# -x: Trace executed commands. -set -ex - -# Fetch latest changes. -# -f: force pull, overwrite local changes. -git pull -f origin master - -################################## -# Frontend # -################################## - -cd frontend || exit -yarnpkg run ci:debian -yarnpkg run build -cd .. - -################################## -# Backend # -################################## - -cd backend || exit -source aliases.sh -poetry-sync-prod -poetry-migrate-apply -poetry-run-collectstatic -touch reload # Trigger restart of uwsgi server. -cd .. diff --git a/sync-backend-on-remote.sh b/sync-backend-on-remote.sh new file mode 100755 index 000000000..8e8d7c585 --- /dev/null +++ b/sync-backend-on-remote.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# Dette scriptet kjører med setuid samfundet-httpd i prod + +set -euo pipefail + +# Setter umask slik at nye filer får 664/775-tilganger +# (lim-web har skrivetilgang) +umask 002 + +git pull +cd backend +source venv/bin/activate +poetry install --sync --only main +python manage.py migrate +touch reload diff --git a/sync-backend.sh b/sync-backend.sh new file mode 100755 index 000000000..a15724ef8 --- /dev/null +++ b/sync-backend.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# dette scriptet kjører på klienten din :D +# putt noe slikt i din .ssh/config: +# Host cirkus +# HostName cirkus.samfundet.no +# User vsbugge +# +# Før du kjører scriptet må du sette REMOTE_PATH +# variabelen til hvor samfundet.no repoet ligger +# på cirkus. Dette bør være forskjellig fra prod +# og staging. + +# Sørg for at update-backend-on-remote.sh er +# executable av gruppa (lim-web) og at det har +# setuid samfundet-httpd (eller tilsvarende) +ssh cirkus "${REMOTE_PATH}/update-backend-on-remote.sh" diff --git a/sync-frontend.sh b/sync-frontend.sh new file mode 100755 index 000000000..b8ba891da --- /dev/null +++ b/sync-frontend.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# dette scriptet kjører på klienten din :D +# putt noe slikt i din .ssh/config: +# Host cirkus +# HostName cirkus.samfundet.no +# User vsbugge +# +# Før du kjører scriptet må du sette REMOTE_PATH +# variabelen til hvor samfundet.no repoet ligger +# på cirkus. Dette bør være forskjellig fra prod +# og staging. frontend/dist bør ha setguid +# lim-web. + +set -euo pipefail + +cd frontend +yarn build +rsync -avz --no-o --delete \ + --chown=:lim-web \ + --chmod=Du=rwx,Dg=rwx,Do=rx,Fu=rw,Fg=rw,Fo=r \ + dist/ "cirkus:${REMOTE_PATH}/dist/"