name: 'deploy to v2' on: [push] jobs: test: runs-on: ubuntu-latest steps: #---------------------------------------------- # check-out repo and set-up python #---------------------------------------------- - name: Check out repository uses: actions/checkout@v4 - name: Set up python id: setup-python uses: actions/setup-python@v5 with: python-version: '3.12' #---------------------------------------------- # ----- install & configure poetry ----- #---------------------------------------------- - name: Install Poetry uses: snok/install-poetry@v1 with: virtualenvs-create: true virtualenvs-in-project: true installer-parallel: true #---------------------------------------------- # load cached venv if cache exists #---------------------------------------------- - name: Load cached venv id: cached-poetry-dependencies uses: actions/cache@v3 with: path: .venv key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} #---------------------------------------------- # install dependencies if cache does not exist #---------------------------------------------- - name: Install dependencies if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' run: poetry install --no-interaction --no-root #---------------------------------------------- # install your root project, if required #---------------------------------------------- - name: Install project run: poetry install --no-interaction #---------------------------------------------- # run test suite #---------------------------------------------- - name: Run tests run: | source .venv/bin/activate pytest tests/ coverage report deploy: runs-on: ubuntu-latest needs: test 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: Push to dokku uses: dokku/github-action@master with: branch: 'main' git_remote_url: 'ssh://dokku@v2.discours.io:22/${{ steps.repo_name.outputs.repo }}' ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}