/nuttx-build-farm

Ubuntu and macOS Build Farm for Apache NuttX RTOS

Primary LanguageShellApache License 2.0Apache-2.0

Ubuntu and macOS Build Farm for Apache NuttX RTOS

Ubuntu and macOS Build Farm for Apache NuttX RTOS

Read the articles...

Highly Esteemed Members of our NuttX Build Farm:

  1. jerpelea (Ubuntu)
  2. lvanasse (Ubuntu)
  3. nuttxpr (Ubuntu i5)
  4. nuttxlinux (Ubuntu Xeon)
  5. 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

(GitHub Token should also work, see below)

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 run-ci.sh, run-ci2.sh, run-ci3.sh, run-ci4.sh

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

(See the Install Log)

(See the Build Logs)

Warning: This will max out all 12 CPU Cores of Mac Mini M2 Pro. Running at a boiling hot 100 deg C!

This will max out all 12 CPU Cores of Mac Mini M2 Pro. Running at a boiling hot 100 deg C!