79 lines
2.4 KiB
YAML
79 lines
2.4 KiB
YAML
name: 'Deploy on push'
|
||
on: [push]
|
||
|
||
jobs:
|
||
type-check:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: Cloning repo
|
||
uses: actions/checkout@v2
|
||
|
||
- name: Set up Python
|
||
uses: actions/setup-python@v4
|
||
with:
|
||
python-version: '3.12'
|
||
|
||
- name: Cache pip packages
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: ~/.cache/pip
|
||
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
|
||
restore-keys: |
|
||
${{ runner.os }}-pip-
|
||
|
||
- name: Install dependencies
|
||
run: |
|
||
python -m pip install --upgrade pip
|
||
pip install -r requirements.txt
|
||
pip install -r requirements.dev.txt
|
||
pip install mypy types-redis types-requests
|
||
|
||
- name: Run type checking with mypy
|
||
run: |
|
||
echo "🔍 Проверка типобезопасности с mypy..."
|
||
mypy . --show-error-codes --no-error-summary --pretty
|
||
echo "✅ Все проверки типов прошли успешно!"
|
||
|
||
deploy:
|
||
runs-on: ubuntu-latest
|
||
needs: type-check
|
||
steps:
|
||
- name: Cloning repo
|
||
uses: actions/checkout@v2
|
||
with:
|
||
fetch-depth: 0
|
||
|
||
- name: Get Repo Name
|
||
id: repo_name
|
||
run: echo "::set-output name=repo::$(echo ${GITHUB_REPOSITORY##*/})"
|
||
|
||
- name: Get Branch Name
|
||
id: branch_name
|
||
run: echo "::set-output name=branch::$(echo ${GITHUB_REF##*/})"
|
||
|
||
- name: Push to dokku for main branch
|
||
if: github.ref == 'refs/heads/main'
|
||
uses: dokku/github-action@master
|
||
with:
|
||
branch: 'main'
|
||
git_remote_url: 'ssh://dokku@v2.discours.io:22/discoursio-api'
|
||
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
|
||
- name: Push to dokku for dev branch
|
||
if: github.ref == 'refs/heads/dev'
|
||
uses: dokku/github-action@master
|
||
with:
|
||
branch: 'main'
|
||
force: true
|
||
git_remote_url: 'ssh://dokku@v2.discours.io:22/core'
|
||
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
|
||
- name: Push to dokku for staging branch
|
||
if: github.ref == 'refs/heads/staging'
|
||
uses: dokku/github-action@master
|
||
with:
|
||
branch: 'dev'
|
||
git_remote_url: 'ssh://dokku@staging.discours.io:22/core'
|
||
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
git_push_flags: '--force'
|