SilverElixir commited on
Commit
0db2ce7
·
unverified ·
2 Parent(s): c8fab355c17622

Merge pull request #12 from S1lverElixir/agent/deno-deploy

Browse files
Files changed (1) hide show
  1. .github/workflows/deploy-proxy.yml +74 -0
.github/workflows/deploy-proxy.yml ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Deploy proxy
2
+
3
+ # Деплой Deno-прокси только после зелёного CI и только если менялся proxy/
4
+ # (аудит, 30.09.2026): раньше прокси выкатывался вручную из дашборда, код и
5
+ # деплой рассинхронизировались. Ждём воркфлоу "CI", как sync-to-hf.yml.
6
+ # Нужны секреты репозитория:
7
+ # DENO_DEPLOY_TOKEN — токен из Deno Deploy (проект → Settings → Access Tokens)
8
+ # DENO_PROXY_PROJECT — имя основного проекта прокси в Deno Deploy
9
+ # DENO_PROXY_PROJECT_FALLBACK — имя резервного проекта прокси в Deno Deploy
10
+ on:
11
+ workflow_run:
12
+ workflows: ["CI"]
13
+ types: [completed]
14
+ branches: [main]
15
+ # Ручной запуск из вкладки Actions — например, чтобы выложить текущий код
16
+ # после добавления секретов, без правок в proxy/.
17
+ workflow_dispatch:
18
+
19
+ permissions:
20
+ contents: read
21
+
22
+ # Два CI подряд — деплоим по очереди, идущий деплой не отменяем.
23
+ concurrency:
24
+ group: deno-proxy-deploy
25
+ cancel-in-progress: false
26
+
27
+ jobs:
28
+ deploy:
29
+ # Авто: только пуши в ЭТОТ репозиторий с зелёным CI (та же защита от форков, что в sync-to-hf.yml).
30
+ # Вручную: всегда (для ручного запуска и нужен отдельный пункт).
31
+ if: >-
32
+ github.event_name == 'workflow_dispatch' ||
33
+ (github.event.workflow_run.conclusion == 'success'
34
+ && github.event.workflow_run.event == 'push'
35
+ && github.event.workflow_run.head_repository.full_name == github.repository)
36
+ runs-on: ubuntu-latest
37
+ steps:
38
+ - uses: actions/checkout@v7
39
+ with:
40
+ # Тот коммит, что проверялся CI (см. sync-to-hf.yml); при ручном
41
+ # запуске — текущий main.
42
+ ref: ${{ github.event.workflow_run.head_sha || github.sha }}
43
+ fetch-depth: 0
44
+
45
+ - name: Check proxy changes
46
+ id: proxy_changed
47
+ # При ручном запуске всегда деплоим (иначе было бы нечего запускать).
48
+ if: github.event_name == 'workflow_dispatch'
49
+ run: echo "changed=true" >> "$GITHUB_OUTPUT"
50
+
51
+ - name: Check proxy changes on CI trigger
52
+ id: proxy_changed_ci
53
+ if: github.event_name != 'workflow_dispatch'
54
+ run: |
55
+ # Мержи в main — merge-коммиты: дифф с первым родителем показывает весь PR.
56
+ if git diff --name-only HEAD~1 HEAD | grep -q '^proxy/'; then
57
+ echo "changed=true" >> "$GITHUB_OUTPUT"
58
+ else
59
+ echo "changed=false" >> "$GITHUB_OUTPUT"
60
+ fi
61
+
62
+ - name: Deploy to primary proxy
63
+ if: steps.proxy_changed.outputs.changed == 'true' || steps.proxy_changed_ci.outputs.changed == 'true'
64
+ uses: denoland/deployctl@v1
65
+ with:
66
+ project: ${{ secrets.DENO_PROXY_PROJECT }}
67
+ entrypoint: proxy/proxy.ts
68
+
69
+ - name: Deploy to fallback proxy
70
+ if: steps.proxy_changed.outputs.changed == 'true' || steps.proxy_changed_ci.outputs.changed == 'true'
71
+ uses: denoland/deployctl@v1
72
+ with:
73
+ project: ${{ secrets.DENO_PROXY_PROJECT_FALLBACK }}
74
+ entrypoint: proxy/proxy.ts