Sith/.github/workflows/deploy.yml

65 lines
1.7 KiB
YAML
Raw Permalink Normal View History

name: Deploy to production
2022-08-26 12:39:10 +00:00
concurrency: production
on:
2022-08-26 11:20:57 +00:00
push:
2023-09-19 20:17:26 +00:00
branches: [master]
2022-08-26 11:20:57 +00:00
workflow_dispatch:
jobs:
2022-08-26 11:26:41 +00:00
deployment:
runs-on: ubuntu-latest
2022-08-26 11:26:41 +00:00
environment: production
2022-08-26 12:39:10 +00:00
timeout-minutes: 30
2022-08-26 11:26:41 +00:00
steps:
2022-08-26 11:20:57 +00:00
- name: SSH Remote Commands
2024-10-15 10:32:40 +00:00
uses: appleboy/ssh-action@v1.1.0
2022-08-26 11:20:57 +00:00
with:
# Proxy
2022-08-26 11:58:45 +00:00
proxy_host : ${{secrets.PROXY_HOST}}
proxy_port : ${{secrets.PROXY_PORT}}
proxy_username : ${{secrets.PROXY_USER}}
proxy_passphrase: ${{secrets.PROXY_PASSPHRASE}}
proxy_key: ${{secrets.PROXY_KEY}}
2022-08-26 11:20:57 +00:00
# Serveur web
2022-08-26 11:58:45 +00:00
host: ${{secrets.HOST}}
port : ${{secrets.PORT}}
username : ${{secrets.USER}}
key: ${{secrets.KEY}}
2022-08-26 14:39:49 +00:00
script_stop: true
# See https://github.com/ae-utbm/sith/wiki/GitHub-Actions#deployment-action
2022-08-26 11:58:45 +00:00
script: |
2024-10-15 10:32:40 +00:00
cd ${{secrets.SITH_PATH}}
2022-08-26 12:39:10 +00:00
2024-09-02 10:42:27 +00:00
git fetch
git reset --hard origin/master
2024-07-16 21:35:24 +00:00
poetry install --with prod --without docs,tests
npm install
poetry run ./manage.py install_xapian
2022-08-26 12:39:10 +00:00
poetry run ./manage.py migrate
2024-10-15 10:32:40 +00:00
poetry run ./manage.py collectstatic --clear --noinput
2022-08-26 12:39:10 +00:00
poetry run ./manage.py compilemessages
sudo systemctl restart uwsgi
2024-12-15 16:31:41 +00:00
sentry:
runs-on: ubuntu-latest
environment: production
timeout-minutes: 30
needs: deployment
steps:
- uses: actions/checkout@v4
- name: Sentry Release
uses: getsentry/action-release@v1.7.0
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
SENTRY_URL: ${{ secrets.SENTRY_URL }}
with:
environment: production