Skip to content

ShilpeshCoder/deployment_task

Repository files navigation

DeploymentTask

A Rails engine for defining and executing one-time deployment tasks with AASM state tracking, idempotency, advisory locking, and CI/CD integration.

Installation

Add this line to your application's Gemfile:

gem "deployment_task"

Then execute:

bundle install

Install the initializer and migrations:

rails generate deployment_task:install
rails deployment_task:install:migrations
rails db:migrate

Configuration

Create or edit config/initializers/deployment_task.rb:

DeploymentTask.configure do |config|
  # Directory where deployment task files are stored
  config.task_directory = "lib/deployment_task/tasks"

  # Error reporter — any object responding to call(error, context)
  # config.error_reporter = ->(error, context) { Bugsnag.notify(error) }

  # Logger — any Logger-compatible object
  # config.logger = Rails.logger

  # ActiveRecord base class for DeploymentTask::Record
  # config.record_base_class = "ApplicationRecord"

  # Advisory lock strategy: :database (auto-detect) or :none
  # config.lock_adapter = :database
end

Usage

Generating a Task

rails generate deployment_task my_task --phase=pre_deploy

This creates a task file in your configured task directory:

class MyTask < DeploymentTask::Base
  version "20250101120000"
  phase :pre_deploy
  description "Describe what this task does"

  def execute
    # Implement task logic here
  end
end

Running Tasks

# Run pre-deploy tasks
bundle exec rake deploy:pre

# Run post-deploy tasks
bundle exec rake deploy:post

# Dry run (preview without executing)
DRY_RUN=true bundle exec rake deploy:pre

# Check task status
bundle exec rake deploy:status

# Retry failed tasks
PHASE=pre_deploy bundle exec rake deploy:retry_failed

Requirements

  • Ruby >= 2.7.0
  • Rails >= 6.0
  • AASM >= 5.0

License

The gem is available as open source under the terms of the MIT License.

About

Pre and Post release task execution gem for Ruby on rails applications

Resources

License

Stars

Watchers

Forks

Packages