{"id":30342721,"url":"https://github.com/softdevteam/tryci","last_synced_at":"2025-08-18T10:41:25.893Z","repository":{"id":293552735,"uuid":"728412723","full_name":"softdevteam/tryci","owner":"softdevteam","description":"A script to emulate a soft-dev buildbot CI job run.","archived":false,"fork":false,"pushed_at":"2025-05-30T13:21:36.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-30T18:37:35.893Z","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/softdevteam.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,"zenodo":null}},"created_at":"2023-12-06T22:17:18.000Z","updated_at":"2025-05-30T13:21:40.000Z","dependencies_parsed_at":"2025-05-15T23:33:38.673Z","dependency_job_id":null,"html_url":"https://github.com/softdevteam/tryci","commit_stats":null,"previous_names":["softdevteam/tryci"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/softdevteam/tryci","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Ftryci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Ftryci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Ftryci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Ftryci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softdevteam","download_url":"https://codeload.github.com/softdevteam/tryci/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Ftryci/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270982135,"owners_count":24679442,"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-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":"2025-08-18T10:41:22.200Z","updated_at":"2025-08-18T10:41:25.877Z","avatar_url":"https://github.com/softdevteam.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TryCI\n\nA script to emulate a soft-dev buildbot CI job run.\n\nIf a build job fails, `TryCI` can conduct a post-mortem (using the\n`--post-mortem` flag) by attaching a shell which allows you to prod around\ninside the image.\n\nThis must be run from within a softdev repo which uses buildbot for CI, in the\nsame directory as the repo's `.buildbot.sh` file.\n\n## Example usage\n\nThe example below shows how a CI build for Alloy (located on my local machine)\ncan be run on remotely on `bencher16@soft-dev.org` (with the `bencher16` alias\nin my `~/.ssh/config`): \n\n```sh\ncd /path/to/alloy\ntryci --remote bencher16 --post-mortem\n```\n\nThe `--remote` arg specifies the ssh host where the build should be run. \n\nThe `--post-mortem` flag attaches a shell to the build if it fails so that you\ncan prod around inside the container.\n\nThe docker image and container for the build are removed before the script exits.\n\n## Checking out a specific CI job\n\nBy default, `TryCI` uses the working tree as the build context for the CI job.\nThis works well for iterating on features, but can be annoying when you want to\ndebug a remote CI job which failed.\n\nYou can specify which version of the repo you want to `TryCI` with the\n`-c/--checkout \u003cref\u003e` option. `\u003cref\u003e` can be either a branch, commit, or tag of\nthe local repository; or a remote URL of the git repository. Here are some\nexamples:\n\n```sh\n# run tryci on the local HEAD\ntryci -c HEAD\n\n# run tryci on the local feature-branch\ntryci -c feature-branch\n\n# run tryci on the master branch of jacob-hughes/yk\ntryci -c https://github.com/jacob-hughes/yk\n\n# run tryci on the 'trying' branch of ykjit/yk\ntryci -c https://github.com/ykjit/yk#trying\n\n# run tryci on a specified commit ykjit/yk\ntryci -c https://github.com/ykjit/yk#0a6902a\n```\n\nThis works with the `--post-mortem` flag, so -- provided docker is installed --\nyou can even use `TryCI` to prod around in a CI job on machines which you\nhaven't cloned the original repo or setup to develop on.\n\n## Using bindmounts for faster build times\n\nSometimes a CI build will depend on a submodule or external program which the\n`.buildbot.sh` script builds from source each time. For large projects (like\n`ykllvm`, which can take up to an hour to build) this can make build times\nsignificantly slower.\n\nInstead, you can mount arbitrarily many prebuilt programs from the host to be\nused inside the docker container using `-m/--mount` flag. You can specify\nmultiple bind-mounts by repeating the option or by providing a comma-separated\nlist:\n\n```\n-m /src:/dst -m /foo:/bar:ro\n-m /src:/dst,/foo:/bar:ro\n```\nIf using this with the `--remote` flag, you must ensure the directory you wish\nto bind-mount exists on the remote machine -- it does not `scp` / `rsync` it\nover.\n\n## Troubleshooting\n\n* Docker must be installed on both the local machine and remote machine used to\n  compile and run the build.\n* Your user account on both the local and remote machine must be a member of the\n  `docker` group.\n* If running CI on a remote machine (`--remote \u003cserver_name\u003e`) you must use ssh\n  passwordless login (using public/private key pair).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftdevteam%2Ftryci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftdevteam%2Ftryci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftdevteam%2Ftryci/lists"}