To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / lib / tasks / redmine.rake @ 1298:4f746d8966dd

History | View | Annotate | Download (3.83 KB)

1 1115:433d4f72a19b Chris
# Redmine - project management software
2 1295:622f24f53b42 Chris
# Copyright (C) 2006-2013  Jean-Philippe Lang
3 1115:433d4f72a19b Chris
#
4
# This program is free software; you can redistribute it and/or
5
# modify it under the terms of the GNU General Public License
6
# as published by the Free Software Foundation; either version 2
7
# of the License, or (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17
18
namespace :redmine do
19
  namespace :attachments do
20
    desc 'Removes uploaded files left unattached after one day.'
21
    task :prune => :environment do
22
      Attachment.prune
23
    end
24 1295:622f24f53b42 Chris
25
    desc 'Moves attachments stored at the root of the file directory (ie. created before Redmine 2.3) to their subdirectories'
26
    task :move_to_subdirectories => :environment do
27
      Attachment.move_from_root_to_target_directory
28
    end
29 1115:433d4f72a19b Chris
  end
30
31
  namespace :tokens do
32
    desc 'Removes expired tokens.'
33
    task :prune => :environment do
34
      Token.destroy_expired
35
    end
36
  end
37
38
  namespace :watchers do
39
    desc 'Removes watchers from what they can no longer view.'
40
    task :prune => :environment do
41
      Watcher.prune
42
    end
43
  end
44
45
  desc 'Fetch changesets from the repositories'
46
  task :fetch_changesets => :environment do
47
    Repository.fetch_changesets
48
  end
49
50
  desc 'Migrates and copies plugins assets.'
51
  task :plugins do
52
    Rake::Task["redmine:plugins:migrate"].invoke
53
    Rake::Task["redmine:plugins:assets"].invoke
54
  end
55
56
  namespace :plugins do
57
    desc 'Migrates installed plugins.'
58
    task :migrate => :environment do
59
      name = ENV['NAME']
60
      version = nil
61
      version_string = ENV['VERSION']
62
      if version_string
63
        if version_string =~ /^\d+$/
64
          version = version_string.to_i
65
          if name.nil?
66
            abort "The VERSION argument requires a plugin NAME."
67
          end
68
        else
69
          abort "Invalid VERSION #{version_string} given."
70
        end
71
      end
72
73
      begin
74
        Redmine::Plugin.migrate(name, version)
75
      rescue Redmine::PluginNotFound
76
        abort "Plugin #{name} was not found."
77
      end
78
79
      Rake::Task["db:schema:dump"].invoke
80
    end
81
82
    desc 'Copies plugins assets into the public directory.'
83
    task :assets => :environment do
84
      name = ENV['NAME']
85
86
      begin
87
        Redmine::Plugin.mirror_assets(name)
88
      rescue Redmine::PluginNotFound
89
        abort "Plugin #{name} was not found."
90
      end
91
    end
92
93
    desc 'Runs the plugins tests.'
94
    task :test do
95
      Rake::Task["redmine:plugins:test:units"].invoke
96
      Rake::Task["redmine:plugins:test:functionals"].invoke
97
      Rake::Task["redmine:plugins:test:integration"].invoke
98
    end
99
100
    namespace :test do
101
      desc 'Runs the plugins unit tests.'
102
      Rake::TestTask.new :units => "db:test:prepare" do |t|
103
        t.libs << "test"
104
        t.verbose = true
105
        t.pattern = "plugins/#{ENV['NAME'] || '*'}/test/unit/**/*_test.rb"
106
      end
107
108
      desc 'Runs the plugins functional tests.'
109
      Rake::TestTask.new :functionals => "db:test:prepare" do |t|
110
        t.libs << "test"
111
        t.verbose = true
112
        t.pattern = "plugins/#{ENV['NAME'] || '*'}/test/functional/**/*_test.rb"
113
      end
114
115
      desc 'Runs the plugins integration tests.'
116
      Rake::TestTask.new :integration => "db:test:prepare" do |t|
117
        t.libs << "test"
118
        t.verbose = true
119
        t.pattern = "plugins/#{ENV['NAME'] || '*'}/test/integration/**/*_test.rb"
120
      end
121
    end
122
  end
123
end
124
125
# Load plugins' rake tasks
126
Dir[File.join(Rails.root, "plugins/*/lib/tasks/**/*.rake")].sort.each { |ext| load ext }