feat(ci): последовательный deploy IFT -> E2E -> stage -> E2E (core).
CI / test (push) Successful in 14m42s

Stage после API CT remote на IFT; после stage — smoke-core + полный CT на stage.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-16 11:31:22 +03:00
parent 7fa24e831c
commit 50c6d671b8
5 changed files with 231 additions and 2 deletions
+2 -2
View File
@@ -1,9 +1,9 @@
name: Deploy stage (core)
# Auto после успешного CI на master: тот же sha-*, плюс floating :stage.
# Auto после успешного E2E IFT на master: promote sha-* → :stage и SSH deploy.
on:
workflow_run:
workflows: [CI]
workflows: ["E2E IFT (core)"]
types: [completed]
branches: [master, main]
workflow_dispatch:
+53
View File
@@ -0,0 +1,53 @@
name: E2E IFT (core)
# После успешного Deploy IFT — smoke-core на стенде + полный API CT (remote) против живого IFT.
# Учётки — из /opt/eventhub-ift/.env по SSH (ADMIN_*).
on:
workflow_run:
workflows: ["Deploy IFT (core)"]
types: [completed]
workflow_dispatch:
concurrency:
group: eventhub-back-e2e-ift
cancel-in-progress: false
env:
BUILDKIT_PROGRESS: quiet
DOCKER_BUILDKIT: 1
jobs:
ift-e2e:
if: |
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success')
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_sha || github.sha }}
- name: Wait for Docker daemon
run: bash scripts/ensure-docker-daemon.sh 240
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Load API test credentials from IFT .env
env:
SSH_HOST: ${{ secrets.IFT_SSH_HOST }}
SSH_USER: ${{ secrets.IFT_SSH_USER }}
SSH_KEY: ${{ secrets.IFT_SSH_PRIVATE_KEY }}
run: bash scripts/load-stand-api-env.sh ift
- name: E2E IFT (full API suite)
env:
SSH_HOST: ${{ secrets.IFT_SSH_HOST }}
SSH_USER: ${{ secrets.IFT_SSH_USER }}
SSH_KEY: ${{ secrets.IFT_SSH_PRIVATE_KEY }}
API_HOST: ${{ secrets.E2E_IFT_API_HOST }}
ADMIN_API_HOST: ${{ secrets.E2E_IFT_ADMIN_API_HOST }}
WS_HOST: ${{ secrets.E2E_IFT_WS_HOST }}
ADMIN_WS_HOST: ${{ secrets.E2E_IFT_ADMIN_WS_HOST }}
run: bash scripts/run-stand-api-tests.sh ift
+53
View File
@@ -0,0 +1,53 @@
name: E2E stage (core)
# После успешного Deploy stage — smoke-core на стенде + полный API CT (remote) против живого stage.
# Учётки — из /opt/eventhub-stage/.env по SSH (ADMIN_*).
on:
workflow_run:
workflows: ["Deploy stage (core)"]
types: [completed]
workflow_dispatch:
concurrency:
group: eventhub-back-e2e-stage
cancel-in-progress: false
env:
BUILDKIT_PROGRESS: quiet
DOCKER_BUILDKIT: 1
jobs:
stage-e2e:
if: |
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success')
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_sha || github.sha }}
- name: Wait for Docker daemon
run: bash scripts/ensure-docker-daemon.sh 240
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Load API test credentials from stage .env
env:
SSH_HOST: ${{ secrets.STAGE_SSH_HOST }}
SSH_USER: ${{ secrets.STAGE_SSH_USER }}
SSH_KEY: ${{ secrets.STAGE_SSH_PRIVATE_KEY }}
run: bash scripts/load-stand-api-env.sh stage
- name: E2E stage (full API suite)
env:
SSH_HOST: ${{ secrets.STAGE_SSH_HOST }}
SSH_USER: ${{ secrets.STAGE_SSH_USER }}
SSH_KEY: ${{ secrets.STAGE_SSH_PRIVATE_KEY }}
API_HOST: ${{ secrets.E2E_STAGE_API_HOST }}
ADMIN_API_HOST: ${{ secrets.E2E_STAGE_ADMIN_API_HOST }}
WS_HOST: ${{ secrets.E2E_STAGE_WS_HOST }}
ADMIN_WS_HOST: ${{ secrets.E2E_STAGE_ADMIN_WS_HOST }}
run: bash scripts/run-stand-api-tests.sh stage