update variable name
This commit is contained in:
27
.github/workflows/docker-build-deploy.yml
vendored
27
.github/workflows/docker-build-deploy.yml
vendored
@@ -1,11 +1,10 @@
|
||||
# API Docker:main → Staging 机(Repository secrets: STAGING_*),Tag v*.*.* → Prod 机(PROD_*)
|
||||
# API Docker:main → Staging 机(无前缀 SSH_* / DEPLOY_PATH),Tag v*.*.* → Prod 机(PROD_*)
|
||||
# 在 Repo → Settings → Secrets and variables → Actions 中配置,无需 GitHub Environments。
|
||||
# 命名:STAGING_SSH_HOST / STAGING_SSH_USER / STAGING_SSH_PRIVATE_KEY / STAGING_SSH_PORT / STAGING_DEPLOY_PATH
|
||||
# PROD_SSH_HOST / PROD_SSH_USER / PROD_SSH_PRIVATE_KEY / PROD_SSH_PORT / PROD_DEPLOY_PATH
|
||||
# Staging:SSH_HOST / SSH_USER / SSH_PRIVATE_KEY / SSH_PORT / DEPLOY_PATH
|
||||
# Production:PROD_SSH_HOST / PROD_SSH_USER / PROD_SSH_PRIVATE_KEY / PROD_SSH_PORT / PROD_DEPLOY_PATH
|
||||
# 阿里云镜像仍为仓库级:ALIYUN_CR_USERNAME / ALIYUN_CR_PASSWORD
|
||||
#
|
||||
# 注意:旧的无前缀 SSH_HOST / SSH_PRIVATE_KEY / DEPLOY_PATH 指向生产机;本 workflow 不再读取它们。
|
||||
# Staging 必须使用另一台服务器对应的 STAGING_*,Production 使用 PROD_*。
|
||||
# 勿把 PROD 私钥与 Staging 混用:staging 只读 SSH_PRIVATE_KEY,prod 只读 PROD_SSH_PRIVATE_KEY。
|
||||
#
|
||||
# 旧库 pg_dump 一次性迁入当前 schema:见 workflow「Legacy DB migrate (one-shot)」(手动运行,非每次构建)。
|
||||
#
|
||||
@@ -184,14 +183,14 @@ jobs:
|
||||
- name: Ensure staging SSH secret is set
|
||||
if: needs.resolve-deploy-target.outputs.target != 'prod'
|
||||
env:
|
||||
STAGING_SSH_PRIVATE_KEY: ${{ secrets.STAGING_SSH_PRIVATE_KEY }}
|
||||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||
run: |
|
||||
if [ -z "$STAGING_SSH_PRIVATE_KEY" ]; then
|
||||
echo "::error::STAGING_SSH_PRIVATE_KEY 未配置或为空,无法部署 staging。请在 Repository secrets 中设置 STAGING_SSH_*。"
|
||||
if [ -z "$SSH_PRIVATE_KEY" ]; then
|
||||
echo "::error::SSH_PRIVATE_KEY 未配置或为空,无法部署 staging。请在 Repository secrets 中设置 SSH_HOST / SSH_USER / SSH_PRIVATE_KEY / SSH_PORT / DEPLOY_PATH。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 勿用 `prod && PROD_KEY || STAGING_KEY`:PROD 为空时会错误回退到 staging 密钥,导致连生产机报 Permission denied。
|
||||
# 勿用 `prod && PROD_KEY || SSH_KEY`:PROD 为空时会错误回退到 staging 密钥,导致连生产机报 Permission denied。
|
||||
- name: Set up SSH (production)
|
||||
if: needs.resolve-deploy-target.outputs.target == 'prod'
|
||||
uses: webfactory/ssh-agent@v0.9.1
|
||||
@@ -202,7 +201,7 @@ jobs:
|
||||
if: needs.resolve-deploy-target.outputs.target != 'prod'
|
||||
uses: webfactory/ssh-agent@v0.9.1
|
||||
with:
|
||||
ssh-private-key: ${{ secrets.STAGING_SSH_PRIVATE_KEY }}
|
||||
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||
|
||||
- name: Export deploy connection env
|
||||
run: |
|
||||
@@ -215,10 +214,10 @@ jobs:
|
||||
} >> "$GITHUB_ENV"
|
||||
else
|
||||
{
|
||||
echo "SSH_HOST=${{ secrets.STAGING_SSH_HOST }}"
|
||||
echo "SSH_USER=${{ secrets.STAGING_SSH_USER }}"
|
||||
echo "SSH_PORT=${{ secrets.STAGING_SSH_PORT || '22' }}"
|
||||
echo "COMPOSE_DIR=${{ secrets.STAGING_DEPLOY_PATH || '/opt/life-echo' }}"
|
||||
echo "SSH_HOST=${{ secrets.SSH_HOST }}"
|
||||
echo "SSH_USER=${{ secrets.SSH_USER }}"
|
||||
echo "SSH_PORT=${{ secrets.SSH_PORT || '22' }}"
|
||||
echo "COMPOSE_DIR=${{ secrets.DEPLOY_PATH || '/opt/life-echo' }}"
|
||||
} >> "$GITHUB_ENV"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user