/
precompile_overrides.rake
46 lines (37 loc) · 1.38 KB
/
precompile_overrides.rake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
require 'fileutils'
namespace :assets do
task :precompile do
Rails.cache.clear
Rake::Task['assets:precompile'].invoke
Rake::Task['assets:upload_sourcemap'].invoke
end
desc 'Upload source map'
task upload_sourcemap: :environment do
Rails.logger.info 'uploading sourcemap'
TOKEN = ENV['ROLLBAR_ACCESS_TOKEN']
ASSET_HOST = ENV['CDN_ADDRESS']
conn = Faraday.new 'https://api.rollbar.com/api/1/sourcemap' do |faraday|
faraday.request :multipart
faraday.request :url_encoded
faraday.adapter Faraday.default_adapter
faraday.response :logger
end
Rails.configuration.js_resource.each do |item|
file = File.basename(item, '.js')
source_map = Dir.glob(Rails.root.join("public/assets/maps/#{file}*.js.map")).first
compressed_file = Dir.glob(Rails.root.join("public/assets/#{file}*.js")).first
response = conn.post do |req|
req.body = {
access_token: TOKEN,
version: CODE_VERSION,
source_map: Faraday::UploadIO.new(File.absolute_path(source_map), 'application/octet-stream'),
minified_url: "#{ASSET_HOST}/assets/#{File.basename(compressed_file)}"
}
end
Rails.logger.info response.body
end
FileUtils.rm_rf Rails.root.join("public/assets/maps")
FileUtils.rm_rf Rails.root.join("public/assets/sources")
Rails.logger.info 'upload complete'
end
end