Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/librecores/librecores-ci-jenkins-server
LibreCores Continuous Integration
https://github.com/librecores/librecores-ci-jenkins-server
configuration-as-code docker jenkins librecores
Last synced: 3 months ago
JSON representation
LibreCores Continuous Integration
- Host: GitHub
- URL: https://github.com/librecores/librecores-ci-jenkins-server
- Owner: librecores
- License: mit
- Created: 2016-09-09T12:00:01.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2021-08-02T10:19:19.000Z (over 3 years ago)
- Last Synced: 2024-08-05T10:20:48.277Z (6 months ago)
- Topics: configuration-as-code, docker, jenkins, librecores
- Language: Groovy
- Homepage: https://ci.librecores.org/
- Size: 179 KB
- Stars: 36
- Watchers: 7
- Forks: 8
- Open Issues: 43
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# LibreCores CI
[![Gitter](https://badges.gitter.im/librecores/librecores-ci.svg)](https://gitter.im/librecores/librecores-ci?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
![GitHub release](https://img.shields.io/github/release-pre/librecores/librecores-ci-jenkins-server.svg)[LibreCores CI](https://ci.librecores.org/) is a service, which hosts automation flows for the following purposes:
* Continuous Integration of projects being hosted on [LibreCores](http://librecores.org/)
* Continuous Integration and packaging of EDA tools we use in the project ([FuseSoC](https://github.com/olofk/fusesoc), etc.)
* Automation of the project infrastructureThis repository contains backend code and documentation for the [LibreCores CI instance](https://ci.librecores.org/).
## 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](http://orconf.org/):
* [Slides](https://speakerdeck.com/onenashev/orconf2016-librecores-ci-project-overview)
* [Video](https://www.youtube.com/watch?v=scZbmkRGWsY)More recent overview from [ORCONF2017](http://orconf.org/):
* [Slides](https://speakerdeck.com/onenashev/orconf-2017-state-of-librecores-ci)
* [Video](https://www.youtube.com/watch?v=FX7_6d5yAg4&list=PLUg3wIOWD8ypZnjCc_M08APZ7NSuET4G1&index=10)## GitHub Integration
We have a [librecores-ci-bot](https://github.com/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
### Usage
Run image:
```shell
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 `-Dio.jenkins.dev.host` and additional `socat` image for forwarding.```shell
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:```shell
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
#### Master
Build image:
```shell
docker build -t librecores/librecores-ci-dev .
```#### Build Agents
See other Docker repositories in the LibreCores organization.
Note that [librecores/ci-modules](https://hub.docker.com/r/librecores/ci-modules/) (Jenkins label: `librecores-ci-modules`) on the instance
requires a pre-deployed `lcci-tools` volume with tools.
See [LCCI Python](https://github.com/librecores/lcci-python) Docker image documentation for more info about deploying tools on this volume.## Contacts
* [Oleg Nenashev](https://github.com/oleg-nenashev) - Instance maintainer: CI instance itself
* [Stefan Wallentowitz](https://github.com/wallento) - Instance maintainer: AWS, Certificates, etc.
* [Olof Kindgren](https://github.com/olofk) - Backup contact