1

如何使用 Fastlane 向 Mattermost 写消息?

下面是我的试用。我从这个链接中得到了最多。

还有什么问题?(当然,我用MATTERMOST_WEBHOOK_URL我在 Mattermost 中建立的实际值替换了 )。

在上面的链接中,我看到了一个包含文件的文件actionsmattermost.rb

我如何让这个动作起作用?我需要在我的 Fastfile 中或任何地方做什么才能使其正常工作?

事实上,跑fastlane send_message线,我获得了成功。但不幸的是,在我的 Mattermost 频道中什么都看不到。

在我的 Fastfile 中,我这样做:

    def send_message_to_mattermost(options)
      unless ENV['MATTERMOST_WEBHOOK_URL'].nil? || ENV['MATTERMOST_WEBHOOK_URL'].empty?
        mattermost(
            pretext: options[:pretext],
            message: options[:msg],
            default_payloads: options[:default_payloads],
            username: 'Fastlane',
            icon_url: 'https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane.png',
            payload: {},
            attachment_properties: {
                title: options[:title],
                thumb_url: options[:thumb_url],
                fields: [{
                     title: 'Version',
                     value: options[:version_number],
                     short: true
                 },
                 {
                     title: 'Build Number',
                     value: options[:build_number],
                     short: true
                 },
                 {
                     title: 'Built by',
                     value: 'Jenkins',
                     short: true
                 }]
            },
            success: options[:success]
        )
      end
    end

我的快车道是这样的:

lane :send_message do
    send_message_to_mattermost({
      :version_number => ENV['VERSION_NUMBER'],
      :build_number => ENV["BUILD_NUMBER"],
      :pretext => ENV['MAIN_APP_IDENTIFIER'],
      :title => 'Unsuccessful Build',
      :thumb_url => 'https://support.apple.com/library/content/dam/edam/applecare/images/en_US/iOS/move-to-ios-icon.png',
      :msg => "My message...",
      :default_payloads => [:lane],
      :success => true
   })
end

mattermost(...)Fastlane 中的标准命令吗?如果不是,我需要做什么才能从 Fastlane 向 Mattermost 频道发送信息?

4

1 回答 1

3

我终于找到了解决方案。

缺少的是预先设置 ENV["MATTERMOST_WEBHOOK_URL"]

before_all do
    ENV["MATTERMOST_WEBHOOK_URL"] = 'https://my_new_webooh_from_mattermost'
end

...并保持以下代码不变(即不要用其他任何东西替换 'MATTERMOST_WEBHOOK_URL' -before_all就行了......)

    def send_message_to_mattermost(options)
      unless ENV['MATTERMOST_WEBHOOK_URL'].nil? || ENV['MATTERMOST_WEBHOOK_URL'].empty?
        mattermost(
            pretext: options[:pretext],
            message: options[:msg],
            default_payloads: options[:default_payloads],
            username: 'Fastlane',
            icon_url: 'https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane.png',
            payload: {},
            attachment_properties: {
                title: options[:title],
                thumb_url: options[:thumb_url],
                fields: [{
                     title: 'Version',
                     value: options[:version_number],
                     short: true
                 },
                 {
                     title: 'Build Number',
                     value: options[:build_number],
                     short: true
                 },
                 {
                     title: 'Built by',
                     value: 'Jenkins',
                     short: true
                 }]
            },
            success: options[:success]
        )
      end
    end
于 2019-08-12T20:39:56.550 回答