README.rst

Pagure CI

This is to setup Pagure CI for development. It is assumed that all the dependencies are resolved.

  • Run:

    PAGURE_CONFIG=/path/to/config PYTHONPATH=. python pagure-ci/pagure_ci_server.py
    

Configure Jenkins

Jenkins configuration is the most important part of how the Pagure CI works, after you login to your Jenkins Instance.

  • Go to Manage Jenkins -> Configuire Global Security and under that select 'Project-based Matrix Authorization Strategy'
  • Add a user and give all the permission to that user.
  • Download the following plugins:

Configure your project on Jenkins

  • Start by enabling the Pagure CI hook in the settings of your project on pagure. This will provide you two values needed to configure your project on jenkins: a token and an URL that jenkins calls to return the results of a build.
  • Go to the Configure page of your project
  • Under Job Notification click Add Endpoint
  • Fields in Endpoint will be :
FORMAT: JSON
PROTOCOL: HTTP
EVENT: Job Finalized
URL: <The URL provided in the Pagure CI hook on pagure>
TIMEOUT: 3000
LOG: 1
  • Tick the checkbox This build is parameterized
  • Add two String Parameters named REPO and BRANCH
  • Source Code Management select Git and give the URL of the pagure project
  • Under Build Trigger click on Trigger build remotely and specify the token given by pagure.
  • Under Build -> Add build step -> Execute Shell
  • In the box given enter the shell steps you want for testing your project.

Example Script

# Script specific for Pull-Request build
if [ -n "$REPO" -a -n "$BRANCH" ]; then
git remote rm proposed || true
git remote add proposed "$REPO"
git fetch proposed
git checkout origin/master
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git merge --no-ff "proposed/$BRANCH" -m "Merge PR"
fi

# Part of the script specific to how you run the tests on your project