rakelib/workflow.rake
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 24 Sep 2018 20:55:06 +0100
changeset 258 65caf0201157
parent 241 481556cfa16d
child 311 71d918531d37
permissions -rw-r--r--
Fix missing `smalltalk.svg` and `smalltalkx.desktop` in toy archive ...which caused a warning when run on system without these already installed: cp: cannot stat './smalltalkx.svg': No such file or directory cp: cannot stat './smalltalkx.desktop': No such file or directory Thanks Pocho for reporting.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
# This file contains various tasks usefull for Smalltalk/X jv-branch 
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
# development. Currently it only supports working with Mercurial repositories,
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
# Honestly, there's not much one can do with CVS, we're using it only for
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
# packages that have not been converted to Mercurial. 
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
namespace :'workflow' do
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
  # A helper function to :push-upstream and push-staging tasks
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
     8
  def hg_repositories
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
     9
    project.packages_and_application.each do |pkg|
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    10
      unless pkg.nested_package?
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
        repo = Rake::Stx::Configuration::Repository::find(pkg.repository)
241
481556cfa16d Rakefiles: fixed tasks `workflow:*` to work on SWING CI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    12
        if repo != nil and repo.type == :'hg' and (File.exists?(BUILD_DIR / pkg.directory / '.hg' / 'hgrc'))
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    13
          hg = HG::Repository.new(BUILD_DIR / pkg.directory)
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    14
          yield pkg, hg
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
        end
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
      end
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    17
    end
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    18
  end
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    19
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    20
  def push(remote, user, pass, review_only, push_bookmark)
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    21
    has_changes = false
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    22
    hg_repositories do |pkg, hg|
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    23
      opts = {
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    24
          :user => user,
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    25
          :pass => pass,
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    26
      }
105
983a637074e6 CI: Revise pipelines, use "integration" pipeline by default
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
    27
      paths = hg.paths
116
2512c874e5e1 CI: Oops, fixed task `wofkflow:push-upstream` so it actually pushes commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    28
      remote_used = remote
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    29
      if remote_used == 'upstream'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    30
        remote_used = 'canonical' unless paths['upstream']
116
2512c874e5e1 CI: Oops, fixed task `wofkflow:push-upstream` so it actually pushes commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    31
      elsif remote_used == 'staging'
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    32
        unless paths['staging']
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    33
          puts ''
105
983a637074e6 CI: Revise pipelines, use "integration" pipeline by default
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
    34
          puts "!! repository #{hg.path} has not staging repository defined - skipping !!"
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    35
          puts ''
105
983a637074e6 CI: Revise pipelines, use "integration" pipeline by default
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
    36
          return
983a637074e6 CI: Revise pipelines, use "integration" pipeline by default
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
    37
        end
983a637074e6 CI: Revise pipelines, use "integration" pipeline by default
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
    38
      end
108
054919e32ff0 Various fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    39
054919e32ff0 Various fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    40
      # STC and librun are special - never push them automatically
054919e32ff0 Various fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    41
      # to upstream / canonical repo, must be done manually. This is 
054919e32ff0 Various fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    42
      # mainly beacuse there are on separate protected repositories 
054919e32ff0 Various fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    43
      # not accessible without a special setup. Sigh...
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    44
      if ((pkg.name == 'stx:stc') or (pkg.name == 'stx:librun')) and ((remote_used == 'upstream') or (remote_used == 'canonical'))
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    45
        if !review_only
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    46
          puts ''
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    47
          puts "== Skipping push of #{pkg.name} - you must push manually =="
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    48
          puts''
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    49
        end
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    50
      else
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    51
        if review_only
116
2512c874e5e1 CI: Oops, fixed task `wofkflow:push-upstream` so it actually pushes commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    52
          opts[:rev] = '.'
2512c874e5e1 CI: Oops, fixed task `wofkflow:push-upstream` so it actually pushes commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    53
          remote_url = hg.paths[remote_used] || remote_used
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    54
          bookmark = hg.bookmark
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    55
          hg.outgoing(remote_used, **opts) do | status, stdout |
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    56
            case status.exitstatus
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    57
            when 0          
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    58
              puts ''
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    59
              puts "== changes going to #{remote_url} =="
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    60
              STDOUT.print stdout
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    61
              puts "Will update bookmark '#{bookmark}" if push_bookmark and bookmark
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    62
              puts '===================================='
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    63
              has_changes = true
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    64
            when 1
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    65
              # nothing
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    66
            else        
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    67
              raise Exception.new("Failed to do 'outgoing' from #{remote} (exit code #{status.exitstatus})")
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    68
            end
116
2512c874e5e1 CI: Oops, fixed task `wofkflow:push-upstream` so it actually pushes commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    69
          end
2512c874e5e1 CI: Oops, fixed task `wofkflow:push-upstream` so it actually pushes commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    70
        else
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    71
          (push_bookmark && bookmark) ? (opts[:bookmarks] = ['.']) : (opts[:rev] = '.') # bookmark can be uninitialized
116
2512c874e5e1 CI: Oops, fixed task `wofkflow:push-upstream` so it actually pushes commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    72
          hg.push(remote_used, **opts)
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    73
          has_changes = true
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    74
        end
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    75
      end
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    end
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    77
    has_changes
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
  end
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    80
  desc 'Display changes to be pushed to upstream repositores (use it to review what workflow:push-upstream would do)'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    81
  task :'out-upstream', :user, :pass do |t, args|
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    82
    RakeFileUtils.verbose(false) do
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    83
      has_changes = push('upstream', args[:user], args[:pass], true, false)
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    84
      puts 'No changes to be pushed to upstream repositories' unless has_changes
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    85
      exit(has_changes ? 0 : 1 )
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    86
    end
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    87
  end
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    88
  task :'out-upstream' => :'setup'
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    89
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    90
  desc 'Push currently checked out revisions to upstream repositories (to be called after all tests pass on all configurations)'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    91
  task :'push-upstream', :user, :pass do |t, args|
88
112075e99cef Support for 'upstream' repositories refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 86
diff changeset
    92
    push('upstream', args[:user], args[:pass], false, false)
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
  end
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
  task :'push-upstream' => :'setup'
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    96
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    97
  desc 'Display changes to be pushed to staging repositores (use it to review what workflow:push-staging would do)'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    98
  task :'out-staging', :user, :pass do |t, args|
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    99
    RakeFileUtils.verbose(false) do
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   100
      has_changes = push('staging', args[:user], args[:pass], true, true)
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
   101
      puts 'No changes to be pushed to staging repositories' unless has_changes
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   102
      exit(has_changes ? 0 : 1 )
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   103
    end
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   104
  end
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   105
  task :'out-staging' => :'setup'
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   106
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   107
  desc 'Push currently checked out revisions to staging repositories (to be by developer to test her changes)'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   108
  task :'push-staging', :user, :pass do |t, args|
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   109
    push('staging', args[:user], args[:pass], false, true)
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
  end
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
  task :'push-staging' => :'setup'
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   112
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   113
  desc '(Auto)merge changes (from eXept)'
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   114
  task :'merge' => :'setup' do
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   115
    unless which("hg-automerge.rb")
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   116
      info "Cannot find 'hg-automerge.rb' in PATH"
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   117
      info 'You may find it at https://bitbucket.org/janvrany/jv-scripts'
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   118
      error "Cannot find 'hg-automerge.rb' in PATH"
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   119
    end
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   120
    hg_repositories_failed_to_merge = []
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   121
    hg_repositories do |pkg, hg|
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   122
      if File.exist? (hg.path / '.hgautomerge')
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   123
        info "Merging #{hg.path}"
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   124
        sh "hg-automerge.rb --cwd #{hg.path}"
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   125
      else
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   126
        info "Not merging #{hg.path} - no merge config found."
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   127
        info "To configure run: 'hg-automerge.rb --cwd #{hg.path} --config'"
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   128
      end
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   129
    end
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   130
  end
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   131
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
end