Skip to content
3.x
Go to file
Code

Latest commit

* WIP continuous sync.

* Sleep between syncs.

* 500 millis between syncs.

* More progress on it

* Switch to crossbeam channels

* Add PullMode to config

* Handle warnings

* Fix clippy

* Add separate type for remote command result

* my god it finally compiles yooo

* Rename sync_ stuff to push and pull

* Run all tests in two pull modes

* Add docs

* Add tests with lots of big files, improve output

* Improve result types

* Remove RemoteCommandResult

* Simplify exit

* Remove sleep, fix wrong duration passed to calculate_perceived_pull_duration

* Replace while … with loop

* ls files in test/test_pulls_big_files.sh

* Update test after merge w/ upstream
8454660

Git stats

Files

Permalink
Failed to load latest commit information.

README.md

Mainframer

A tool that executes a command on a remote machine while syncing files back and forth. The process is known as remote execution (in general) and remote build (in particular cases).

Mainframer helps to move heavy operations (like compiling the source code) from a personal computer to a dedicated machine. This way you, as a developer, can use your machine for changing the source code or browsing the documentation without constant freezes and hearing jet engine-like sounds caused by the build process. The execution itself is not limited and can be applied to actions like encoding audio and video, batch processing and more.

It works via pushing files to the remote machine, executing the command there and pulling results to the local machine.

$ mainframer ./gradlew build
Sync local → remote machine...
:build
BUILD SUCCESSFUL
Sync remote → local machine...

$ java -jar build/libs/sample.jar
This program was built on a remote machine!

State of the Project

Documentation

Getting Started

Configuration

Integrations

Transfer Notice

In October 2018, Mainframer was transferred from github/gojuno to github/buildfoundation. It was a friendly agreement between Juno Inc. and Build Foundation after the core developer of the project @artem-zinnatullin left the company.

The motivation for the transfer is to have a neutral space for the future work on the project.

License

Copyright 2018 Mainframer Maintainers.

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.
You can’t perform that action at this time.