A complete Continuous Integration solution based in docker that can follow a Directed Acyclic Graph of containers to allow for complex multi-stage builds. Has support for github to automatically run build after push and send results back to show test status (See a build of this project). Also supports manual builds from any git repository.
List of built docker containers
Main container that hosts the web app and communicates with the docker daemon to run containers and facilitate the build process
Handles authentication for a docker registry to allow containers to access the correct images that are owned by the same organization as the running container. Also allowes users to access images uploaded from containers
Proxies requests to direct them to the correct container to allow for preview deployments accessable from the web from domains such as https://aaaaaa.ci-proxy.lavallee.one
An SSH Certificate Authority with a simple web interface and easy-to-use command line tool
SSH_KEY
, JWT_PRIVATE
, JWT_PUBLIC
, DOMAIN
, and DATABASE_URL
yarn start
the servergo install github.com/sshca/sshca/sshca-client@latest
CertificateFile /tmp/sshca-key.pub
to ~/.ssh/config
sshca-client login
git clone https://github.com/sshca/sshca.git
SSH_KEY
, JWT_PRIVATE
, JWT_PUBLIC
, DOMAIN
, and DATABASE_URL
yarn
in server and web directories)yarn build
Note: NODE_ENV must be set!yarn start
yarn start
A modern Lemmy client for iOS attempting to emulate the ease of use and elegance of Apollo for Reddit.
Lemmios is currently in beta so expect many new features coming soon.
This is a NextJS app that will automatically generate a portfolio website from any users public github repositories
yarn install
to install dependancies.env
file containing PAT=GITHUB_TOKEN
replacing GITHUB_TOKEN with a github personal access tokenThis is a tool used to parse iCal files with swift
import iCalParser
let cal = try iCalParser.parseIcal(data: """
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:uid1@example.com
DTSTAMP:19970714T170000Z
ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
GEO:48.85299;2.36885
END:VEVENT
END:VCALENDAR
""")
// Prints "Bastille Day Party"
print(cal.events.first!.SUMMARY)
Javascript library for interacting with FTC robots
Add to your project: npm install robocol
Current Features:
import { Robot, RobotEvent } from "robocol";
const robot = new Robot();
robot.connect();
robot.on(RobotEvent.TELEMETRY, console.log);
import { GamepadMessage, Robot } from "robocol";
const allReleased = {
left_stick_x: 0,
left_stick_y: 0,
right_stick_x: 0,
right_stick_y: 0,
dpad_up: false,
dpad_down: false,
dpad_left: false,
dpad_right: false,
a: false,
b: false,
x: false,
y: false,
guide: false,
start: false,
back: false,
left_bumper: false,
right_bumper: false,
left_stick_button: false,
right_stick_button: false,
left_trigger: 0,
right_trigger: 0,
updatedAt: 0,
};
const aPressed = { ...allReleased, a: true };
const robot = new Robot();
robot.connect();
// Start pressing A every second after initial 0.5 second delay
setTimeout(() => {
setInterval(() => {
robot.send(new GamepadMessage(0, aPressed, 1));
}, 1000);
}, 500);
// Start releasing A every second in order to alternate
setInterval(() => {
robot.send(new GamepadMessage(0, allReleased, 1));
}, 1000);
import { CommandMessage, Robot, RobotCommand, RobotEvent } from "robocol";
const robot = new Robot();
robot.connect();
robot.on(RobotEvent.OPMODES_LIST, (list) => {
const firstName = list[0].name;
robot.send(
new CommandMessage(
RobotCommand.CMD_INIT_OP_MODE,
0,
false,
Date.now(),
firstName
)
);
setTimeout(() => {
robot.send(
new CommandMessage(
RobotCommand.CMD_RUN_OP_MODE,
0,
false,
Date.now(),
firstName
)
);
}, 500);
});
This is meant to be a project to help teams that have team members quanatined but still wish to be able to host driver practice remotely. It allows a driver to control the robot remotely, from another location.