我有一个托管在BitBucket上的git存储库,并在存储库和我的Jenkins服务器之间设置了SSH身份验证.我可以手动构建Jenkins,但无法在BitBucket上获取Jenkins服务来触发构建.
Jenkins configuration:
- Project Name: [my_jenkins_job]
- Build Triggers:
--Trigger Builds Remotely:
---Token: [token]
BitBucket configuration:
- Endpoint: http://[my_jenkins_address]/job/[my_jenkins_job]/build (I've also tried build?token=[token])
- Project Name: [my_jenkins_job]
- Module Name: [blank]
- Token: [token]
Run Code Online (Sandbox Code Playgroud)
访问http:// {my_jenkins_address}/ job/{my_jenkins_job}/ build?token ={token}正确启动构建.
为什么不将更改推送到BitBucket导致Jenkins启动构建?
这可能很愚蠢,但我要包含一个代表我项目所需模型的宝石.我想为to_custom_string其中一个模型添加一个方法Person.
我试图这样做(按照这个例子):
config/initializers/extensions/person.rb
其中包含的内容如下:
class Person < ActiveRecord::Base
def to_custom_string
address.street.to_s
end
end
Run Code Online (Sandbox Code Playgroud)
Persongem中的类具有has_one :address关联.
我遇到的问题是这个补丁似乎覆盖Person了gem中的类,而不是修补它.令人抓狂的是,这种覆盖行为只能通过rake来体验(Person来自gem 的类中声明的所有关联都会丢失).
我的佣金任务是这样的:
namespace :convert
task :all_persons => :environment do
Person.where(:param => value).includes(:address).find_in_batches(:batch_size => 2000) do |persons|
persons.each do |person|
puts person.to_custom_string
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
打电话bundle exec rake convert:all_persons给了我:
Association named 'address' was not found; perhaps you misspelled it?
Run Code Online (Sandbox Code Playgroud)
但是将rake任务中的代码复制并粘贴到rails控制台中工作正常.
我目前的解决方案是Person将gem中的代码复制到我的app/models目录中,并在to_custom_string那里使用我的方法,我知道这是错误的.
有人可以解释为什么a)irb保留了我的Person …