tldtest.net/.github/workflows/deployment.yml

66 lines
1.7 KiB
YAML

name: Master Workflow
on:
push:
branches:
- master
jobs:
deploy_after_master_push:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up Python 3.11 for Flake8
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install Flake8
run: pip install flake8
- name: Lint with Flake8
run: flake8 --ignore=E501,F401,E402,F811,E731,F403,E722 .
- name: Set up Python 3.11 for Django
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install Dependencies for Django
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
cp config.example.py config.py
- name: Run Tests for Django
run: |
python manage.py test
- name: Configure SSH for Deployment
if: success()
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_USER: ${{ secrets.SSH_USER }}
run: |
mkdir -p ~/.ssh/
echo "$SSH_PRIVATE_KEY" > ~/.ssh/github
chmod 600 ~/.ssh/github
cat >>~/.ssh/config <<END
Host target
HostName $SSH_HOST
User $SSH_USER
IdentityFile ~/.ssh/github
LogLevel ERROR
StrictHostKeyChecking no
END
- name: Deploy to Production
if: success() && github.ref == 'refs/heads/master'
run: |
ssh target "cd tldtest && git pull origin master && docker-compose down && docker-compose up --build -d"
# Other steps for deploying static content to GitHub Pages