管道共享脚本
多克帕塞的CI/CD管道和部署工作流程的CLI工具集.
概览
这个软件包提供了一组指令行接口(CLI),以方便多克帕斯生态系统中的各种DevOps操作:
dp-next-cli下一个应用程序的部署和管道管理dp-changeset-cli: 版本和更改器管理dp-auth0-cli: Auth0 租户配置和管理
安装
npm install @docupace/pipeline
或与平按:
pnpm add @docupace/pipeline
命令行接口
dp- next- cli (英语)
管理部署、 Docker 图像处理和基础设施配置.
dp-next-cli [command] [options]
图标 :
pull <imageName>: 从注册处取出一个 Docker 图像sonar: 运行声纳分析validate-seeding-guids: 重复或非字符串的 GUID 失败, 在模板种子数据( 从模板 repo root 运行) 中警告非32 Char--data-dir <dir>: 种子数据目录(默认)data(中文(简体) )
addApacheSite: 添加站点到页眉connectClone: 克隆连接站点haproxySync: 同步错误配置vaultAddSiteData: 向金库添加 m2m 认证数据-s, --site-name <siteName>: 网站名称-p, --site-config-remote-path <path>: 站点配置远程路径
publish: 发布 Docker 图像deploy-from-site: 在特定地点部署申请-f, --from-env <fromEnv>: 源环境-t, --to-env <toEnv>目标环境-F, --from-site <fromSite>: 来源网站-T, --to-site <toSite>: 目标地点-j, --jira-ticket [jiraTicket]: JIRA票 (可选)-c, --deploy-core <deployCore>: 部署核心( 默认: “ 假” )-C, --deploy-connect <deployConnect>: 部署连接( 默认: "假")-A, --deploy-connect-aws <deployConnectAws>: 在 AWS 上部署连接用户界面dp-eks-connect-ui-gitops(默认:"假"
update-site-version <env> <site>: 更新一个站点的特定版本组件-u, --ui-version <uiVersion>: UI 图像标签-g, --graph-version <graphVersion>: 图QL 服务器图像标签-S, --standard-config <standardConfig>: 标准配置远程分支-s, --site-config <siteConfig>: 站点配置远程分支-c, --connect-version <connectVersion>: AWS 连接 UI 图像标签( 可选)-j, --jira-ticket [jiraTicket]: JIRA出道票(需为正线)
deploy-template: 在特定地点部署申请deploy-app <application>: 在特定地点部署申请deploy-app connect -e <env> -s <site>: 部署 AWS 连接 UI( 触发)deploy-connect-aws/ giupdate-site-image(中文(简体) )-e, --env <env>编号 :-s, --site <site>:目标嵌入/站点(可选;否则使用自动部署目标)
deploy-core <env> <site>: 部署核心-l, --liquibase <liquibase>: 应用程序名称( 默认: “ true” )-b, --branch <branch>: 分支( 默认: "master")
deploy-connect <env> <site>: 部署连接-l, --liquibase <liquibase>: 应用程序名称( 默认: “ true” )-b, --branch <branch>: 分支( 默认: "master")
deploy-connect-aws <env> <sites> <version>: 在 AWS 上部署连接 UI( 更新)dp-eks-connect-ui-gitops通过 Bitbucket 管道的图像.tag<sites>:单一站点或逗号分隔列表(如.oa或者说oa,athene,template(中文(简体) )-b, --branch <branch>: 管道的Gitops分支(默认为"主")-w, --wait编号 :--no-wait: 等待管道完成( 默认: 等待)
deploy-core-pipeline <env> <site>通过管道部署核心-l, --liquibase <liquibase>: 应用程序名称( 默认: “ true” )-b, --branch <branch>: 分支( 默认: "master")
copy: 在登记册之间复制一个 Docker 图像-a, --application <application>: 应用程序名称-f, --from-env <fromEnv>: 源环境-t, --to-env <toEnv>目标环境-g, --tag <tag>: 图像标记
run-pipeline: 按名称触发管道-r, --repository <repository>: 仓库名称-p, --pipeline-name <pipelineName>: 管道名称-b, --branch <branch>: 分支名称-v, --variables <key=value>: 管道变量作为键=值对-w, --wait: 等待管道完成( 默认: 假)
dp- changset-cli (英语)
管理单重置和单包重置的版本和更改器.
dp-changeset-cli [command] [options]
图标 :
validate: 验证所提供的 PR 的更改version: 运行更改集版本commit-tag: 提交并标记新版本version-commit-tag: 以顺序运行版本和承诺与标签close-version: 关闭一个版本并创建一个发布分支create-changeset: 根据当前分行和Jira票务信息创建更动器
dp-auth0-cli (英语)
管理整个环境和秘密管理的Auth0租户配置(Vault和AWS保密管理器).
dp-auth0-cli [command] [options]
图标 :
configureFromSite <fromSite> <toSite> <fromEnv> <toEnv> <deployUI> <deployGraphQLServer> <useNewDomain> <useS3> [auth0Tenant]: 配置 Auth0 租户getVaultSecrets <vaultPath>: 从地窖获取秘密getAwsSecrets <secretName>: 从 AWS 机密管理器获取机密saveAwsSecret <secretName> <secretData> [-d, --description <desc>]: 将机密保存到 AWS 机密管理器listAwsSecretsForSite <site>: 列出一个站点的 AWS 机密管理器路径configureAlias <site> <env> <username> <password> <realm>: 为指定网站配置核心异名exportConf <site> <env>: 导出给定站点的 Auth0 配置getAuth0Metadata <site> <env>: 获取给定站点的 Auth0 元数据
环境配置
CLI 工具查找以下位置的环境配置:
.env.pipeline.localconfig/.env.pipeline.local
秘密管理器配置
默认情况下,工具会使用HashiCorp Vault进行秘密管理. 要使用 AWS 保密管理器, 请设置 SECRETS_MANAGER_TYPE 环境变量 :
# Use HashiCorp Vault (default)
export SECRETS_MANAGER_TYPE=vault
# Use AWS Secrets Manager
export SECRETS_MANAGER_TYPE=aws
默认配置( 默认)
VAULT_ADDR: 默认服务器 URL(例如,https://vault.example.com(中文(简体) )VAULT_TOKEN: 默认认证符VAULT_SKIP_VERIFY: 跳过 TLS 证书校验( 可选, 设置为)true(中文(简体) )
AWS 保密管理器配置
AWS_REGION: AWS区域(例如,us-east-1, (中文(简体) ),eu-west-1(中文(简体) )AWS_ACCESS_KEY_ID: AWS 访问密钥ID(用于手动认证)AWS_SECRET_ACCESS_KEY: AWS 秘密访问密钥(用于手动认证)
说明:在AWS环境中运行(EC2,ECS,EKS,Lambda)时,通过IAM角色自动提供证书,所以不需要设置 AWS_ACCESS_KEY_ID 财务报告和审定财务报表 AWS_SECRET_ACCESS_KEY。 。 。 .
AWS 机密管理器路径
用于特定地点(例如:, myapp), AWS 机密管理器遵循此命名惯例:
common/config- 共同秘密 - 秘密 - 秘密 - Community secretmyapp/common/config- 网站共同机密(认证客户资格)myapp/graphql-server/config- GraphQL 服务器机密myapp/ui/config- UI主要应用秘密myapp/ui-cc/config- UI CC应用程序秘密myapp/aws/config- AWS S3配置秘密
由 App 类型支持的秘密
每个应用程序都保存以下秘密:
| 应用 | 秘诀 | AWS 路径 |
|---|---|---|
| Auth0 (共同语) | AUTH0_CLIENT_ID, (中文(简体) ), AUTH0_CLIENT_SECRET | {site}/common/config |
| 图QL 服务器 | AUTH0_CLIENT_ID, (中文(简体) ), AUTH0_CLIENT_SECRET, (中文(简体) ), AUTH0_CC_CLIENT_ID, (中文(简体) ), AUTH0_CC_CLIENT_SECRET | {site}/graphql-server/config |
| UI 主语言 | AUTH0_CLIENT_ID, (中文(简体) ), AUTH0_CLIENT_SECRET, (中文(简体) ), AUTH0_SECRET | {site}/ui/config |
| UI CC 计算机 | AUTH0_CLIENT_ID, (中文(简体) ), AUTH0_CLIENT_SECRET, (中文(简体) ), AUTH0_SECRET | {site}/ui-cc/config |
实例
# Deploy from one site to another
dp-next-cli deploy-from-site --from-env dev --to-env dev --from-site financialdev --to-site template --deploy-core true
# Run a pipeline
dp-next-cli run-pipeline -r docupace-next-e2e -b master -p run-tests-qa
# Validate changesets
dp-changeset-cli validate
# Create a new changeset
dp-changeset-cli create-changeset
# Configure Auth0 for a site
dp-auth0-cli configureFromSite sourceSite targetSite dev prod true true true false
# Deploy Connect UI image tag on AWS (single site or comma-separated sites)
dp-next-cli deploy-connect-aws qa 1stglobal 4.75.52
dp-next-cli deploy-connect-aws qa oa,athene,template 4.75.52
# Promote AWS Connect UI version from one site to another via deploy-from-site
dp-next-cli deploy-from-site -f dev -t qa -F template -T template -A true
许可证
公务员制度委员会