Sha256: b2cbf532a5a22e7bdc96c8f52fdc1ac14bbf6eafd8a2a1eb1dc412be91bc4510

Contents?: true

Size: 1.29 KB

Versions: 33

Compression:

Stored size: 1.29 KB

Contents

require 'thor'
require 'gitx'
require 'gitx/cli/base_command'

module Gitx
  module Cli
    class BuildtagCommand < BaseCommand
      desc 'buildtag', 'create a tag for the current build and push it back to origin (supports Travis CI and Codeship)'
      def buildtag
        fail 'Unknown branch. Environment variables TRAVIS_BRANCH or CI_BRANCH are required' unless branch_name
        fail "Branch must be one of the supported taggable branches: #{config.taggable_branches}" unless config.taggable_branch?(branch_name)

        label = "buildtag generated by build #{build_number}"
        create_build_tag(branch_name, label)
      end

      private

      # pull the current branch name from environment variables
      # supports Travis CI or Codeship variables
      # see https://www.codeship.io/documentation/continuous-integration/set-environment-variables/
      def branch_name
        ENV['TRAVIS_BRANCH'] || ENV['CI_BRANCH']
      end

      def build_number
        ENV['TRAVIS_BUILD_NUMBER'] || ENV['CI_BUILD_NUMBER']
      end

      def create_build_tag(branch, label)
        timestamp = Time.now.utc.strftime '%Y-%m-%d-%H-%M-%S'
        git_tag = "build-#{branch}-#{timestamp}"
        run_cmd "git tag #{git_tag} -a -m '#{label}'"
        run_cmd "git push origin #{git_tag}"
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
gitx-2.19.0.ci.114.1 lib/gitx/cli/buildtag_command.rb
gitx-2.19.0.ci.112.1 lib/gitx/cli/buildtag_command.rb
gitx-2.19.0 lib/gitx/cli/buildtag_command.rb
gitx-2.18.0.ci.106.1 lib/gitx/cli/buildtag_command.rb
gitx-2.18.0 lib/gitx/cli/buildtag_command.rb
gitx-2.18.0.pre.ci.104.1 lib/gitx/cli/buildtag_command.rb
gitx-2.18.0.pre lib/gitx/cli/buildtag_command.rb
gitx-2.17.0.pre.ci.101.1 lib/gitx/cli/buildtag_command.rb
gitx-2.17.0.pre lib/gitx/cli/buildtag_command.rb
gitx-2.17.0.pre.ci.98.1 lib/gitx/cli/buildtag_command.rb
gitx-2.16.0.ci.91.1 lib/gitx/cli/buildtag_command.rb
gitx-2.16.0 lib/gitx/cli/buildtag_command.rb
gitx-2.16.0.ci.89.1 lib/gitx/cli/buildtag_command.rb
gitx-2.16.0.pre.ci.88.1 lib/gitx/cli/buildtag_command.rb
gitx-2.16.0.pre.ci.85.1 lib/gitx/cli/buildtag_command.rb
gitx-2.16.0.pre lib/gitx/cli/buildtag_command.rb
gitx-2.16.0.pre.ci.81.1 lib/gitx/cli/buildtag_command.rb
gitx-2.15.0 lib/gitx/cli/buildtag_command.rb
gitx-2.15.0.ci.75.1 lib/gitx/cli/buildtag_command.rb
gitx-2.14.2.ci.70.1 lib/gitx/cli/buildtag_command.rb