Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
@@ -34,7 +34,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 20
|
timeout-minutes: 20
|
||||||
env:
|
env:
|
||||||
STAGING_BASE_URL: ${{ secrets.STAGING_BASE_URL || vars.STAGING_BASE_URL }}
|
STAGING_BASE_URL: ${{ secrets.STAGING_BASE_URL || vars.STAGING_BASE_URL || 'https://tapi.hifast.biz' }}
|
||||||
if: >-
|
if: >-
|
||||||
${{
|
${{
|
||||||
github.event_name == 'workflow_dispatch' ||
|
github.event_name == 'workflow_dispatch' ||
|
||||||
@@ -65,7 +65,7 @@ jobs:
|
|||||||
ACCEPTANCE_ADMIN_PASSWORD: ${{ secrets.ACCEPTANCE_ADMIN_PASSWORD }}
|
ACCEPTANCE_ADMIN_PASSWORD: ${{ secrets.ACCEPTANCE_ADMIN_PASSWORD }}
|
||||||
ACCEPTANCE_USER_EMAIL: ${{ secrets.ACCEPTANCE_USER_EMAIL }}
|
ACCEPTANCE_USER_EMAIL: ${{ secrets.ACCEPTANCE_USER_EMAIL }}
|
||||||
ACCEPTANCE_USER_PASSWORD: ${{ secrets.ACCEPTANCE_USER_PASSWORD }}
|
ACCEPTANCE_USER_PASSWORD: ${{ secrets.ACCEPTANCE_USER_PASSWORD }}
|
||||||
STAGING_BASE_URL: ${{ secrets.STAGING_BASE_URL || vars.STAGING_BASE_URL }}
|
STAGING_BASE_URL: ${{ secrets.STAGING_BASE_URL || vars.STAGING_BASE_URL || 'https://tapi.hifast.biz' }}
|
||||||
STAGING_DB_HOST: ${{ secrets.STAGING_DB_HOST }}
|
STAGING_DB_HOST: ${{ secrets.STAGING_DB_HOST }}
|
||||||
STAGING_DB_USER: ${{ secrets.STAGING_DB_USER }}
|
STAGING_DB_USER: ${{ secrets.STAGING_DB_USER }}
|
||||||
STAGING_DB_PASSWORD: ${{ secrets.STAGING_DB_PASSWORD }}
|
STAGING_DB_PASSWORD: ${{ secrets.STAGING_DB_PASSWORD }}
|
||||||
@@ -75,13 +75,24 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
missing=()
|
if [ -z "${STAGING_BASE_URL:-}" ]; then
|
||||||
required=(
|
echo "STAGING_BASE_URL 未配置且默认值不可用" | tee "$ACCEPTANCE_FAILURE_LOG"
|
||||||
|
{
|
||||||
|
echo "## 发布验收测试"
|
||||||
|
echo
|
||||||
|
echo "状态:配置错误"
|
||||||
|
echo
|
||||||
|
echo "- `STAGING_BASE_URL` 不能为空。"
|
||||||
|
} >> "$GITHUB_STEP_SUMMARY"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
missing_optional=()
|
||||||
|
optional=(
|
||||||
ACCEPTANCE_ADMIN_EMAIL
|
ACCEPTANCE_ADMIN_EMAIL
|
||||||
ACCEPTANCE_ADMIN_PASSWORD
|
ACCEPTANCE_ADMIN_PASSWORD
|
||||||
ACCEPTANCE_USER_EMAIL
|
ACCEPTANCE_USER_EMAIL
|
||||||
ACCEPTANCE_USER_PASSWORD
|
ACCEPTANCE_USER_PASSWORD
|
||||||
STAGING_BASE_URL
|
|
||||||
STAGING_DB_HOST
|
STAGING_DB_HOST
|
||||||
STAGING_DB_USER
|
STAGING_DB_USER
|
||||||
STAGING_DB_PASSWORD
|
STAGING_DB_PASSWORD
|
||||||
@@ -90,24 +101,35 @@ jobs:
|
|||||||
STAGING_REDIS_PASSWORD
|
STAGING_REDIS_PASSWORD
|
||||||
)
|
)
|
||||||
|
|
||||||
for key in "${required[@]}"; do
|
for key in "${optional[@]}"; do
|
||||||
if [ -z "${!key:-}" ]; then
|
if [ -z "${!key:-}" ]; then
|
||||||
missing+=("$key")
|
missing_optional+=("$key")
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ "${#missing[@]}" -gt 0 ]; then
|
: > "$ACCEPTANCE_FAILURE_LOG"
|
||||||
printf '缺少必需 GitHub Actions secrets/vars:\n' | tee "$ACCEPTANCE_FAILURE_LOG"
|
|
||||||
printf -- '- %s\n' "${missing[@]}" | tee -a "$ACCEPTANCE_FAILURE_LOG"
|
if [ "${#missing_optional[@]}" -gt 0 ]; then
|
||||||
|
printf '缺少可选 GitHub Actions secrets/vars,部分验收用例将被跳过:\n' | tee -a "$ACCEPTANCE_FAILURE_LOG"
|
||||||
|
printf -- '- %s\n' "${missing_optional[@]}" | tee -a "$ACCEPTANCE_FAILURE_LOG"
|
||||||
{
|
{
|
||||||
echo "## 发布验收测试"
|
echo "## 发布验收测试"
|
||||||
echo
|
echo
|
||||||
echo "状态:配置缺失"
|
echo "状态:部分配置缺失"
|
||||||
echo
|
echo
|
||||||
echo "缺少以下 secrets/vars:"
|
echo "缺少以下可选 secrets/vars,对应验收用例会在测试阶段自动跳过:"
|
||||||
printf -- '- `%s`\n' "${missing[@]}"
|
printf -- '- `%s`\n' "${missing_optional[@]}"
|
||||||
|
echo
|
||||||
|
echo "- `STAGING_BASE_URL`:${STAGING_BASE_URL}"
|
||||||
|
} >> "$GITHUB_STEP_SUMMARY"
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "## 发布验收测试"
|
||||||
|
echo
|
||||||
|
echo "状态:配置检查通过"
|
||||||
|
echo
|
||||||
|
echo "- `STAGING_BASE_URL`:${STAGING_BASE_URL}"
|
||||||
} >> "$GITHUB_STEP_SUMMARY"
|
} >> "$GITHUB_STEP_SUMMARY"
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: 下载依赖模块
|
- name: 下载依赖模块
|
||||||
|
|||||||
@@ -10,9 +10,11 @@ go test ./tests/acceptance/... -staging-url=https://tapi.hifast.biz
|
|||||||
|
|
||||||
Without credentials, tests that require admin/user login or NodeSecret are skipped and unauthenticated error-path checks still run.
|
Without credentials, tests that require admin/user login or NodeSecret are skipped and unauthenticated error-path checks still run.
|
||||||
|
|
||||||
## Required secrets
|
## Workflow configuration
|
||||||
|
|
||||||
The staging workflow should provide these values through GitHub Actions secrets or environment variables:
|
`STAGING_BASE_URL` should be provided through GitHub Actions secrets or variables. When omitted, the workflow falls back to `https://tapi.hifast.biz`.
|
||||||
|
|
||||||
|
The following secrets are optional. When any of them are missing, the workflow still runs and the corresponding acceptance cases are skipped automatically:
|
||||||
|
|
||||||
- `ACCEPTANCE_ADMIN_EMAIL`
|
- `ACCEPTANCE_ADMIN_EMAIL`
|
||||||
- `ACCEPTANCE_ADMIN_PASSWORD`
|
- `ACCEPTANCE_ADMIN_PASSWORD`
|
||||||
@@ -24,7 +26,6 @@ The staging workflow should provide these values through GitHub Actions secrets
|
|||||||
- `STAGING_DB_NAME`
|
- `STAGING_DB_NAME`
|
||||||
- `STAGING_REDIS_ADDR`
|
- `STAGING_REDIS_ADDR`
|
||||||
- `STAGING_REDIS_PASSWORD`
|
- `STAGING_REDIS_PASSWORD`
|
||||||
- `STAGING_BASE_URL`
|
|
||||||
|
|
||||||
`ACCEPTANCE_NODE_SECRET` is optional. When DB credentials are present, the loader reads NodeSecret from the staging `system` table instead of storing it as a long-lived secret.
|
`ACCEPTANCE_NODE_SECRET` is optional. When DB credentials are present, the loader reads NodeSecret from the staging `system` table instead of storing it as a long-lived secret.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user