{"id":13644356,"url":"https://github.com/benchkram/bob","last_synced_at":"2025-04-05T00:09:45.472Z","repository":{"id":36964193,"uuid":"436395377","full_name":"benchkram/bob","owner":"benchkram","description":"Bob is a high-level build tool for multi-language projects.","archived":false,"fork":false,"pushed_at":"2024-05-01T07:28:29.000Z","size":2333,"stargazers_count":483,"open_issues_count":70,"forks_count":14,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-28T23:07:25.823Z","etag":null,"topics":["build","build-system","build-tool","cicd","go","golang","monorepo","nix"],"latest_commit_sha":null,"homepage":"https://bob.build","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benchkram.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-08T21:21:24.000Z","updated_at":"2025-03-18T23:03:33.000Z","dependencies_parsed_at":"2024-01-14T09:20:10.617Z","dependency_job_id":"c2333f7b-2b2f-417b-9e0d-b058bcfb86f9","html_url":"https://github.com/benchkram/bob","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchkram%2Fbob","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchkram%2Fbob/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchkram%2Fbob/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchkram%2Fbob/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benchkram","download_url":"https://codeload.github.com/benchkram/bob/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266564,"owners_count":20910836,"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":["build","build-system","build-tool","cicd","go","golang","monorepo","nix"],"created_at":"2024-08-02T01:02:01.802Z","updated_at":"2025-04-05T00:09:45.453Z","avatar_url":"https://github.com/benchkram.png","language":"Go","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg  width=\"300\" src=\"https://bob.build/docs/img/logo.svg\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\nWrite Once, Build Once, Anywhere\n\u003c/p\u003e\n\n---\n\n\u003cp\u003e\n    \u003ca href=\"https://github.com/benchkram/bob/releases\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/release/benchkram/bob.svg\" alt=\"Latest Release\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://pkg.go.dev/github.com/benchkram/bob?tab=doc\"\u003e\n        \u003cimg src=\"https://godoc.org/github.com/golang/gddo?status.svg\" alt=\"GoDoc\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/benchkram/bob/actions\"\u003e\n        \u003cimg src=\"https://github.com/benchkram/bob/actions/workflows/main.yml/badge.svg\" alt=\"Build Status\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\nBob is a high-level build tool for multi-language projects.\n\nUse it to build codebases organized in multiple repositories or in a monorepo.\n\nWhen to consider using Bob?\n\n- You want a pipeline which runs locally and on CI.\n- You want remote caching and never having to do the same build twice.\n- You want to get rid of \"Works on My Machine\".\n- You like Bazel and its features but think it's too complex.\n- You want a build system which keeps frontend tooling functional.\n\n# Getting Started\n\n[Docs](https://bob.build/docs/) | [Install](https://bob.build/docs/getting-started/installation/)\n\n## Installing From Source\n\nIf you want to go wild, and have Go 1.17 or later installed, the short version is:\n\n```bash\ngit clone https://github.com/benchkram/bob\ncd bob\ngo install\n```\n\nFor shell autocompletion (bash and zsh supported) add `source \u003c(bob completion)` to your `.bashrc`/`.zshrc`.\n\n# How it works\n\nBob generates its internal build graph from tasks described in a `bob.yaml` file (usually referred to as \"Bobfile\").\nEach build step is executed in a sandboxed shell only using the given dependencies required from the nix package manager.\n\nThe basic components of a build task are:\n\n- **input**: Whenever an input changes, the task's commands need to be re-executed.\n- **cmd**: Commands to be executed\n- **target**: Files, directories or docker images created during execution of _cmd_\n- **dependencies** Dependencies managed by the Nix package manager\n\nExample of a `bob.yaml` file:\n\n```yaml\nnixpkgs: https://github.com/NixOS/nixpkgs/archive/nixos-23.11.tar.gz\nbuild:\n  build:\n    input: \"*\"\n    cmd: go build -o ./app\n    target: ./app\n    dependencies: [go]\n```\n\nMultiline `sh` and `bash` commands are entirely possible, powered by [mvdan/sh](https://github.com/mvdan/sh).\n\n# Comparisons\n\n- [Dagger vs. bob](https://medium.com/benchkram/dagger-vs-bob-2e917cd185d3)\n- [Bazel vs. bob](https://bob.build/blog/vs-bazel)\n- [Mage vs. bob](https://medium.com/benchkram/build-system-comparison-mage-vs-bob-aaf4665e3d5c)\n","funding_links":[],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenchkram%2Fbob","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenchkram%2Fbob","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenchkram%2Fbob/lists"}