Javascript 如何使用Jenkins在CI的Cypers仪表板中填充作者、分支、提交和消息?
我正在尝试在中获取提交信息的详细信息。我还没能完成,但我已经取得了一些进展 我将描述到目前为止我所做的工作:Javascript 如何使用Jenkins在CI的Cypers仪表板中填充作者、分支、提交和消息?,javascript,jenkins,github,continuous-integration,cypress,Javascript,Jenkins,Github,Continuous Integration,Cypress,我正在尝试在中获取提交信息的详细信息。我还没能完成,但我已经取得了一些进展 我将描述到目前为止我所做的工作: 通过运行以下命令安装了npm程序包: npm安装--save@cypress/commit info 在plugin/index.js文件中导入插件,如下所示: 现在我在终端中获得了所有信息,作者、分支、提交和消息!:) 但是,我仍然没有链接到Cypress仪表板的详细信息 这是我目前得到的: 下一步是什么?我不清楚文档…在我们的例子中,我们在docker容器中运行所有内容。我
- 通过运行以下命令安装了npm程序包:
npm安装--save@cypress/commit info
- 在
文件中导入插件,如下所示:plugin/index.js
下一步是什么?我不清楚文档…在我们的例子中,我们在docker容器中运行所有内容。我们将代码复制到容器中,但不复制.git目录,它很大,很耗时,而且我们不需要它
@cypress/commit info
,所以既然没有,它就不起作用
我们通过在Jenkinsfile
中的cypress run命令中显式设置克服了这一问题:
def commitMessage = sh(script:"git log --format=%B -n 1 ${env.GIT_COMMIT}", returnStdout:true).trim()
def commitAuthor = sh(script:"git log --format='%an' -n 1 ${env.GIT_COMMIT}", returnStdout:true).trim()
def commitEmail = sh(script:"git log --format='%ae' -n 1 ${env.GIT_COMMIT}", returnStdout:true).trim()
def cypressVars = "COMMIT_INFO_BRANCH=${env.GIT_BRANCH} COMMIT_INFO_SHA=${env.GIT_COMMIT} COMMIT_INFO_REMOTE=${env.GIT_URL} COMMIT_INFO_MESSAGE=\"${commitMessage}\" COMMIT_INFO_AUTHOR=\"${commitAuthor}\" COMMIT_INFO_EMAIL=${commitEmail}"
// call cypress however you do and include cypressVars as part of the command
在我们的例子中,我们在docker容器中运行所有内容。我们将代码复制到容器中,但不复制.git目录,它很大,很耗时,而且我们不需要它
@cypress/commit info
,所以既然没有,它就不起作用
我们通过在Jenkinsfile
中的cypress run命令中显式设置克服了这一问题:
def commitMessage = sh(script:"git log --format=%B -n 1 ${env.GIT_COMMIT}", returnStdout:true).trim()
def commitAuthor = sh(script:"git log --format='%an' -n 1 ${env.GIT_COMMIT}", returnStdout:true).trim()
def commitEmail = sh(script:"git log --format='%ae' -n 1 ${env.GIT_COMMIT}", returnStdout:true).trim()
def cypressVars = "COMMIT_INFO_BRANCH=${env.GIT_BRANCH} COMMIT_INFO_SHA=${env.GIT_COMMIT} COMMIT_INFO_REMOTE=${env.GIT_URL} COMMIT_INFO_MESSAGE=\"${commitMessage}\" COMMIT_INFO_AUTHOR=\"${commitAuthor}\" COMMIT_INFO_EMAIL=${commitEmail}"
// call cypress however you do and include cypressVars as part of the command
我应该在哪里添加您提供给我的代码段?请不要假设我对这些主题有任何知识:)顺便说一句,注意我已经在终端上打印了所有信息。我只需要与仪表板同步,这会在您调用
cypress run
之前出现在您的Jenkins文件中。如果您提供如何在CI中运行Cypress的代码,我可以编辑我的答案,以便更适合您的情况。这都是假设它是同一个问题-您在docker容器中运行。谢谢,不幸的是,我不能分享它。但至少你给了我一些指示!谢谢,我终于对这个概念有了更多的了解&使用了你的代码,工作起来很有魅力!我应该在哪里添加您提供给我的代码段?请不要假设我对这些主题有任何知识:)顺便说一句,注意我已经在终端上打印了所有信息。我只需要与仪表板同步,这会在您调用cypress run
之前出现在您的Jenkins文件中。如果您提供如何在CI中运行Cypress的代码,我可以编辑我的答案,以便更适合您的情况。这都是假设它是同一个问题-您在docker容器中运行。谢谢,不幸的是,我不能分享它。但至少你给了我一些指示!谢谢,我终于对这个概念有了更多的了解&使用了你的代码,工作起来很有魅力!