{"id":20316025,"url":"https://github.com/lupyuen/nuttx-build-farm","last_synced_at":"2026-05-10T00:51:05.614Z","repository":{"id":261885253,"uuid":"885630851","full_name":"lupyuen/nuttx-build-farm","owner":"lupyuen","description":"Ubuntu and macOS Build Farm for Apache NuttX RTOS","archived":false,"fork":false,"pushed_at":"2025-02-23T01:57:35.000Z","size":82,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-23T02:31:44.664Z","etag":null,"topics":["buildfarm","ci","macos","nuttx","ubuntu"],"latest_commit_sha":null,"homepage":"https://lupyuen.codeberg.page/articles/ci2.html","language":"Shell","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/lupyuen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["lupyuen"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["paypal.me/lupyuen"]}},"created_at":"2024-11-09T01:32:53.000Z","updated_at":"2025-02-23T01:57:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"79b9cea5-2c9e-4ca2-b98d-dbf0265fc870","html_url":"https://github.com/lupyuen/nuttx-build-farm","commit_stats":null,"previous_names":["lupyuen/nuttx-build-farm"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lupyuen%2Fnuttx-build-farm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lupyuen%2Fnuttx-build-farm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lupyuen%2Fnuttx-build-farm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lupyuen%2Fnuttx-build-farm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lupyuen","download_url":"https://codeload.github.com/lupyuen/nuttx-build-farm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241818902,"owners_count":20025210,"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":["buildfarm","ci","macos","nuttx","ubuntu"],"created_at":"2024-11-14T18:23:47.342Z","updated_at":"2026-05-10T00:51:05.609Z","avatar_url":"https://github.com/lupyuen.png","language":"Shell","funding_links":["https://github.com/sponsors/lupyuen","paypal.me/lupyuen"],"categories":[],"sub_categories":[],"readme":"![Ubuntu and macOS Build Farm for Apache NuttX RTOS](https://lupyuen.org/images/ci4-flow.jpg)\n\n# Ubuntu and macOS Build Farm for Apache NuttX RTOS\n\nRead the articles...\n\n- [\"Your very own Build Farm for Apache NuttX RTOS\"](https://lupyuen.org/articles/ci2.html)\n\n- [\"macOS Build Farm for Apache NuttX RTOS (Apple Silicon)\"](https://lupyuen.org/articles/ci5)\n\n- [\"Rewinding a Build for Apache NuttX RTOS (Docker)\"](https://lupyuen.org/articles/ci6)\n\n- [\"Optimising the Continuous Integration for Apache NuttX RTOS (GitHub Actions)\"](https://lupyuen.org/articles/ci3.html)\n\n- [\"Continuous Integration Dashboard for Apache NuttX RTOS (Prometheus and Grafana)\"](https://lupyuen.org/articles/ci4)\n\n- [\"Mastodon Server for Continuous Integration (Apache NuttX RTOS)\"](https://lupyuen.org/articles/mastodon.html)\n\n- [\"Failing a Continuous Integration Test for Apache NuttX RTOS (QEMU RISC-V)\"](https://lupyuen.org/articles/ci7)\n\n- [\"Git Bisecting a Bug (Apache NuttX RTOS)\"](https://lupyuen.org/articles/bisect)\n\n- [\"Forgejo Git Forge for Apache NuttX RTOS (Experimental)\"](https://lupyuen.org/articles/forgejo)\n\n- [\"Fixing a uname bug (Apache NuttX RTOS)\"](https://lupyuen.org/articles/uname)\n\n- [\"Rewinding a Build\" for Apache NuttX RTOS (Docker)\"](https://lupyuen.org/articles/ci6.html)\n\n- [\"Auto-Rewind for Daily Test (Apache NuttX RTOS)\"](https://lupyuen.org/articles/rewind.html)\n\n- [\"Test Bot for Pull Requests ... Tested on Real Hardware (Apache NuttX RTOS / Oz64 SG2000 RISC-V SBC)\"](https://lupyuen.org/articles/testbot.html)\n\n- [\"QEMU Test Bot for Pull Requests: Beware of Semihosting Breakout (Apache NuttX RTOS)\"](https://lupyuen.org/articles/testbot2.html)\n\n- [\"PR Test Bot for PinePhone (Apache NuttX RTOS)\"](https://lupyuen.org/articles/testbot3.html)\n\n__Highly Esteemed Members of our NuttX Build Farm:__\n\n1.  [__jerpelea__](https://gist.github.com/jerpelea)  (Ubuntu)\n1.  [__lvanasse__](https://gist.github.com/lvanasse) (Ubuntu)\n1.  [__lupyuen__](https://gitlab.com/lupyuen/nuttx-build-log/-/snippets/) (Ubuntu Xeon)\n1.  [__nuttxpr__](https://gist.github.com/nuttxpr) (Ubuntu i5)\n1.  [__nuttxmacos2__](https://gitlab.com/nuttxmacos2/nuttx-build-log/-/snippets/) (macOS M2 Pro)\n1.  [__nuttxmacos__](https://gist.github.com/nuttxmacos) (blocked by GitHub sigh)\n1.  [__nuttxlinux__](https://gist.github.com/nuttxlinux) (blocked by GitHub sigh)\n\n__To Join Ubuntu Build Farm:__\n\nPlease tell me your User ID for GitLab Snippets or GitHub Gist. See [\"Build NuttX for All Target Groups\"](https://lupyuen.org/articles/ci2.html#build-nuttx-for-all-target-groups).\n\n```bash\n## TODO: Install Docker Engine\n## https://docs.docker.com/engine/install/ubuntu/\n\n## Download the scripts\ngit clone https://github.com/lupyuen/nuttx-release\ncd nuttx-release\nsudo apt install neofetch glab gh\n\n## For GitLab Snippets:\nsudo sh -c '. ../gitlab-token.sh \u0026\u0026 ./run-ci.sh 1'\n\n## For GitHub Gists:\nsudo sh -c '. ../github-token.sh \u0026\u0026 ./run-ci.sh 1'\n\n## Change '1' to a Unique Instance ID. Each instance of this script should run under a different Instance ID.\n\n## GitLab Token: User Settings \u003e Access Tokens \u003e Select Scopes\n##   api: Grants complete read/write access to the API, including all groups and projects, the container registry, the dependency proxy, and the package registry.\n## gitlab-token.sh contains:\n##   export GITLAB_TOKEN=...\n##   export GITLAB_USER=lupyuen\n##   export GITLAB_REPO=nuttx-build-log\n## Which means the GitLab Snippets will be created in the existing GitLab Repo \"lupyuen/nuttx-build-log\"\n\n## GitHub Token: Should have Gist Permission\n## github-token.sh contains:\n##   export GITHUB_TOKEN=...\n```\n\nTo keep the Build Farm running after logout: Use `tmux`...\n\n```bash\n## First Time: Run tmux and start `sudo ./run-ci.sh`\nsudo apt install tmux\ntmux\n\n## Next Time: Attach to the previous tmux session\ntmux a\n```\n\nFor a super-duper Server-Class Xeon PC: Run multiple jobs with a different Instance ID...\n\n```bash\n## Remember to run tmux before each sudo\nsudo sh -c '. ../gitlab-token.sh \u0026\u0026 ./run-ci.sh 1'\nsudo sh -c '. ../gitlab-token.sh \u0026\u0026 ./run-ci.sh 2'\nsudo sh -c '. ../gitlab-token.sh \u0026\u0026 ./run-ci.sh 3'\nsudo sh -c '. ../gitlab-token.sh \u0026\u0026 ./run-ci.sh 4'\n```\n\n__To Join macOS Build Farm:__\n\nPlease tell me your User ID for GitLab Snippets or GitHub Gists:\n\n```bash\n## TODO: Install Xcode Command Line Tools, brew, autoconf, wget\n## Then install these tools\nbrew install gh neofetch\n\n## Download the scripts\ngit clone https://github.com/lupyuen/nuttx-build-farm\ncd nuttx-build-farm\n\n## Set the GitLab Token: User Settings \u003e Access Tokens \u003e Select Scopes\n##   api: Grants complete read/write access to the API, including all groups and projects, the container registry, the dependency proxy, and the package registry.\n## gitlab-token.sh contains:\n##   export GITLAB_TOKEN=...\n##   export GITLAB_USER=lupyuen\n##   export GITLAB_REPO=nuttx-build-log\n. $HOME/gitlab-token-macos.sh\n\n## Or GitHub Token: Should have Gist Permission\n## github-token.sh contains:\n##   export GITHUB_TOKEN=...\n. $HOME/github-token-macos.sh\n\n## Start the macOS Build Task\n./run-ci-macos.sh\n\n## To re-download the toolchain, if the files get messed up:\n## rm -rf /tmp/run-job-macos\n```\n\n[(See the Install Log)](https://gist.github.com/lupyuen/0603bbf9c6c6102c0446415602200f87)\n\n[(See the Build Logs)](https://gitlab.com/nuttxmacos2/nuttx-build-log/-/snippets/)\n\n__Warning:__ This will max out all 12 CPU Cores of Mac Mini M2 Pro. Running at a boiling hot 100 deg C!\n\n![This will max out all 12 CPU Cores of Mac Mini M2 Pro. Running at a boiling hot 100 deg C!](https://lupyuen.org/images/ci5-arm32.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flupyuen%2Fnuttx-build-farm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flupyuen%2Fnuttx-build-farm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flupyuen%2Fnuttx-build-farm/lists"}