63 lines
1.9 KiB
YAML
63 lines
1.9 KiB
YAML
name: 'Deploy on push'
|
|
on: [push]
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Cloning repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install uv
|
|
run: |
|
|
# Try multiple installation methods for uv
|
|
if curl -LsSf https://astral.sh/uv/install.sh | sh; then
|
|
echo "uv installed successfully via install script"
|
|
elif curl -LsSf https://github.com/astral-sh/uv/releases/latest/download/uv-installer.sh | sh; then
|
|
echo "uv installed successfully via GitHub installer"
|
|
else
|
|
echo "uv installation failed, using pip fallback"
|
|
pip install uv
|
|
fi
|
|
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
|
|
|
- name: Prepare Environment
|
|
run: |
|
|
uv --version
|
|
python3 --version
|
|
|
|
- name: Install Dependencies
|
|
run: |
|
|
uv sync --frozen
|
|
uv sync --group dev
|
|
|
|
- name: Run Tests
|
|
run: |
|
|
uv run pytest tests/ -v
|
|
|
|
- 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.V2_PRIVATE_KEY }}
|
|
|
|
- name: Push to dokku for dev branch
|
|
if: github.ref == 'refs/heads/dev'
|
|
uses: dokku/github-action@master
|
|
with:
|
|
branch: 'dev'
|
|
git_remote_url: 'ssh://dokku@staging.discours.io:22/core'
|
|
ssh_private_key: ${{ secrets.STAGING_PRIVATE_KEY }}
|