{"id":18029452,"url":"https://github.com/morucci/exzuul","last_synced_at":"2025-07-10T06:34:24.885Z","repository":{"id":33932566,"uuid":"37655671","full_name":"morucci/exzuul","owner":"morucci","description":"Docker container of a Gerrit/Zuul/Jenkins stack","archived":false,"fork":false,"pushed_at":"2017-12-14T09:58:40.000Z","size":18,"stargazers_count":22,"open_issues_count":3,"forks_count":18,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-08T21:31:27.671Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"benbjohnson/sql-parser","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/morucci.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}},"created_at":"2015-06-18T11:30:50.000Z","updated_at":"2024-12-14T14:02:13.000Z","dependencies_parsed_at":"2022-07-13T14:32:43.860Z","dependency_job_id":null,"html_url":"https://github.com/morucci/exzuul","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/morucci/exzuul","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morucci%2Fexzuul","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morucci%2Fexzuul/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morucci%2Fexzuul/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morucci%2Fexzuul/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/morucci","download_url":"https://codeload.github.com/morucci/exzuul/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morucci%2Fexzuul/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264538581,"owners_count":23624436,"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","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-10-30T09:09:42.043Z","updated_at":"2025-07-10T06:34:24.841Z","avatar_url":"https://github.com/morucci.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"ExZuul - Experiment Zuul on an easy to start platform\n=====================================================\n\n!!! This docker container should only be used as a test platform !!!\n\nThis docker container bundles all the needed pre-configured pieces\nto experiments the Zuul gating system used by the Openstack project.\nZuul is a generic software and can be reused for other projects outside\nof Openstack.\n\nThis docker container is based on a centos7 image and contains:\n\n- Gerrit\n- Zuul\n- Jenkins\n- Jenkins-job-builder\n\nUse Fedora 21 Cloud as Docker host\n----------------------------------\nThe easiest way to start with Docker is to use a Fedora 21 Cloud image. Start\nthe image and execute the following commands to install Docker and other\nrequirements:\n\n```\n$ sudo yum install https://get.docker.com/rpm/1.7.0/fedora-21/RPMS/x86_64/docker-engine-1.7.0-1.fc21.x86_64.rpm\n$ sudo service docker start\n$ sudo docker run hello-world\n$ sudo yum install git python-pip\n```\n\n\nServices\n--------\n\nUse ci.localdomain to access the services. It means you should\nadd such a line in your laptop /etc/hosts:\n\n\u003ccontainer_ip\u003e ci.localdomain\n\n### Gerrit\n\nGerrit is configured with \"DEVELOPMENT_BECOME_ANY_ACCOUNT\" setting so\nno need to deal with any external authentication system. Also a local H2\ndatabase is used.\n\nTwo users are created by default:\n\n- An admin user\n- A Zuul user (to allow the zuul to perform action on Gerrit)\n\nGerrit can be reached at http://ci.localdomain:8080\n\n### Zuul\n\nZuul is pre-configured to listen to events from the Gerrit event stream\nand will connect to Gerrit at container startup. Zuul's merger\ngit repositories are served via a pre-configured Apache.\n\nlayout.yaml is stored at /etc/zuul/layout.yaml. Two pipeline (check and gate)\nare already configured.\n\nZuul status page can be reached at http://ci.localdomain\n\n### Jenkins\n\nOnly a Jenkins master is configured here.\nThe Jenkins Gearman plugin is pre-configured to connect on the Zuul gearman\nserver.\n\nA default user \"jenkins/password\" is pre-configured in order to allow\nto perform administrative tasks on Jenkins. This is needed in order\nto use Jenkins Jobs Builder to manage jobs on Jenkins.\n\nJenkins Jobs Builder is pre-configured and can be used locally to update jobs.\n\nJenkins can be reached at http://ci.localdomain:8081/jenkins\n\n\nBuild and start\n---------------\n\nInstall Docker at least 1.6 and build the container:\n\n```\n$ sudo docker build -t exzuul .\n```\n\nStart the container:\n\n```\n$ sudo docker run -d -h ci.localdomain -v /dev/urandom:/dev/random -p 80:80 -p 29418:29418 -p 8080:8080 -p 8081:8081 exzuul\n$ CID=$(sudo docker ps | grep exzuul | cut -f1 -d' ')\n```\n\nGet a live shell inside a running container:\n\n```\n$ sudo docker exec -i -t $CID /bin/bash\n```\n\nGet the container IP:\n\n```\n$ sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $CID\n```\n\nYou should access the container using ci.localdomain hostname instead\nof the IP. Please add \"\u003ccontainer_ip\u003e ci.localdomain\" in /etc/hosts.\n\n\nWARNING: If the container is stopped and restarted all local work and\nconfiguration will be lost.\n\n\nConfigure a first project to be validated via Zuul\n--------------------------------------------------\n\nHere is the first steps to perform in order to have a project hosted on Gerrit\nand a job triggered by Zuul.\n\n* Login to Gerrit as the admin user. Add your public key in the admin user\n  settings page. If you don't have a key yet, create one:\n```\n$ ssh-keygen\n$ cat ~/.ssh/id_rsa.pub\n```\n* Create a Job in Jenkins for \"testproject\" using the following command. The\n  container already has a valid JJB configuration with a working job definition\n  for \"testproject\".\n\n```\n$ sudo docker exec -i -t $CID /bin/bash\n# # Create a job in Jenkins for a project call \"testproject\"\n# jenkins-jobs --conf /etc/jenkins_jobs/jenkins_jobs.ini update /etc/jenkins_jobs/jobs\n```\n\n- The job \"testproject-unit-tests\" must be shown in the Jenkin job list\n- As admin - create a project called \"testproject\" in Gerrit (check \"create inital empty commit\")\n- Clone the new project on your local computer and submit the as a review\n\n```\n$ git clone http://ci.localdomain:8080/testproject\n$ cd testproject\n$ git checkout -b \"first_commit\"\n$ cat \u003e .gitreview \u003c\u003c EOF\n[gerrit]\nhost=ci.localdomain\nport=29418\nproject=testproject.git\nEOF\n$ cat \u003e run_tests.sh \u003c\u003c EOF\n#!/bin/bash\nexit 0\nEOF\n$ chmod +x run_tests.sh\n$ sudo pip install git-review\n$ touch \"$HOME/.ssh/known_hosts\"\n$ ssh-keygen -f \"$HOME/.ssh/known_hosts\" -R [ci.localdomain]:29418\n$ git review -s # use \"admin\" as login and be sure to have the public key listed by ssh-add -l\n$ git config --add gitreview.username \"admin\"\n$ git add run_tests.sh .gitreview\n$ git commit -m \"first commit\"\n$ git review\n```\n\nIn the Gerrit web UI you should see your new patch on \"testproject\" and a green check\nsign added by Zuul in the \"Verified\" label.\n\nIf you succeed to have your patch validated by Zuul that means the platform is\nready to be used !\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorucci%2Fexzuul","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorucci%2Fexzuul","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorucci%2Fexzuul/lists"}