mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-11-04 02:53:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Deploy to production
 | 
						|
concurrency: production
 | 
						|
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    branches: [master]
 | 
						|
  workflow_dispatch:
 | 
						|
 | 
						|
jobs:
 | 
						|
  deployment:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    environment: production
 | 
						|
    timeout-minutes: 30
 | 
						|
  
 | 
						|
    steps:
 | 
						|
    - name: SSH Remote Commands
 | 
						|
      uses: appleboy/ssh-action@v1.1.0
 | 
						|
      with:
 | 
						|
        # Proxy
 | 
						|
        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}}
 | 
						|
        
 | 
						|
        # Serveur web
 | 
						|
        host: ${{secrets.HOST}}
 | 
						|
        port : ${{secrets.PORT}}
 | 
						|
        username : ${{secrets.USER}}
 | 
						|
        key: ${{secrets.KEY}}
 | 
						|
 | 
						|
        script_stop: true
 | 
						|
 | 
						|
        # See https://github.com/ae-utbm/sith/wiki/GitHub-Actions#deployment-action
 | 
						|
        script: |
 | 
						|
          cd ${{secrets.SITH_PATH}}
 | 
						|
 | 
						|
          git fetch
 | 
						|
          git reset --hard origin/master
 | 
						|
          uv sync --group prod
 | 
						|
          npm install
 | 
						|
          uv run ./manage.py install_xapian
 | 
						|
          uv run ./manage.py migrate
 | 
						|
          uv run ./manage.py collectstatic --clear --noinput
 | 
						|
          uv run ./manage.py compilemessages
 | 
						|
 | 
						|
          sudo systemctl restart uwsgi
 | 
						|
  
 | 
						|
  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 |