name: 'Deploy on push' on: [push] jobs: type-check: runs-on: python-3.13 steps: - name: Cloning repo uses: actions/checkout@v4 - 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: | python3 -m pip install --upgrade pip pip3 install -r requirements.txt pip3 install -r requirements.dev.txt pip3 install mypy types-redis types-requests - name: Run type checking with mypy run: | echo "🔍 Проверка типобезопасности с mypy..." python3 -m mypy . --show-error-codes --no-error-summary --pretty echo "✅ Все проверки типов прошли успешно!" deploy: runs-on: ubuntu-latest needs: type-check steps: - name: Cloning repo uses: actions/checkout@v4 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'