Getting Started

Mint is a hosted CI service. To use it, you'll need to create an RWX Cloud account.

With Mint, you can run tasks without having to push to a git repository. The easiest way to get started is by using the CLI to initiate runs locally.

Installing the CLI

MacOS

brew install rwx-research/tap/mint

Linux

Download the latest release on GitHub for your platform and architecture. Move the binary into a directory on your PATH and make it executable.

Login to use the CLI

You'll need to login to use the CLI. Run mint login and it will facilitate the authentication process.

Personal access tokens are associated to specific organizations, so you'll also need to create an organization or be a member of one.

To confirm that your CLI is authenticated, run mint whoami

Hello World

Define the following hello world task in a tasks.yml file.

tasks:
  - key: hello-world
    run: echo hello world

Every task needs a key that can be used to reference that task. You'll learn more about use soon, but it allows you to use the result of tasks in subsequent tasks. Finally, run specifies the command to execute. By default, mint passes the run command into bash.

Running

Use the mint CLI to run your hello world task.

mint run --file tasks.yml

The CLI will print a URL where you can view the run results.

Run is watchable at https://cloud.rwx.com/mint/rwx/runs/421186a8-9f5b-4f37-9d9f-e7d712ad17b2

If you want to automatically open your browser when starting a run, use the --open option.

mint run --file tasks.yml --open

Cache Hits

Run your task again. It'll be a cache hit! Because you're running the same command, Mint will produce a cache hit rather than re-executing the task.

More Tasks

You can define tasks which use the filesystem output from previous tasks.

tasks:
  - key: write-file
    run: echo hello world | tee hello.txt
  - key: read-file
    use: [write-file]
    run: cat hello.txt

Diamond Dependencies

You can even merge multiple tasks together. Here, write-file-1 and write-file-2 will be run in parallel, and then read-files will run after both of them are finished.

tasks:
  - key: write-file-1
    run: echo file one contents | tee file1.txt
  - key: write-file-2
    run: echo file two contents | tee file2.txt
  - key: read-files
    use: [write-file-1, write-file-2]
    run: cat file1.txt file2.txt

Learn More

To configure Mint to run on GitHub push or pull request events, see the Getting Started with GitHub guide.