Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Jenkins在CI的Cypers仪表板中填充作者、分支、提交和消息?_Javascript_Jenkins_Github_Continuous Integration_Cypress - Fatal编程技术网

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
    文件中导入插件,如下所示:
现在我在终端中获得了所有信息,作者、分支、提交和消息!:) 但是,我仍然没有链接到Cypress仪表板的详细信息

这是我目前得到的:


下一步是什么?我不清楚文档…

在我们的例子中,我们在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容器中运行。谢谢,不幸的是,我不能分享它。但至少你给了我一些指示!谢谢,我终于对这个概念有了更多的了解&使用了你的代码,工作起来很有魅力!