ci(deploy): share ssh secrets across environments
This commit is contained in:
@@ -133,17 +133,12 @@ jobs:
|
||||
|
||||
- name: Deploy image over SSH
|
||||
env:
|
||||
TEST_SSH_HOST: ${{ secrets.TEST_SSH_HOST }}
|
||||
TEST_SSH_USER: ${{ secrets.TEST_SSH_USER }}
|
||||
TEST_SSH_PORT: ${{ secrets.TEST_SSH_PORT }}
|
||||
TEST_SSH_PRIVATE_KEY: ${{ secrets.TEST_SSH_PRIVATE_KEY }}
|
||||
TEST_SSH_KNOWN_HOSTS: ${{ secrets.TEST_SSH_KNOWN_HOSTS }}
|
||||
SSH_HOST: ${{ secrets.SSH_HOST }}
|
||||
SSH_USER: ${{ secrets.SSH_USER }}
|
||||
SSH_PORT: ${{ secrets.SSH_PORT }}
|
||||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||
SSH_KNOWN_HOSTS: ${{ secrets.SSH_KNOWN_HOSTS }}
|
||||
TEST_DEPLOY_DIR: ${{ secrets.TEST_DEPLOY_DIR }}
|
||||
PROD_SSH_HOST: ${{ secrets.PROD_SSH_HOST }}
|
||||
PROD_SSH_USER: ${{ secrets.PROD_SSH_USER }}
|
||||
PROD_SSH_PORT: ${{ secrets.PROD_SSH_PORT }}
|
||||
PROD_SSH_PRIVATE_KEY: ${{ secrets.PROD_SSH_PRIVATE_KEY }}
|
||||
PROD_SSH_KNOWN_HOSTS: ${{ secrets.PROD_SSH_KNOWN_HOSTS }}
|
||||
PROD_DEPLOY_DIR: ${{ secrets.PROD_DEPLOY_DIR }}
|
||||
REGISTRY_HOST: ${{ secrets.REGISTRY_HOST }}
|
||||
REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }}
|
||||
@@ -153,22 +148,12 @@ jobs:
|
||||
|
||||
case "$DEPLOY_ENV" in
|
||||
test)
|
||||
DEPLOY_HOST="$TEST_SSH_HOST"
|
||||
DEPLOY_USER="$TEST_SSH_USER"
|
||||
DEPLOY_PORT="${TEST_SSH_PORT:-22}"
|
||||
DEPLOY_KEY="$TEST_SSH_PRIVATE_KEY"
|
||||
DEPLOY_KNOWN_HOSTS="$TEST_SSH_KNOWN_HOSTS"
|
||||
DEPLOY_DIR="${TEST_DEPLOY_DIR:-/opt/cozsweet-web-test}"
|
||||
HOST_PORT="9135"
|
||||
CONTAINER_NAME="cozsweet-web-test"
|
||||
PROJECT_NAME="cozsweet-web-test"
|
||||
;;
|
||||
prod)
|
||||
DEPLOY_HOST="$PROD_SSH_HOST"
|
||||
DEPLOY_USER="$PROD_SSH_USER"
|
||||
DEPLOY_PORT="${PROD_SSH_PORT:-22}"
|
||||
DEPLOY_KEY="$PROD_SSH_PRIVATE_KEY"
|
||||
DEPLOY_KNOWN_HOSTS="$PROD_SSH_KNOWN_HOSTS"
|
||||
DEPLOY_DIR="${PROD_DEPLOY_DIR:-/opt/cozsweet-web-prod}"
|
||||
HOST_PORT="9185"
|
||||
CONTAINER_NAME="cozsweet-web-prod"
|
||||
@@ -180,6 +165,12 @@ jobs:
|
||||
;;
|
||||
esac
|
||||
|
||||
DEPLOY_HOST="$SSH_HOST"
|
||||
DEPLOY_USER="$SSH_USER"
|
||||
DEPLOY_PORT="${SSH_PORT:-22}"
|
||||
DEPLOY_KEY="$SSH_PRIVATE_KEY"
|
||||
DEPLOY_KNOWN_HOSTS="$SSH_KNOWN_HOSTS"
|
||||
|
||||
if [ -z "$DEPLOY_HOST" ] || [ -z "$DEPLOY_USER" ] || [ -z "$DEPLOY_KEY" ]; then
|
||||
echo "Missing SSH deployment secrets for $DEPLOY_ENV" >&2
|
||||
exit 1
|
||||
|
||||
@@ -32,15 +32,15 @@ push test/main
|
||||
| `TEST_ENV_FILE` | 测试环境 `.env.local` 内容 |
|
||||
| `PRODUCTION_ENV_FILE` | 生产环境 `.env.production` 内容 |
|
||||
|
||||
新增 SSH 部署 Secrets:
|
||||
SSH 部署 Secrets:
|
||||
|
||||
| Secret | 说明 |
|
||||
| --- | --- |
|
||||
| `TEST_SSH_HOST` / `PROD_SSH_HOST` | 测试 / 生产服务器地址 |
|
||||
| `TEST_SSH_USER` / `PROD_SSH_USER` | SSH 用户,例如 `root` |
|
||||
| `TEST_SSH_PRIVATE_KEY` / `PROD_SSH_PRIVATE_KEY` | 私钥内容 |
|
||||
| `TEST_SSH_PORT` / `PROD_SSH_PORT` | 可选,默认 `22` |
|
||||
| `TEST_SSH_KNOWN_HOSTS` / `PROD_SSH_KNOWN_HOSTS` | 可选,推荐配置 `ssh-keyscan` 输出 |
|
||||
| `SSH_HOST` | 部署服务器地址,测试 / 生产共用 |
|
||||
| `SSH_USER` | SSH 用户,例如 `root` |
|
||||
| `SSH_PRIVATE_KEY` | 私钥内容 |
|
||||
| `SSH_PORT` | 可选,默认 `22` |
|
||||
| `SSH_KNOWN_HOSTS` | 可选,推荐配置 `ssh-keyscan` 输出 |
|
||||
| `TEST_DEPLOY_DIR` / `PROD_DEPLOY_DIR` | 可选,覆盖默认服务器目录 |
|
||||
| `CF_ZONE_ID` / `CF_API_TOKEN` | 可选,部署成功后清理 Cloudflare 缓存 |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user