{"id":16199940,"url":"https://github.com/agateau/nanoci","last_synced_at":"2025-06-30T19:32:30.024Z","repository":{"id":31238387,"uuid":"34799797","full_name":"agateau/nanoci","owner":"agateau","description":"A CI server designed to run on your developer machine","archived":false,"fork":false,"pushed_at":"2015-07-26T21:25:34.000Z","size":212,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T17:48:54.018Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agateau.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-29T14:50:02.000Z","updated_at":"2015-05-04T14:35:54.000Z","dependencies_parsed_at":"2022-09-02T11:50:52.103Z","dependency_job_id":null,"html_url":"https://github.com/agateau/nanoci","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/agateau/nanoci","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Fnanoci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Fnanoci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Fnanoci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Fnanoci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agateau","download_url":"https://codeload.github.com/agateau/nanoci/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agateau%2Fnanoci/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262838225,"owners_count":23372489,"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-10T09:28:46.791Z","updated_at":"2025-06-30T19:32:29.982Z","avatar_url":"https://github.com/agateau.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nanoci\n\nNanoci is a personal CI server, designed to run on your developer machine.\n\n## Install\n\n    ./setup.py install\n\nOptionally, run tests:\n\n    python3 -m pytest -v\n\n## Project configuration\n\nCreate a `~/.config/nanoci/projects/foo.yaml` with content similar to this:\n\n    build:\n        - type: git\n          url: /path/to/a/git/repo  # Can also be a remote git url\n\n        # A single-line script to run\n        - type: shell\n          script: make\n\n        # A multi-line script to run\n        - type: shell\n          script: |\n            make target1\n            make target2\n\n    notify:\n        # An example of a command to run at the end of the build\n        - type: shell\n          name: notify\n          script: |\n            notify-send \"$PROJECT_NAME $COMMIT_ID: $BUILD_STATUS\"\n\n## Global configuration\n\nYou can customize the global configuration by creating\n`~/.config/nanoci/nanoci.yaml` with this content:\n\n    # Port to listen to\n    port: 5000\n    # Where to checkout code and store build logs\n    work_base_dir: ~/.cache/nanoci\n\n\n## Starting nanoci\n\nRun `nanoci-server`. This will start the server on port 5000 (unless you\nchanged the global configuration).\n\n## Other commands\n\n- `nanoci-build`: start a build\n- `nanoci-log`: show the log of a build\n\n## Triggering a build on each commit\n\nCreate a `.git/hooks/post-commit` file with this content:\n\n    #!/bin/sh\n    set -e\n    if [ -d .git/rebase-merge ] ; then\n        # post-commit is called for each commit while rebasing, you probably\n        # don't want nanoci to be called at this time.\n        exit 0\n    fi\n    commit_id=$(git rev-parse HEAD)\n    nanoci-build $name $commit_id\n\nAnd make it executable.\n\nNote that you should use `post-commit`, not `pre-commit` because Nanoci needs\nthe commit ID to start building, so the commit must have been created.\n\n## Author\n\nAurélien Gâteau\n\n## License\n\n3-clause BSD\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagateau%2Fnanoci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagateau%2Fnanoci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagateau%2Fnanoci/lists"}