Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

LibreCores CI

Gitter GitHub release

LibreCores CI is a service, which hosts automation flows for the following purposes:

  • Continuous Integration of projects being hosted on LibreCores
  • Continuous Integration and packaging of EDA tools we use in the project (FuseSoC, etc.)
  • Automation of the project infrastructure

This repository contains backend code and documentation for the LibreCores CI instance.

Current status

The instance is under construction now. In the case of any questions, please use bugtracker in this GitHub project.

Status overview from ORCONF2016:

More recent overview from ORCONF2017:

GitHub Integration

We have a librecores-ci-bot, which allows integrating with GitHub projects.

Commonly it requires the following permissions:

  • Read-only - for accessing repos
  • Write permission - for commenting and approving pull requests/commits
  • Webhook - for automated hook management within repo/organization (not really required since project admins can setup hooks on their own)

Docker Dev Environment


Run image:

docker run --rm --name ci-jenkins-io-dev -v maven-repo:/root/.m2 -e DEV_HOST=${CURRENT_HOST} -p 8080:8080 -p 50000:50000 -v ${MY_SECRETS_DIR}:/var/jenkins_home/imported_secrets:ro librecores/librecores-ci-dev

Jenkins will need to connect to the Docker host to run agents. If you use Docker for Mac, use and additional socat image for forwarding.

docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 2376:2375 bobrik/socat TCP4-LISTEN:2375,fork,reuseaddr UNIX-CONNECT:/var/run/docker.sock

Connect to Jenkins and login:

Read "YOUR SERVER ADDRESS WILL BE AS FOLLOWS" section in server startup logs (very beginning). Try opening these destinations in your browser while the server is running to see what works for your setup.

When successfull log into Jenkins web GUI with

Login: admin
Password: admin

Developing Pipeline libraries

In the Development folder there is a PipelineLib folder, which allows local building and testing of the library. This folder can be mapped to a local repository in order to develop the library without committing changes:

docker run --rm --name librecores-ci-dev -v maven-repo:/root/.m2 -v ${MY_PIPELINE_DEV_DIR}:/var/jenkins_home/pipeline-dev:ro -v ${MY_SECRETS_DIR}:/var/jenkins_home/imported_secrets:ro -e DEV_HOST=${CURRENT_HOST} -p 8080:8080 -p 50000:50000 librecores/librecores-ci-dev

Once started, you can just start editing the Pipeline library locally. On every job start the changes will be reflected in the directory without committing anything.

Debugging Master

In order to debug the master, use the -e DEBUG=true -p 5005:5005 when starting the container. Jenkins will be suspended on the startup in such case.

In the debug mode it is possible to debug Jenkins core master, including Jenkins core, plugins, and Groovy Init Scripts in this repository. Just open IDE with the required projects and attach debugger to the instance.

Building images


Build image:

docker build -t librecores/librecores-ci-dev .

Build Agents

See other Docker repositories in the LibreCores organization.

Note that librecores/ci-modules (Jenkins label: librecores-ci-modules) on the instance requires a pre-deployed lcci-tools volume with tools. See LCCI Python Docker image documentation for more info about deploying tools on this volume.