Skip to content

lupyuen/nuttx-build-farm

Repository files navigation

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. lupyuen (Ubuntu Xeon)
  4. nuttxpr (Ubuntu i5)
  5. nuttxmacos2 (macOS M2 Pro)
  6. nuttxmacos (blocked by GitHub sigh)
  7. nuttxlinux (blocked by GitHub sigh)

To Join Ubuntu Build Farm:

Please tell me your User ID for GitLab Snippets or GitHub Gist. 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
sudo apt install neofetch glab gh

## For GitLab Snippets:
sudo sh -c '. ../gitlab-token.sh && ./run-ci.sh 1'

## For GitHub Gists:
sudo sh -c '. ../github-token.sh && ./run-ci.sh 1'

## Change '1' to a Unique Instance ID. Each instance of this script should run under a different Instance ID.

## GitLab Token: User Settings > Access Tokens > Select Scopes
##   api: Grants complete read/write access to the API, including all groups and projects, the container registry, the dependency proxy, and the package registry.
## gitlab-token.sh contains:
##   export GITLAB_TOKEN=...
##   export GITLAB_USER=lupyuen
##   export GITLAB_REPO=nuttx-build-log
## Which means the GitLab Snippets will be created in the existing GitLab Repo "lupyuen/nuttx-build-log"

## GitHub Token: Should have Gist Permission
## github-token.sh contains:
##   export GITHUB_TOKEN=...

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 '. ../gitlab-token.sh && ./run-ci.sh 1'
sudo sh -c '. ../gitlab-token.sh && ./run-ci.sh 2'
sudo sh -c '. ../gitlab-token.sh && ./run-ci.sh 3'
sudo sh -c '. ../gitlab-token.sh && ./run-ci.sh 4'

To Join macOS Build Farm:

Please tell me your User ID for GitLab Snippets or GitHub Gists:

## 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 GitLab Token: User Settings > Access Tokens > Select Scopes
##   api: Grants complete read/write access to the API, including all groups and projects, the container registry, the dependency proxy, and the package registry.
## gitlab-token.sh contains:
##   export GITLAB_TOKEN=...
##   export GITLAB_USER=lupyuen
##   export GITLAB_REPO=nuttx-build-log
. $HOME/gitlab-token-macos.sh

## Or GitHub Token: Should have Gist Permission
## github-token.sh contains:
##   export GITHUB_TOKEN=...
. $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!

Releases

No releases published

Packages

No packages published

Languages