代码之家  ›  专栏  ›  技术社区  ›  Flame_Phoenix

詹金斯公司的工作服插件?

  •  0
  • Flame_Phoenix  · 技术社区  · 6 年前

    背景

    经过大量的艰苦工作,我们终于找到了一个jenkins ci,它从github存储库中提取代码,现在正在进行持续的集成和部署。

    我们得到了代码,并且只在所有测试都通过的情况下部署它,就像往常一样。

    现在我已经检查了Java的一些插件,除了运行测试之外,还做了 测试覆盖率 ,像 Cobertura .

    但是我们不使用Java。我们用长生不老药。

    在长生不老的世界里,我们有 excoveralls ,这是工作服api的外观。工作服API supports jenkins 所以我会为詹金斯找到一个工作服插件。

    我错了。什么都没有。

    问题

    所以现在我有一个测试覆盖率基本上是无用的,因为我不能将它与詹金斯集成。

    是否有Erlang/ILIXIR插件可以与詹金斯一起用于代码覆盖?

    我还在项目中创建了一个问题(它似乎被放弃了…) https://github.com/parroty/excoveralls/issues/167

    2 回复  |  直到 6 年前
        1
  •  1
  •   Marcos Tapajós    6 年前

    我要在詹金斯档案上发表报道。我不确定这是否是你想要的标准,但是…

    stage('Publish Coverage') {
      when{
        branch 'master'
      }
    
      steps {
        publishHTML target: [
          allowMissing: true,
          alwaysLinkToLastBuild: true,
          keepAll: true,
          reportDir: 'cover',
          reportFiles: 'excoveralls.html',
          reportName: 'Coverage Report'
        ]
      }
    }
    
        2
  •  0
  •   Flame_Phoenix    6 年前

    我找到了两种方法:

    1. 使用十六进制包 JUnit formatter 和JUnit一起 post pipeline step
    2. 使用 covertool 加上科伯图拉·詹金斯·普林

    选项1

    这个解决方案很好用。它迫使我改变 test_helper.exs 但总的来说,这只是一个小小的不便。它很好,但它只提供最基本的报告,对我来说这是它失败的地方。

    选项2

    我决定的选择。是的,制作 Jenkinsfile 为Cobertura工作是一场噩梦,特别是因为在以前的版本中,甚至是不可能的,因为到处都是矛盾的信息。

    但是,一旦你明白了 詹金斯档案 去吧,你可以撕掉科伯图拉的甜蜜报告。Cobertura是用Java制作的,没有两种方法。在报告中,你可以看到类覆盖之类的东西,但是你可以很容易地翻译成模块。这个界面提供了更多的信息,并随着时间的推移跟踪覆盖范围,这是我真正想要的。

    为了以后的注意,这是我的 詹金斯档案 :

    pipeline {
      agent any
    
      environment { 
        SOME_VAR = "/home/deployer"
      }
    
      stages {
        stage("Build") {
          steps {
            sh "MIX_ENV=test mix do deps.get, deps.compile"
          }
        }
    
        stage("Test") {
          steps {
            sh "mix test --cover"
          }
        }
    
        stage("Credo"){
          steps{
            sh "mix credo --strict"
          }
        }
    
        stage("Deploy"){
          when{
            expression{
              env.BRANCH_NAME == "master"
            }
          }
          steps{
            sh '''
             echo "Deploy with AWS or GCP or whatever"                                                         
            '''
          }
        }
    
      }
    
      post{
        always{
          cobertura coberturaReportFile: "coverage.xml"
        }
      }
    }
    

    注意事项: 1。我的密码是纳粹的,所以我也用信条。您可以进一步配置它为 炸掉整个管道是因为你 错过 文件末尾有一行新代码,但正如我所说的,我的代码相当纳粹。 2。部署阶段仅在推送的分支为master时运行。还有其他的方法,但是我发现对于一个小项目来说,这样做已经足够好了。

    总的来说,我现在喜欢covertools,但我不知道第一个解决方案是否有同样的潜力。至少我没看到。

    希望这个帖子有用!

    原始线程:

    推荐文章