mirror of
https://github.com/lupyuen/nuttx-build-farm.git
synced 2025-01-12 23:28:32 +08:00
Ubuntu and macOS Build Farm for Apache NuttX RTOS
.github | ||
.vscode | ||
LICENSE | ||
patch-ci-macos.sh | ||
README.md | ||
rewind-build.sh | ||
rewind-commit.sh | ||
run-build-macos.sh | ||
run-ci-macos.sh | ||
run-job-macos.sh | ||
run.sh |
Ubuntu and macOS Build Farm for Apache NuttX RTOS
Read the articles...
-
"Optimising the Continuous Integration for Apache NuttX RTOS (GitHub Actions)"
-
"Continuous Integration Dashboard for Apache NuttX RTOS (Prometheus and Grafana)"
Highly Esteemed Members of our NuttX Build Farm:
- jerpelea (Ubuntu)
- lvanasse (Ubuntu)
- nuttxpr (Ubuntu i5)
- nuttxlinux (Ubuntu Xeon)
- nuttxmacos (macOS M2 Pro)
To Join Ubuntu Build Farm:
Please tell me your Gist ID. See "Build NuttX for All Target Groups".
## TODO: Install Docker Engine
## https://docs.docker.com/engine/install/ubuntu/
## Download the scripts
git clone https://github.com/lupyuen/nuttx-release
cd nuttx-release
## Login to GitHub in Headless Mode
sudo apt install gh neofetch
sudo gh auth login
## (1) What Account: "GitHub.com"
## (2) Preferred Protocol: "HTTPS"
## (3) Authenticate GitHub CLI: "Login with a web browser"
## (4) Copy the One-Time Code, press Enter
## (5) Press "q" to quit the Text Browser that appears
## (6) Switch to Firefox Browser and load https://github.com/login/device
## (7) Enter the One-Time Code. GitHub Login will proceed.
## See https://stackoverflow.com/questions/78890002/how-to-do-gh-auth-login-when-run-in-headless-mode
## Run the Build Job forever: arm-01 ... arm-14
sudo ./run-ci.sh
## Alternatively: Use a GitHub Token with Gist Permssion (see below)
sudo sh -c '. ../github-token.sh && ./run-ci.sh'
To keep the Build Farm running after logout: Use tmux
...
## First Time: Run tmux and start `sudo ./run-ci.sh`
sudo apt install tmux
tmux
## Next Time: Attach to the previous tmux session
tmux a
For a super-duper Server-Class Xeon PC: Run multiple jobs with a different Instance ID...
## Remember to run tmux before each sudo
sudo sh -c '. ../github-token.sh && ./run-ci.sh 1'
sudo sh -c '. ../github-token.sh && ./run-ci.sh 2'
sudo sh -c '. ../github-token.sh && ./run-ci.sh 3'
sudo sh -c '. ../github-token.sh && ./run-ci.sh 4'
To Join macOS Build Farm:
Please tell me your Gist ID:
## TODO: Install Xcode Command Line Tools, brew, autoconf, wget
## Then install these tools
brew install gh neofetch
## Download the scripts
git clone https://github.com/lupyuen/nuttx-build-farm
cd nuttx-build-farm
## Set the GitHub Token: export GITHUB_TOKEN=...
## To create GitHub Token: GitHub Settings > Developer Settings > Tokens (Classic) > Generate New Token (Classic)
## Check the following:
## repo (Full control of private repositories)
## repo:status (Access commit status)
## repo_deployment (Access deployment status)
## public_repo (Access public repositories)
## repo:invite (Access repository invitations)
## security_events (Read and write security events)
## gist (Create gists)
. $HOME/github-token-macos.sh
## Start the macOS Build Task
./run-ci-macos.sh
## To re-download the toolchain, if the files get messed up:
## rm -rf /tmp/run-job-macos
Warning: This will max out all 12 CPU Cores of Mac Mini M2 Pro. Running at a boiling hot 100 deg C!