Name: lycheejs-buildbot
Owner: Artificial Engineering
Description: :construction: The lychee.js Buildbot - Experimental buildbot running on Debian for @humansneednotapply
Created: 2017-03-24 10:08:51.0
Updated: 2017-06-20 16:45:01.0
Pushed: 2017-12-21 14:23:00.0
Homepage: https://lychee.js.org
Size: 8
Language: Shell
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
brought to you as libre software with joy and pride by Artificial Engineering.
Support our libre Bot Cloud via BTC 1CamMuvrFU1QAMebPoDsL3JrioVDoxezY2.
This repository is a project made with lychee.js.
It is used to automatically build and deploy all lychee.js Projects to GitHub and can be seen as the underlying Continous Integration infrastructure.
As most hosting providers still offer no Arch Linux as their operating system, this repository is made for a Debian (Jessie or Testing) setup.
bin/do-install.sh
installs all necessary dependencies.bin/do-release.sh
creates a new lychee.js release and publishes them to GitHub.Please use both bash scripts with the root
user on the build machine, as both
scripts use no sudo
or wheel
group dependency to function.
After executing ./bin/do-install.sh
it is necessary to configure the tokens
and authentications.
1. Authenticate GitHub API
Authenticate the build toolchain with the @humansneednotapply account.
eate folder if it doesn't exist
r -p /opt/lycheejs/.github;
ken for username @humansneednotapply
"YOUR-GITHUB-TOKEN" > /opt/lycheejs/.github/TOKEN;
2. Authenticate GitHub
If there's no SSH key pair, generate a new one. Setup git so that it uses the same user details as the @humansneednotapply account.
"" | ssh-keygen -q -N "" -t rsa -b 8192 -C "robot [ insert an at here ] artificial.engineering";
d this SSH key to @humansneednotapply's GitHub account
~/.ssh/id_rsa.pub;
config --global user.name "Robot";
config --global user.email "robot [ insert an at here ] artificial.engineering";
Follow these instructions afterwards.
3. Authenticate NPM
Authenticate npm
with the ~artificial-engineering
account.
whoami; # has to be artificial-engineering
login;
ter username artificial-engineering
ter email robot [ insert an at here ] artificial.engineering
ter password ...
Follow all steps above and setup everything. Afterwards the build bot should be ready to simulate a release.
Important Note: Either of /tmp
or /mnt
requires at least 6GB
memory space available.
clone https://github.com/Artificial-Engineering/lycheejs-buildbot.git /opt/lycheejs-buildbot;
opt/lycheejs-buildbot;
n/do-install.sh;
llow Configuration Steps now
n/do-release.sh --simulation;
It is recommended to execute the do-release.sh
script at least one time,
to verify git
and ssh
are correctly working (and no yes/no dialogs for
SSH keys block a potential clone).
The RELEASE_FOLDER
environment variable is there to force the build path.
The build workflow of all subprojects assumes that they use a -
(dash) in
between to sandbox lychee.js installations.
For example, setting export RELEASE_FOLDER="/tmp/lycheejs"
leads to the
bundles being built in /tmp/lycheejs-bundles
.
However, it is recommended to NOT set the RELEASE_FOLDER
, so that the
path will be automatically selected whether on enough memory is available
(/tmp/lycheejs
) or enough disk space is available (/mnt/lycheejs
).
This is the recommended usage for production:
p ./bin/do-release.sh --simulation > ./build.log 2>&1 &;
However, some VPS allow to remount /tmp
to give it more space. Though
this did not work in our build environments:
t -o remount,size=6G,noatime /tmp;
Parameters and Flags
./bin/do-install.sh
:
-y
or --yes
will skip all dialogs and assume yes for all questions../bin/do-release.sh
:
-y
or --yes
will skip all dialogs and assume yes for all questions.-s
or --simulation
will skip all dialogs and the publish
phase for all projects.The build server setup requires a Debian Jessie, Debian Testing or
Ubuntu (no-LTS!) machine with at least 6GB of memory space in /tmp
.
If there's not enough memory space available in /tmp
, the script
will automatically set the RELEASE_FOLDER
to /mnt/lycheejs
.