Artificial-Engineering/lycheejs-buildbot

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

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

lychee.js Buildbot

brought to you as libre software with joy and pride by Artificial Engineering.

Support our libre Bot Cloud via BTC 1CamMuvrFU1QAMebPoDsL3JrioVDoxezY2.

Overview

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.

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.

Configuration

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 ...
Usage

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:

./bin/do-release.sh:

IMPORTANT: Build Setup

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.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.