发布自动化
岗哨释放管理可以使用任何持续集成和交付(CI/CD)平台或自动化服务器实现自动化。
发布管理自动化指南
- Bitbucket Pipelines
- CircleCI
- Jenkins
- Netlify
- Travis CI
- CLI
Jenkins
本指南将引导您完成在Jenkins中自动化岗哨释放管理和部署通知的过程。在Jenkins部署之后,您将能够识别可能是新错误的罪魁祸首的可疑提交。您还可以应用源代码映射来查看Sentry中的原始代码。
在开始之前,请通过安装存储库集成来确认您的Sentry项目已正确设置为跟踪提交元数据。一旦安装了它,并且添加了存储库,请返回本指南。如果您已经安装了存储库集成,就可以开始了。
创建哨兵内部集成
为了让Jenkins与Sentry安全地通信,您需要创建一个新的内部集成。在Sentry中,导航到“设置>开发人员设置>新建内部集成(Settings > Developer Settings > New Internal Integration.)”。
为新集成命名(例如,“Jenkins Deploy integration”)并指定必要的权限。在这种情况下,您需要“Release”的管理员访问权限和“Organization”的读访问权限。
有关作用域和API终结点的详细信息,请参阅有关API权限的完整文档。
向Jenkins凭据添加令牌
要安全地访问Jenkins中的内部集成令牌,请将其存储为凭据:
-
在Jenkins主页(经典Jenkins UI的仪表板)中,单击Credentials>System。
-
在“系统”下,单击“全局凭据(无限制)”链接以访问此默认域。
-
单击添加凭据。
-
从“种类”字段中选择“机密文本”。
-
给凭证一个ID(例如,“sentry auth token”),然后在Secret字段中粘贴内部集成令牌。
-
单击“确定”保存凭据。
通知sentry部署
根据您用于构建和部署的Jenkins项目的类型,您需要遵循不同的步骤:
- Pipeline (Jenkinsfile)
- Freestyle project
有关下面的版本管理概念的更多详细信息,请参阅有关版本管理的完整文档。
Pipeline
如果您使用的是Jenkins管道,则需要在部署阶段之后添加一个包含以下代码片段的新阶段: pipeline { // ... stages {
/// ...
stage('Notify Sentry of deployment') {
environment {
SENTRY_AUTH_TOKEN = credentials('sentry-auth-token')
SENTRY_ORG = 'sample-organization-slug'
SENTRY_PROJECT = 'sample-project-slug'
SENTRY_ENVIRONMENT = 'production'
}
steps {
// Install Sentry CLI
sh 'curl -sL https://sentry.io/get-cli/ | bash'
sh '''
export SENTRY_RELEASE=$(sentry-cli releases propose-version)
sentry-cli releases new -p $SENTRY_PROJECT $SENTRY_RELEASE
sentry-cli releases set-commits $SENTRY_RELEASE --auto
sentry-cli releases files $SENTRY_RELEASE upload-sourcemaps path-to-sourcemaps-if-applicable
sentry-cli releases finalize $SENTRY_RELEASE
sentry-cli releases deploys $SENTRY_RELEASE new -e $SENTRY_ENVIRONMENT
'''
}
}
}
}
笔记:
-
如果您没有部署JavaScript项目或使用其他方法将源映射发送到Sentry,请省略upload source maps行。
-
如果无法安装存储库集成,请通过create release端点发送提交元数据或省略set commits行。
-
凭据(“sentry-auth-token”)是指刚添加到Jenkins的凭据的ID。
-
sentry cli releases propose version默认为正在部署的提交的提交SHA。若要将此设置为其他版本,请将SENTRY_RELEASE修改为首选版本。
Freestyle Project
如果您使用的是自由式项目,则需要在部署后添加另一个生成步骤。
请确保添加绑定以将环境变量SENTRY_AUTH_TOKEN映射到在上一步中添加的内部集成令牌凭据。
- 请确保添加绑定以将环境变量SENTRY_AUTH_TOKEN映射到在上一步中添加的内部集成令牌凭据。
- 在部署步骤之后添加以下生成步骤:
export SENTRY_ORG=sample-organization-slug
export SENTRY_PROJECT=sample-project-slug
export SENTRY_ENVIRONMENT=production
export SENTRY_RELEASE=$(sentry-cli releases propose-version)
sentry-cli releases new -p $SENTRY_PROJECT $SENTRY_RELEASE
sentry-cli releases set-commits $SENTRY_RELEASE --auto
sentry-cli releases files $SENTRY_RELEASE upload-sourcemaps path-to-sourcemaps-if-applicable
sentry-cli releases finalize $SENTRY_RELEASE
sentry-cli releases deploys $SENTRY_RELEASE new -e $SENTRY_ENVIRONMENT
笔记:
-
如果您没有部署JavaScript项目或使用其他方法将源映射发送到Sentry,请省略upload source maps行。
-
如果无法安装存储库集成,请通过create release端点发送提交元数据或省略set commits行。
-
sentry cli releases propose version默认为正在部署的提交的提交SHA。若要将此设置为其他版本,请将SENTRY_RELEASE修改为首选版本。