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 @ 1297:0a574315af3e

History | View | Annotate | Download (3.6 KB)

1
# Redmine - project management software
2
# Copyright (C) 2006-2012  Jean-Philippe Lang
3
#
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
  end
25

    
26
  namespace :tokens do
27
    desc 'Removes expired tokens.'
28
    task :prune => :environment do
29
      Token.destroy_expired
30
    end
31
  end
32

    
33
  namespace :watchers do
34
    desc 'Removes watchers from what they can no longer view.'
35
    task :prune => :environment do
36
      Watcher.prune
37
    end
38
  end
39

    
40
  desc 'Fetch changesets from the repositories'
41
  task :fetch_changesets => :environment do
42
    Repository.fetch_changesets
43
  end
44

    
45
  desc 'Migrates and copies plugins assets.'
46
  task :plugins do
47
    Rake::Task["redmine:plugins:migrate"].invoke
48
    Rake::Task["redmine:plugins:assets"].invoke
49
  end
50

    
51
  namespace :plugins do
52
    desc 'Migrates installed plugins.'
53
    task :migrate => :environment do
54
      name = ENV['NAME']
55
      version = nil
56
      version_string = ENV['VERSION']
57
      if version_string
58
        if version_string =~ /^\d+$/
59
          version = version_string.to_i
60
          if name.nil?
61
            abort "The VERSION argument requires a plugin NAME."
62
          end
63
        else
64
          abort "Invalid VERSION #{version_string} given."
65
        end
66
      end
67

    
68
      begin
69
        Redmine::Plugin.migrate(name, version)
70
      rescue Redmine::PluginNotFound
71
        abort "Plugin #{name} was not found."
72
      end
73

    
74
      Rake::Task["db:schema:dump"].invoke
75
    end
76

    
77
    desc 'Copies plugins assets into the public directory.'
78
    task :assets => :environment do
79
      name = ENV['NAME']
80

    
81
      begin
82
        Redmine::Plugin.mirror_assets(name)
83
      rescue Redmine::PluginNotFound
84
        abort "Plugin #{name} was not found."
85
      end
86
    end
87

    
88
    desc 'Runs the plugins tests.'
89
    task :test do
90
      Rake::Task["redmine:plugins:test:units"].invoke
91
      Rake::Task["redmine:plugins:test:functionals"].invoke
92
      Rake::Task["redmine:plugins:test:integration"].invoke
93
    end
94

    
95
    namespace :test do
96
      desc 'Runs the plugins unit tests.'
97
      Rake::TestTask.new :units => "db:test:prepare" do |t|
98
        t.libs << "test"
99
        t.verbose = true
100
        t.pattern = "plugins/#{ENV['NAME'] || '*'}/test/unit/**/*_test.rb"
101
      end
102

    
103
      desc 'Runs the plugins functional tests.'
104
      Rake::TestTask.new :functionals => "db:test:prepare" do |t|
105
        t.libs << "test"
106
        t.verbose = true
107
        t.pattern = "plugins/#{ENV['NAME'] || '*'}/test/functional/**/*_test.rb"
108
      end
109

    
110
      desc 'Runs the plugins integration tests.'
111
      Rake::TestTask.new :integration => "db:test:prepare" do |t|
112
        t.libs << "test"
113
        t.verbose = true
114
        t.pattern = "plugins/#{ENV['NAME'] || '*'}/test/integration/**/*_test.rb"
115
      end
116
    end
117
  end
118
end
119

    
120
# Load plugins' rake tasks
121
Dir[File.join(Rails.root, "plugins/*/lib/tasks/**/*.rake")].sort.each { |ext| load ext }