diff --git a/.gitea/workflows/ci-cd.yml b/.gitea/workflows/ci-cd.yml index 45b252e..a1a5935 100644 --- a/.gitea/workflows/ci-cd.yml +++ b/.gitea/workflows/ci-cd.yml @@ -10,6 +10,20 @@ on: branches: - main - dev + workflow_dispatch: + inputs: + manual_action: + description: "Manual action: dokploy_start or cleanup_dev_database" + required: true + default: "dokploy_start" + dokploy_target: + description: "Dokploy dev target: all, web, or celery" + required: true + default: "all" + cleanup_confirm: + description: "Type CLEAN_DEV_DB to drop and recreate the dev public schema" + required: false + default: "" env: PYTHON_VERSION: "3.11" @@ -18,7 +32,7 @@ jobs: lint: name: Code Quality Checks runs-on: ubuntu-latest - if: ${{ !contains(github.event.head_commit.message, '#no_lint') }} + if: ${{ github.event_name != 'workflow_dispatch' && !contains(github.event.head_commit.message, '#no_lint') }} env: TG_BOT_KEY: ${{ secrets.TG_BOT_KEY }} TG_CHANNEL: ${{ secrets.TG_CHANNEL }} @@ -82,7 +96,7 @@ jobs: test: name: Run Tests runs-on: ubuntu-latest - if: ${{ !contains(github.event.head_commit.message, '#no_test') }} + if: ${{ github.event_name != 'workflow_dispatch' && !contains(github.event.head_commit.message, '#no_test') }} env: TG_BOT_KEY: ${{ secrets.TG_BOT_KEY }} TG_CHANNEL: ${{ secrets.TG_CHANNEL }} @@ -147,6 +161,7 @@ jobs: needs: [lint, test] if: | always() && + github.event_name != 'workflow_dispatch' && needs.lint.result == 'success' && needs.test.result == 'success' env: @@ -172,3 +187,16 @@ jobs: curl -fsS -X POST "https://api.telegram.org/bot${TG_BOT_KEY}/sendMessage" \ -d "chat_id=${TG_CHANNEL}" \ --data-urlencode "text=${MSG}" + + manual_actions_require_dev: + name: Manual Actions Require Dev Branch + runs-on: ubuntu-latest + if: ${{ github.event_name == 'workflow_dispatch' && github.ref != 'refs/heads/dev' }} + + steps: + - name: Explain manual action branch + run: | + set -euo pipefail + echo "Manual actions are implemented in the dev workflow." + echo "Run this workflow with branch/ref dev." + exit 1