Read the articles...
-
"Optimising the Continuous Integration for Apache NuttX RTOS (GitHub Actions)"
-
"Continuous Integration Dashboard for Apache NuttX RTOS (Prometheus and Grafana)"
-
"(Experimental) Mastodon Server for Apache NuttX Continuous Integration (macOS Rancher Desktop)"
Highly Esteemed Members of our NuttX Build Farm:
- jerpelea (Ubuntu)
- lvanasse (Ubuntu)
- lupyuen (Ubuntu Xeon)
- nuttxpr (Ubuntu i5)
- nuttxmacos2 (macOS M2 Pro)
- nuttxmacos (blocked by GitHub sigh)
- 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
Warning: This will max out all 12 CPU Cores of Mac Mini M2 Pro. Running at a boiling hot 100 deg C!