Tool for remote builds. Sync project to remote machine, execute command, sync back.
Shell Rust
Clone or download

README.md

Mainframer

Tool that allows you to move build process from a local machine to a remote one.

Remote machine ought to be much faster than a laptop. With mainframer you can free up your local machine for better things — like editing source code in your IDE without lags and freezes, being able to actually use your computer when the build is happening.

Table of contents

State of Project Development

Version 3.x is in active development, the stable version is 2.x and recommended for production use.

You can view 2.x version sources and docs using this Git tag.

There are lots of changes between 2.x and 3.x, but key subset is the following:

  • Mainframer will work as system-wide CLI tool #185
  • Mainframer is now written in Rust #191
  • Mainframer will speed up most of existing workflows by syncing during remote command execution #188

You can track 3.x development progress using the 3.0.0 milestone.

Supported Workflows

mainframer supports basically anything you can execute as a command. It will sync files to remote machine, execute a command and sync files back.

We have quite a bunch of samples showing off some practical applications.

Setup

Demo

asciicast demo

3rd-party IntelliJ Mainframer Plugin

Guys from @elpassion maintain IntelliJ Plugin for Mainframer that makes integration of Mainframer with any IntelliJ project better.

We highly recommend the plugin if you use IntelliJ with Mainframer!

How to Run Tests (for contributors)

Dependencies: Bash, Docker.

$ ci/build.sh

License

Copyright 2017 Juno, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.