Sith/.github/workflows/deploy.yml

65 lines
1.8 KiB
YAML
Raw 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
uses: appleboy/ssh-action@dce9d565de8d876c11d93fa4fe677c0285a66d78
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
2022-08-26 12:39:10 +00:00
# See https://github.com/ae-utbm/sith3/wiki/GitHub-Actions#deployment-action
2022-08-26 11:58:45 +00:00
script: |
2022-12-15 22:55:29 +00:00
export PATH="/home/sith/.local/bin:$PATH"
pushd ${{secrets.SITH_PATH}}
2022-08-26 12:39:10 +00:00
git pull
2024-07-16 21:35:24 +00:00
poetry install --with prod --without docs,tests
poetry run ./manage.py install_xapian
2022-08-26 12:39:10 +00:00
poetry run ./manage.py migrate
poetry run ./manage.py collectstatic --clear --noinput
2022-08-26 12:39:10 +00:00
poetry run ./manage.py compilemessages
sudo systemctl restart uwsgi
2022-08-26 21:19:29 +00:00
sentry:
runs-on: ubuntu-latest
environment: production
timeout-minutes: 30
needs: deployment
2022-08-26 21:19:29 +00:00
steps:
- uses: actions/checkout@v3
2022-08-26 21:19:29 +00:00
- name: Sentry Release
uses: getsentry/action-release@v1.2.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