7

I am using code climate for code quality and test coverage. I have added the gem and code in spec_helper.rb to start the coverage. In the next step code as per the documentation: When you run your tests on CI, set the CODECLIMATE_REPO_TOKEN environment variable: $CODECLIMATE_REPO_TOKEN=******************** bundle exec rake

I tried to set the above line in the execute shell commands of jenkins. Also tried to set the environment variables CODECLIMATE_REPO_TOKEN in the Manage jenkins -> Configure System settings. But that doesn't work. I couldn't find any documentation to setup test coverage with jenkins. Any help would be appreciable.

As per the code-climate documentation

Add the codeclimate-test-reporter gem to your Gemfile: 

gem "codeclimate-test-reporter", group: :test, require: nil

Start the test reporter on the very first line of spec_helper.rb or test_helper.rb: 

require "codeclimate-test-reporter" CodeClimate::TestReporter.start

When you run your tests on CI, set the CODECLIMATE_REPO_TOKEN environment variable: $ CODECLIMATE_REPO_TOKEN=**************************** bundle exec rake (Note: This token is specific to this repo on Code Climate.) (Note: **As an alternative to the above, you may prefer to define this token as environment variable within your CI's user interface or configuration file**.) 

Its written here that the token environment variable is to be defined within your CI server. That is what my question is where to define it in jenkins. I tried defining the global environment variable in jenkins under "Manage jenkins"->"System configuration". But it didn't work.

enter image description here

15
  • did you get it running locally? Commented Sep 16, 2015 at 15:39
  • @phoet I have a jenkins server setup to trigger build on github pull request Commented Sep 16, 2015 at 17:21
  • how does that answer my question? Commented Sep 21, 2015 at 13:03
  • @phoet I didn't get your question. How can I run it locally. I am using jenkins server with which I need to integrate the code-climate Commented Sep 21, 2015 at 18:11
  • i was asking, that when you integrated the gem into your spec_helper.rb and you run your specs locally with the token, is that working? jenkins is just another environment you are running it on. if it works locally, the only issue can be in the environment of your ci server. Commented Sep 22, 2015 at 13:51

2 Answers 2

1

If your question is how to set an environment variable in Jenkins, you may look e.g. here: How to set environment variables in Jenkins?

Sign up to request clarification or add additional context in comments.

4 Comments

No, I tried to setup a environment variable thinking that it should work for me. But my question is different. Kindly read it.
I did, and still, there are two possible interpretations: 1. you assume that setting environment variable does not work in the way it is described in the documentation and you are looking for another way to communicate the value to the climate coverage or 2. you are not sure that the environment variable is set in Jenkins process. Which is correct?
You are correct. Actually I didn't know how to get code-climate up and running for code coverage with my jenkins server. I was doing hit and trial with the two possible interpretation given by you.
Do you have ssh access to the server, where Jenkins runs?
0

I'm using a karma tester and nyc with mocha to create my report.(lcov.info) I crete my report and insert it in build/reports/coverage/XXXXXXXXXX/lcov.info . This path maybe is different for you.

After that I transform the lcov.info in codeclimate.XXXXX.json Finally all is merge whit sum-coverage

stage('Code Climate'){ environment { CC_TEST_REPORTER_ID = credentials('7da93b1f-3602-458c-a07c-fcf36402c499') } steps{ sh 'wget https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter' sh 'chmod 777 cc-test-reporter' sh './cc-test-reporter --debug before-build' sh './cc-test-reporter --debug format-coverage build/reports/coverage/server-tests/lcov.info -t lcov -o build/reports/coverage/codeclimate.server.json' sh './cc-test-reporter --debug format-coverage build/reports/coverage/ng/lcov.info -t lcov -o build/reports/coverage/codeclimate.frontend.json' sh './cc-test-reporter --debug format-coverage build/reports/coverage/api-tests/lcov.info -t lcov -o build/reports/coverage/codeclimate.api.json' sh './cc-test-reporter sum-coverage build/reports/coverage/codeclimate.*.json -p 3' sh './cc-test-reporter upload-coverage -r ${CC_TEST_REPORTER_ID}' sh 'rm cc-test-reporter' } } 

with

environment { CC_TEST_REPORTER_ID = credentials('7da93b1f-3602-458c-a07c-fcf36402c499') } 

i extract my CC_TEST_REPORTER_ID that I have set in Manage Jenkins > Manage credentials. You can found it in https://codeclimate.com/repos/XXXXXXXXXXXXXXXX/settings/test_reporter where in XXXXXXXXXXXXXXX you need to put your codeclimate project.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.