Skip to content

Non-npm Usage

If you're on some platform other than npm it doesn't make sense to download auto through npm. For these situations we package auto for all major operating systems (linux, osx, windows).

Installation

Simply download the appropriate version for your operating system and make it executable.

# Download a platform specific version of auto
curl -vkL -o - https://github.com/intuit/auto/releases/download/v10.28.0/auto-linux.gz | gunzip > ~/auto
# Make auto executable
chmod a+x ~/auto
# Download a platform specific version of auto
curl -vkL -o - https://github.com/intuit/auto/releases/download/v10.28.0/auto-linux.gz | gunzip > ~/auto
# Make auto executable
chmod a+x ~/auto

This executable contains all of the official auto plugins so you do not have to download anything extra. This version of auto uses the git-tag plugins as the default instead of npm. If you specify any plugins this will be overridden.

Installation via brew (OSX)

If you are on OSX you can install auto with brew.

brew tap intuit/auto https://github.com/intuit/auto
brew install auto
brew tap intuit/auto https://github.com/intuit/auto
brew install auto

Configuration

To configure auto to work with your project you will need to do two things

  1. Create and configure a GH_TOKEN environment variable
  2. Create an .autorc for your project

Making an .autorc

Using auto with any other package manager than npm requires that you create an .autorc at the root of your project.

  1. .autorc - No plugins, shipit doesn't work. Enables advanced setup

    {
      "author": "Andrew Lisowski <lisowski54@gmail.com>",
      "plugins": []
    }
    {
      "author": "Andrew Lisowski <lisowski54@gmail.com>",
      "plugins": []
    }
    
  2. .autorc - git-tag plugin compatible with any platform. Enables shipit usage

    {
      "author": "Andrew Lisowski <lisowski54@gmail.com>",
      "plugins": ["git-tag"]
    }
    {
      "author": "Andrew Lisowski <lisowski54@gmail.com>",
      "plugins": ["git-tag"]
    }
    
  3. .autorc - With package manager plugin. shipit works, some configuration picked up from package manager package definition files. In the following repo, owner, and author are picked up from the pom.xml

    {
      "plugins": ["maven"]
    }
    {
      "plugins": ["maven"]
    }
    

Usage

Now that you have auto all set up you can use all of it's commands!

~/auto shipit
~/auto shipit

ℹ️ Tip: Using auto locally with an .env file is a great experience. See how here.

Plugins

As stated above, all of the official plugins (the ones included in this repo/docs) are included in the binary version of auto. However you might want to use an unofficial plugin or even write your own.

Local Plugins

One way to use unofficial plugins in a non-javascript project is to have a directory committed to your project where you store them.

You could:

  • Write your own custom plugins and store them in here
  • Copy a plugin from the internet

.autorc:

{
  "plugins": ["./plugins/custom-plugin.js"]
}
{
  "plugins": ["./plugins/custom-plugin.js"]
}

Hosted Plugins

If you want to share your custom plugins between projects then you can host them on some SCM (ex: GitHub). A plugin just needs to consist of an index.js that implements your plugin. (or it could be as complex as any NPM package)

Edit your CI build to download these plugins when building.

mkdir plugins
git clone https://github.com/me/custom-plugin plugins/custom-plugin
mkdir plugins
git clone https://github.com/me/custom-plugin plugins/custom-plugin

.autorc:

{
  "plugins": ["./plugins/custom-plugin"]
}
{
  "plugins": ["./plugins/custom-plugin"]
}

NPM Plugins

If distributed via NPM you could install those plugins globally through npm:

npm i -g auto-plugin-my-custom-plugin
npm i -g auto-plugin-my-custom-plugin

.autorc:

{
  "plugins": ["my-custom-plugin"]
}
{
  "plugins": ["my-custom-plugin"]
}