Page MenuHomec4science

Unit Tests and Lint
Updated 2,972 Days AgoPublic

Version 3 of 35: You are viewing an older version of this document, as it appeared on Mar 8 2016, 14:53.

Unit tests

Create a new Job

  • Create a new Item of type "Freestyle project", give it a name
  • Select Git as source code management and put the URL of the repository
    • If your repository is private, you have to create a new Creadential for it, for instance using an SSH key with your Phabricator username, You'll add the public key to your phabricator profile: https://c4science.ch/settings/panel/ssh/
  • If you want to periodically build the project, select the option under Build triggers and use this syntax H/30 * * * * to build every 30 mn. See complete documentation about the syntax by clicking on the question mark on the right of the field
  • To run your unit test, add a Build step, select Execute Shell and provide the command to run your tests

Run builds from Phabricator

  • You can also trigger a build from Phabricator
  • Create a Build Plan for your repository, https://c4science.ch/harbormaster/plan/
  • Add a new Build Step of type "Make HTTP Request"
  • You'll have to create a token on your Jenkins job, go to your job configuration page under Build Triggers, tick "Trigger builds remotely" and create a token.
    • The best would be some random string, you can generate one like this on a linux shell: head /dev/urandom | md5sum
  • Go back to your Build step on Phabricator and add the following URL, https://jenkins.c4science.ch/buildByToken/build?token=<your token>&job=<your job name>
  • Save your step
  • Go to Herald, https://c4science.ch/herald/
  • Create a new Rule on Commits of type Global
  • Give it a name and select the condition as "Repository is any of <your repository>"
  • Then select the "Run build plans" action with your newly created Build plan
  • Save the rule
  • Now when a commit is pushed on your repository, a build will be generated on your Jenkins job

Linters

  • You can use various syntax checking tools when submitting patches to phabricator

List available tools

arc linters

Configuration of a specific linter for your project

  • Create a .arclint file in your project with the desired linters
  • In this example it has python, text, spelling and filename linters
{
  "linters": {
    "spelling-linter": {
      "type": "spelling"
    },
    "filename-linter": {
      "type": "filename"
    },
    "text-linter": {
      "type": "text"
    },
    "python-checks": {
      "type": "pylint",
      "include": "(\\.py$)"
    }
  }
}

Checks all files with configured linters

arc lint --everything

Official documentation

Last Author
admin
Last Edited
Mar 8 2016, 14:53

Event Timeline

admin moved this document from Restricted Phriction Wiki DocumentFeb 20 2016, 13:45
admin edited the content of this document. (Show Details)Mar 8 2016, 13:19
admin changed the title from Unit Tests with arcanist to Unit Tests and Lint.Mar 8 2016, 14:53
admin edited the content of this document. (Show Details)Mar 11 2016, 12:50
admin changed the title from Unit Tests and Lint to Unit Tests.
admin edited the content of this document. (Show Details)
admin edited the content of this document. (Show Details)
admin edited the content of this document. (Show Details)Mar 11 2016, 16:55
admin edited the content of this document. (Show Details)Mar 11 2016, 17:10
admin edited the content of this document. (Show Details)Mar 11 2016, 17:12
admin edited the content of this document. (Show Details)Mar 12 2016, 00:41
aubort edited the content of this document. (Show Details)Apr 7 2016, 17:31
aubort edited the content of this document. (Show Details)Apr 8 2016, 09:42
aubort edited the content of this document. (Show Details)Apr 8 2016, 10:05
aubort edited the content of this document. (Show Details)Jun 2 2016, 16:39
aubort edited the content of this document. (Show Details)
aubort edited the content of this document. (Show Details)Jun 3 2016, 16:36
aubort added a subscriber: jenkins.
aubort changed the visibility from "All Users" to "Public (No Login Required)".Jun 7 2016, 12:46
aubort edited the content of this document. (Show Details)Sep 2 2016, 10:10
aubort edited the content of this document. (Show Details)
aubort edited the content of this document. (Show Details)Oct 7 2016, 15:45
aubort edited the content of this document. (Show Details)Oct 7 2016, 15:53
aubort edited the content of this document. (Show Details)Oct 9 2016, 16:54
aubort edited the content of this document. (Show Details)Oct 9 2016, 17:57
aubort edited the content of this document. (Show Details)
aubort edited the content of this document. (Show Details)Oct 13 2016, 15:36
aubort changed the edit policy from "c4science (Project)" to "Restricted Project (Project)".Dec 16 2016, 16:50
aubort edited the content of this document. (Show Details)Dec 21 2016, 11:59
aubort edited the content of this document. (Show Details)
aubort edited the content of this document. (Show Details)Dec 21 2016, 12:01
aubort edited the content of this document. (Show Details)Mar 13 2017, 15:25
aubort added a project: c4science.
aubort removed a subscriber: jenkins.
aubort edited the content of this document. (Show Details)Nov 8 2017, 11:18
aubort added a subscriber: jenkins.
aubort edited the content of this document. (Show Details)Apr 3 2018, 12:52
aubort edited the content of this document. (Show Details)
aubort edited the content of this document. (Show Details)
aubort removed a subscriber: jenkins.
aubort edited the content of this document. (Show Details)Oct 31 2018, 16:41
aubort edited the content of this document. (Show Details)Dec 4 2018, 11:29
aubort edited the content of this document. (Show Details)