{"id":21919795,"url":"https://github.com/kernelci/kernelci-jenkins","last_synced_at":"2025-07-21T20:31:04.619Z","repository":{"id":39883547,"uuid":"238718137","full_name":"kernelci/kernelci-jenkins","owner":"kernelci","description":null,"archived":true,"fork":false,"pushed_at":"2024-11-12T16:01:52.000Z","size":229,"stargazers_count":10,"open_issues_count":7,"forks_count":19,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-29T07:51:27.228Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kernelci.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-06T15:19:03.000Z","updated_at":"2025-02-25T10:42:37.000Z","dependencies_parsed_at":"2023-02-19T07:00:21.760Z","dependency_job_id":"9e7aec99-90a4-4f1f-9478-319e7310be64","html_url":"https://github.com/kernelci/kernelci-jenkins","commit_stats":null,"previous_names":[],"tags_count":141,"template":false,"template_full_name":null,"purl":"pkg:github/kernelci/kernelci-jenkins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernelci%2Fkernelci-jenkins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernelci%2Fkernelci-jenkins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernelci%2Fkernelci-jenkins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernelci%2Fkernelci-jenkins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kernelci","download_url":"https://codeload.github.com/kernelci/kernelci-jenkins/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernelci%2Fkernelci-jenkins/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266375033,"owners_count":23919507,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-21T11:47:31.412Z","response_time":64,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-28T20:11:01.434Z","updated_at":"2025-07-21T20:31:04.275Z","avatar_url":"https://github.com/kernelci.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Jenkins Docker container with Config-as-Code\n============================================\n\nThis repository contains the [Jenkins\nConfig-as-Code](https://www.jenkins.io/projects/jcasc/) (JCasC) YAML needed to\ncreate a pre-configured Jenkins Docker container, and the `job-dsl` Groovy code\nfor generating the KernelCI jobs.  There are some sample `docker-compose`\nenvironment files with variables used for production, staging, and development.\n\n## Prerequisites\n\nThis Jenkins project is used to run a full KernelCI pipeline automatically.  It\nneeds at least a\n[`kernelci-backend`](https://github.com/kernelci/kernelci-backend) instance to\nbe able to publish kernel builds, and typically at least one\n[LAVA](https://www.lavasoftware.org/) lab instance to run tests.  Installing\nthose things is not covered here, please refer to their corresponding\ndocumentation.\n\n## Configuration\n\n* Copy the `env` file to `.env` and edit it with your own settings\n* Add any extra plugins (`github-auth`, `openstack` etc) to the\n  [`plugins-extra.txt`](plugins-extra.txt) file and they will be included in\n  the build.\n* Add your LAVA lab credentials in [`config/secrets.yaml`](config/secrets.yaml)\n* Any CasC YAML files that exist in the `config` directory will also be\n  loaded, so you can create your own.\n* Jenkins nodes should be configured in `config/nodes.yaml` (you will have to\n  create this).\n* Add any extra parameters you've used in your config to `.env`.\n* Edit the `ADMIN_PASSWORD` in `.env`.\n\n## Usage\n\nThen the container can be used using regular `docker-compose` commands.  Here\nare a few examples:\n* `docker-compose up --build`\n  * **action**: start the container in the foreground\n  * **notes**: useful when testing the configuration\n\n* `docker-compose up --build -d`\n  * **action**: start the container in the background\n  * **notes**: typical usage to keep the service running\n\n* `docker-compose stop`\n  * **action**: stop the container\n  * **notes**: useful when editing the configuration\n\n* `docker-compose down`\n  * **action**: destroy the container\n  * **notes**: WARNING: any jobs data or manual Jenkins configuration will be\n    lost\n\n* `docker-compose logs -f jenkins`\n  * **action**: read the Jenkins logs\n  * **notes**: useful for monitoring activity\n\n* `docker-compose exec jenkins bash`\n  * **action**: start an interactive shell in the running container\n  * **notes**: useful to debug problems by accessing files directly\n\nInitially a single job is created, this is the DSL seed job which can be used\nto create all the other ones defined in [`jobs.groovy`](jobs.groovy).  Open the\nJenkins web UI and start this job to see the other ones listed below appear on\nthe Jenkins instance.\n\n## Jenkins jobs\n\nAll the automated jobs on kernelci.org are run in Jenkins.  Some legacy scripts\nare still being used in \"freestyle\" projects but they are gradually being\nreplaced with Pipeline jobs.  Each Pipeline job has a `.jpl` file located in\nthe `jenkins` directory:\n\n* [`jenkins/monitor.jpl`](https://github.com/kernelci/kernelci-jenkins/tree/master/jobs/monitor.jpl) to monitor kernel branches and detect new revisions\n* [`jenkins/build-trigger.jpl`](https://github.com/kernelci/kernelci-jenkins/tree/master/jobs/build-trigger.jpl) to trigger all the builds for a kernel revision\n* [`jenkins/build.jpl`](https://github.com/kernelci/kernelci-jenkins/tree/master/jobs/build.jpl) to build a single kernel\n* [`jenkins/test-runner.jpl`](https://github.com/kernelci/kernelci-jenkins/tree/master/jobs/test-runner.jpl) to run tests for a single kernel build\n* [`jenkins/bisect.jpl`](https://github.com/kernelci/kernelci-jenkins/tree/master/jobs/bisect.jpl) to run automated test bisections\n* [`jenkins/rootfs-trigger.jpl`](https://github.com/kernelci/kernelci-jenkins/tree/master/jobs/rootfs-trigger.jpl) to trigger a series of rootfs image builds\n* [`jenkins/rootfs-builder.jpl`](https://github.com/kernelci/kernelci-jenkins/tree/master/jobs/rootfs-builder.jpl) to build a single rootfs image\n\nIn addition to the job files, there are also some common library files located\nin the\n[`src/org/kernelci`](https://github.com/kernelci/kernelci-core/tree/master/src/org/kernelci)\ndirectory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkernelci%2Fkernelci-jenkins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkernelci%2Fkernelci-jenkins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkernelci%2Fkernelci-jenkins/lists"}