Queues for fastlane - with web interface 😱

Primary LanguageRubyMIT LicenseMIT

fastlane-plugin-queue ContributorsSepOctNovDecJanFebMarAprMayJunJulAugSepSunTueThuSat


fastlane Plugin Badge

About fastlane-plugin-queue

Easily queue up fastlane jobs using Resque.

Current Features

  • Queue any of your lanes into a resque queue
  • Manage queue using resque's web interface
    • View queued, running, and failed jobs
    • Retry failed jobs
  • Custom web interface for starting fastlane jobs

Planned Features

  • Configure any resque settings
    • Ex: port, redis connection settings, plugins
  • Allow different dotenv settings per job

Screenshot - Overview Screenshot - Overview

Getting Started

This project is a fastlane plugin. To get started with fastlane-plugin-queue, add it to your project by running:

fastlane add_plugin queue

This plugin also require Redis. Install using brew install redis or instructions here

Step 0 - Start Redis server

Make sure you Redis server is running. This is usually done by running redis-server (but this may be different based on how Redis was installed).

Step 1 - Start queue

Start the queue web server and worker by running the following command. This will be a blocking command so you will need to open to open a second terminal window/tab to add your fastlane jobs to the queue. To kill the web server and worker, you will need to hit CONTROL + C.

fastlane run start_queue

Step 2 - Add to queue

The easiest way to add a job to a queue is to run the queue action direction using the following command. The run parameter will run anything you would put after the "fastlane" command you would usually run. Below are some examples:

fastlane run queue run:"ios deploy"
fastlane run queue run:"android deploy"
fastlane run queue run:"build"
fastlane run queue run:"ios beta group:staging"


It is possible add fastlane jobs to your queue by using standard fastlane syntax by adding queue:true (see below)

fastlane ios beta queue:true

To do this, add the following setup in your Fastfile...

before_all do |lane, options|
  if options[:queue]
      platform: Actions.lane_context[Actions::SharedValues::PLATFORM_NAME],
      lane: lane.to_s,
      lane_parameters: options
    UI.abort_with_message! "We queued this so not running"

This will abort the fastlane process before any of the lanes can get called but will add a job to the queue platform, lane, and parameters that you specified in your command.

Example Resque Screenshots

Resque Screen Screenshot
Overview Screenshot - Overview
Pending Screenshot - Pending
Failed Screenshot - Failed


Check out the example Fastfile to see how to use this plugin. Try it by cloning the repo, running fastlane install_plugins and bundle exec fastlane test.

Run tests for this plugin

To run both the tests, and code style validation, run


To automatically fix many of the styling issues, use

rubocop -a

Issues and Feedback

For any other issues and feedback about this plugin, please submit it to this repository.


If you have trouble using plugins, check out the Plugins Troubleshooting guide.

Using fastlane Plugins

For more information about how the fastlane plugin system works, check out the Plugins documentation.

About fastlane

fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out fastlane.tools.