更新workflow
This commit is contained in:
32
.github/workflows/docker-build-deploy.yml
vendored
32
.github/workflows/docker-build-deploy.yml
vendored
@@ -124,10 +124,38 @@ jobs:
|
|||||||
echo "target=dev" >> "$GITHUB_OUTPUT"
|
echo "target=dev" >> "$GITHUB_OUTPUT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Set up SSH
|
- name: Ensure production SSH secret is set
|
||||||
|
if: steps.deploy_target.outputs.target == 'prod'
|
||||||
|
env:
|
||||||
|
PROD_SSH_PRIVATE_KEY: ${{ secrets.PROD_SSH_PRIVATE_KEY }}
|
||||||
|
run: |
|
||||||
|
if [ -z "$PROD_SSH_PRIVATE_KEY" ]; then
|
||||||
|
echo "::error::PROD_SSH_PRIVATE_KEY 未配置或为空,无法部署生产。请在 Repository secrets 中设置 PROD_SSH_*。"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Ensure development SSH secret is set
|
||||||
|
if: steps.deploy_target.outputs.target != 'prod'
|
||||||
|
env:
|
||||||
|
DEV_SSH_PRIVATE_KEY: ${{ secrets.DEV_SSH_PRIVATE_KEY }}
|
||||||
|
run: |
|
||||||
|
if [ -z "$DEV_SSH_PRIVATE_KEY" ]; then
|
||||||
|
echo "::error::DEV_SSH_PRIVATE_KEY 未配置或为空,无法部署开发机。请在 Repository secrets 中设置 DEV_SSH_*。"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 勿用 `prod && PROD_KEY || DEV_KEY`:PROD 为空时会错误回退到 DEV 密钥,导致连生产机报 Permission denied。
|
||||||
|
- name: Set up SSH (production)
|
||||||
|
if: steps.deploy_target.outputs.target == 'prod'
|
||||||
uses: webfactory/ssh-agent@v0.9.0
|
uses: webfactory/ssh-agent@v0.9.0
|
||||||
with:
|
with:
|
||||||
ssh-private-key: ${{ steps.deploy_target.outputs.target == 'prod' && secrets.PROD_SSH_PRIVATE_KEY || secrets.DEV_SSH_PRIVATE_KEY }}
|
ssh-private-key: ${{ secrets.PROD_SSH_PRIVATE_KEY }}
|
||||||
|
|
||||||
|
- name: Set up SSH (development)
|
||||||
|
if: steps.deploy_target.outputs.target != 'prod'
|
||||||
|
uses: webfactory/ssh-agent@v0.9.0
|
||||||
|
with:
|
||||||
|
ssh-private-key: ${{ secrets.DEV_SSH_PRIVATE_KEY }}
|
||||||
|
|
||||||
- name: Export deploy connection env
|
- name: Export deploy connection env
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ import type { ConfigContext, ExpoConfig } from 'expo/config';
|
|||||||
|
|
||||||
import zh from './locales/zh.json';
|
import zh from './locales/zh.json';
|
||||||
import en from './locales/en.json';
|
import en from './locales/en.json';
|
||||||
|
import permissionsZh from './locales/permissions/zh.json';
|
||||||
|
import permissionsEn from './locales/permissions/en.json';
|
||||||
|
|
||||||
type PermissionKey =
|
type PermissionKey =
|
||||||
| 'microphone'
|
| 'microphone'
|
||||||
@@ -20,8 +22,8 @@ type PrivacyAccessedAPIType = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const LOCALES: Record<string, LocaleMessages> = {
|
const LOCALES: Record<string, LocaleMessages> = {
|
||||||
zh,
|
zh: { ...zh, permissions: permissionsZh },
|
||||||
en,
|
en: { ...en, permissions: permissionsEn },
|
||||||
};
|
};
|
||||||
|
|
||||||
const SUPPORTED_LOCALES = ['zh', 'en'] as const;
|
const SUPPORTED_LOCALES = ['zh', 'en'] as const;
|
||||||
|
|||||||
@@ -4,12 +4,5 @@
|
|||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"app_name": "app-expo"
|
"app_name": "app-expo"
|
||||||
},
|
|
||||||
"permissions": {
|
|
||||||
"microphone": "Allow $(PRODUCT_NAME) to access your microphone for recording and voice features.",
|
|
||||||
"photos": "Allow $(PRODUCT_NAME) to access your photos and videos to select media.",
|
|
||||||
"camera": "Allow $(PRODUCT_NAME) to access your camera for taking photos and recording videos.",
|
|
||||||
"microphoneForVideo": "Allow $(PRODUCT_NAME) to access your microphone for recording videos with sound.",
|
|
||||||
"faceId": "Allow $(PRODUCT_NAME) to use Face ID to securely access local sensitive data."
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
7
app-expo/locales/permissions/en.json
Normal file
7
app-expo/locales/permissions/en.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"microphone": "Allow $(PRODUCT_NAME) to access your microphone for recording and voice features.",
|
||||||
|
"photos": "Allow $(PRODUCT_NAME) to access your photos and videos to select media.",
|
||||||
|
"camera": "Allow $(PRODUCT_NAME) to access your camera for taking photos and recording videos.",
|
||||||
|
"microphoneForVideo": "Allow $(PRODUCT_NAME) to access your microphone for recording videos with sound.",
|
||||||
|
"faceId": "Allow $(PRODUCT_NAME) to use Face ID to securely access local sensitive data."
|
||||||
|
}
|
||||||
7
app-expo/locales/permissions/zh.json
Normal file
7
app-expo/locales/permissions/zh.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"microphone": "允许 $(PRODUCT_NAME) 访问麦克风,用于录音和语音功能。",
|
||||||
|
"photos": "允许 $(PRODUCT_NAME) 访问你的照片和视频,用于选择媒体内容。",
|
||||||
|
"camera": "允许 $(PRODUCT_NAME) 访问相机,用于拍照和录制视频。",
|
||||||
|
"microphoneForVideo": "允许 $(PRODUCT_NAME) 访问麦克风,用于录制带声音的视频。",
|
||||||
|
"faceId": "允许 $(PRODUCT_NAME) 使用 Face ID 来安全访问本地敏感数据。"
|
||||||
|
}
|
||||||
@@ -4,12 +4,5 @@
|
|||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"app_name": "app-expo"
|
"app_name": "app-expo"
|
||||||
},
|
|
||||||
"permissions": {
|
|
||||||
"microphone": "允许 $(PRODUCT_NAME) 访问麦克风,用于录音和语音功能。",
|
|
||||||
"photos": "允许 $(PRODUCT_NAME) 访问你的照片和视频,用于选择媒体内容。",
|
|
||||||
"camera": "允许 $(PRODUCT_NAME) 访问相机,用于拍照和录制视频。",
|
|
||||||
"microphoneForVideo": "允许 $(PRODUCT_NAME) 访问麦克风,用于录制带声音的视频。",
|
|
||||||
"faceId": "允许 $(PRODUCT_NAME) 使用 Face ID 来安全访问本地敏感数据。"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user