fastlane / fastlane

πŸš€ The easiest way to automate building and releasing your iOS and Android apps

Home Page:https://fastlane.tools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot send slack notification on self-hosted machine

developmentAtGain opened this issue Β· comments

New Issue Checklist

Issue Description

I am using GitHub Action on my Mac-mini & I cannot send slack notifications. On Slack side, It cannot find keys(ex:"Build Date").

Lane

platform :ios do
  desc "Send Slack notification"
  lane :build_slack_notification do |options|
    commit = last_git_commit
author = commit[:author]
author_email = commit[:author_email]
short_hash = commit[:abbreviated_commit_hash]

def root_path
  Dir.pwd.sub(/.*\Kfastlane/, '').sub(/.*\Kandroid/, '').sub(/.*\Kios/, '').sub(/.*\K\/\//, '')
end

slack(
  message: options[:message],
  success: options[:status],
  payload: {
    "Build Date" => Time.new.to_s,
    "Built by" => 'Firebase App Distribution',
    "Release Notes" => '',
    "Commit" => ''
  },
  default_payloads: [:git_branch, :git_author],
  slack_url: 'https://hooks.slack.com/workflows/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'
  # attachment_properties: {
  #   fields: [
  #     {
  #       title: "Build Date",
  #       value: Time.new.to_s
  #     },
  #     {
  #       title: "Built by",
  #       value: 'Firebase App Distribution'
  #     },
  #     {
  #       title: "Release Notes",
  #       value: "#{root_path}/release_notes.txt"
  #     },
  #     {
  #       title: "Commit",
  #       value: "#{author} #{author_email} #{short_hash}"
  #     }
  #   ]
  # },
)

end
end

Command executed

fastlane build_slack_notification status:true message:"iOS successfully released"

Complete output when running fastlane, including the stack trace and command used
astlane build_slack_notification status:true message:"iOS successfully released" [βœ”] πŸš€ [15:19:47]: fastlane detected a Gemfile in the current directory [15:19:47]: However, it seems like you didn't use `bundle exec` [15:19:47]: To launch fastlane faster, please use [15:19:47]: [15:19:47]: $ bundle exec fastlane build_slack_notification status:true message:iOS successfully released [15:19:47]: [15:19:47]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile +-------------------------------------------+---------+------------------------------------------------------------------------+ | Used plugins | +-------------------------------------------+---------+------------------------------------------------------------------------+ | Plugin | Version | Action | +-------------------------------------------+---------+------------------------------------------------------------------------+ | fastlane-plugin-firebase_app_distribution | 0.3.4 | firebase_app_distribution, firebase_app_distribution_add_testers, | | | | firebase_app_distribution_get_latest_release, | | | | firebase_app_distribution_get_udids, firebase_app_distribution_login, | | | | firebase_app_distribution_remove_testers | +-------------------------------------------+---------+------------------------------------------------------------------------+

15:19:47: --- Step: default_platform ---
15:19:47: ------------------------------
15:19:47: Driving the lane 'ios build_slack_notification' πŸš€
15:19:47: -----------------------------
15:19:47: --- Step: last_git_commit ---
15:19:47: -----------------------------
15:19:47: -------------------
15:19:47: --- Step: slack ---
15:19:47: -------------------
[15:19:48]: Exception: the server responded with status 400
+------------------+------------------------------+
| Lane Context |
+------------------+------------------------------+
| DEFAULT_PLATFORM | ios |
| PLATFORM_NAME | ios |
| LANE_NAME | ios build_slack_notification |
+------------------+------------------------------+
[15:19:48]: Error pushing Slack message, maybe the integration has no permission to post on this channel? Try removing the channel parameter in your Fastfile, this is usually caused by a misspelled or changed group/channel name or an expired SLACK_URL

+------+------------------+-------------+
| fastlane summary |
+------+------------------+-------------+
| Step | Action | Time (in s) |
+------+------------------+-------------+
| 1 | default_platform | 0 |
| 2 | last_git_commit | 0 |
| πŸ’₯ | slack | 0 |
+------+------------------+-------------+

[15:19:48]: fastlane finished with errors

[!] Error pushing Slack message, maybe the integration has no permission to post on this channel? Try removing the channel parameter in your Fastfile, this is usually caused by a misspelled or changed group/channel name or an expired SLACK_URL

Environment

[βœ”] πŸš€
[16:21:11]: fastlane detected a Gemfile in the current directory
[16:21:11]: However, it seems like you didn't use bundle exec
[16:21:11]: To launch fastlane faster, please use
[16:21:11]:
[16:21:11]: $ bundle exec fastlane env
[16:21:11]:
[16:21:11]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[16:21:12]: Generating fastlane environment output, this might take a few seconds...
swift-driver version: 1.45.2

βœ… fastlane environment βœ…

Stack

Key Value
OS 12.4
Ruby 3.1.2
Bundler? false
Git git version 2.32.1 (Apple Git-133)
Installation Source /opt/homebrew/Cellar/fastlane/2.206.2/libexec/bin/fastlane
Host macOS 12.4 (21F79)
Ruby Lib Dir /opt/homebrew/Cellar/ruby/3.1.2/lib
OpenSSL Version OpenSSL 1.1.1n 15 Mar 2022
Is contained false
Is homebrew true
Is installed via Fabric.app false
Xcode Path /Applications/Xcode.app/Contents/Developer/
Xcode Version 13.4.1
Swift Version 5.6.1

System Locale

Variable Value
LANG en_US.UTF-8 βœ…
LC_ALL
LANGUAGE

fastlane files:

`./fastlane/Fastfile`
default_platform(:ios)

platform :ios do
  desc "Send Slack notification"
  lane :build_slack_notification do |options|
    commit = last_git_commit
    
    author = commit[:author]
    author_email = commit[:author_email]
    short_hash = commit[:abbreviated_commit_hash]

    def root_path
      Dir.pwd.sub(/.*\Kfastlane/, '').sub(/.*\Kandroid/, '').sub(/.*\Kios/, '').sub(/.*\K\/\//, '')
    end

    slack(
      message: options[:message],
      success: options[:status],
      payload: {
        "Build Date" => Time.new.to_s,
        "Built by" => 'Firebase App Distribution',
        "Release Notes" => '',
        "Commit" => ''
      },
      default_payloads: [:git_branch, :git_author],
      slack_url: 'https://hooks.slack.com/workflows/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'
      # attachment_properties: {
      #   fields: [
      #     {
      #       title: "Build Date",
      #       value: Time.new.to_s
      #     },
      #     {
      #       title: "Built by",
      #       value: 'Firebase App Distribution'
      #     },
      #     {
      #       title: "Release Notes",
      #       value: "#{root_path}/release_notes.txt"
      #     },
      #     {
      #       title: "Commit",
      #       value: "#{author} #{author_email} #{short_hash}"
      #     }
      #   ]
      # },
    )
  end

  desc "Build app with release configuration"
  lane :build_flutter_ios_app do
    # Change working directory to root folder to run scripts
    Dir.chdir("../../") do
      sh(step_name: "Run build runner for iOS", command: "./scripts/build_runner.sh")
      sh(step_name: "Build iOS app", command: "./scripts/build_ios.sh")
    end
  end

  desc "Submit a new build to Firebase App Distrubtion"
  lane :deploy_firebase do
    def root_path
      Dir.pwd.sub(/.*\Kfastlane/, '').sub(/.*\Kandroid/, '').sub(/.*\Kios/, '').sub(/.*\K\/\//, '')
    end

    firebase_app_distribution(
      app: "1:454355656294:ios:d2ecf52be1f2d679ba17a7",
      groups: "internal-testers",
      ipa_path: "#{root_path}/ios/Gain.ipa",
      service_credentials_file: "#{root_path}/microgain-google-service.json",
      release_notes_file: "#{root_path}/release_notes.txt"
    )
  end

  desc "Deploy iOS app to Firebase App Distribution"
  lane :deploy_to_app_distribution do
    begin
      delete_keychain(
        name: "fastlane_tmp_keychain"
      ) if File.exist? File.expand_path("~/Library/Keychains/fastlane_tmp_keychain-db")
      
      # setup_ci if ENV['CI']
      
      api_key=app_store_connect_api_key(
        key_id: ENV['APPLE_KEY_ID'],
        issuer_id: ENV['APPLE_ISSUER_ID'],
        key_filepath: '~/Documents/AuthKey_62H7K2A26Y.p8',
        duration: 1200,
        in_house: false
      )

      match(
        type: 'appstore',
        git_basic_authorization: ENV['GIT_PERSONAL_TOKEN'],
        readonly: true,
      )

      build_flutter_ios_app()

      update_code_signing_settings(
        use_automatic_signing: false,
        path: "./Runner.xcodeproj"
      )

      build_ios_app(
        scheme: ENV['PROJECT_BUILD_SCHEME'],
      )

      update_code_signing_settings(
        use_automatic_signing: true,
        path: "./Runner.xcodeproj"
      )
      
      deploy_firebase()
    rescue => error
      build_slack_notification(message: error, status: false)
      UI.important('Delivery failed!')
    end
  end

  desc "Deploy iOS app to TestFlight"
  lane :deploy_to_testflight do
    delete_keychain(
      name: "fastlane_tmp_keychain"
    ) if File.exist? File.expand_path("~/Library/Keychains/fastlane_tmp_keychain-db")
    
    # setup_ci if ENV['CI']
    
    api_key=app_store_connect_api_key(
      key_id: ENV['APPLE_KEY_ID'],
      issuer_id: ENV['APPLE_ISSUER_ID'],
      key_filepath: '~/Documents/AuthKey_62H7K2A26Y.p8',
      duration: 1200,
      in_house: false
    )

    match(
      type: 'appstore',
      git_basic_authorization: ENV['GIT_PERSONAL_TOKEN'],
      readonly: true,
    )

    build_flutter_ios_app()

    update_code_signing_settings(
      use_automatic_signing: false,
      path: "./Runner.xcodeproj"
    )

    build_ios_app(
      scheme: ENV['PROJECT_BUILD_SCHEME'],
    )

    update_code_signing_settings(
      use_automatic_signing: true,
      path: "./Runner.xcodeproj"
    )
    
    upload_to_testflight(
      api_key: api_key,
      # username: ENV['APPLE_TESTFLIGHT_USER'],
      skip_waiting_for_build_processing: true,
      skip_submission: true,
    )
  end
end
`./fastlane/Appfile`
app_identifier("com.trgain.mikrogain")

apple_id("development@gain.com.tr")

fastlane gems

Gem Version Update-Status
fastlane 2.206.2 βœ… Up-To-Date

Loaded fastlane plugins:

Plugin Version Update-Status
fastlane-plugin-firebase_app_distribution 0.3.4 βœ… Up-To-Date
Loaded gems
Gem Version
error_highlight 0.3.0
did_you_mean 1.6.1
atomos 0.1.3
rexml 3.2.5
CFPropertyList 3.0.5
claide 1.1.0
colored2 3.1.2
nanaimo 0.3.0
xcodeproj 1.21.0
rouge 2.0.7
xcpretty 0.3.0
terminal-notifier 2.0.0
unicode-display_width 1.8.0
terminal-table 1.8.0
plist 3.6.0
public_suffix 4.0.7
addressable 2.8.0
multipart-post 2.0.0
word_wrap 1.0.0
optparse 0.1.1
tty-screen 0.8.1
tty-cursor 0.7.1
tty-spinner 0.9.3
artifactory 3.0.15
babosa 1.0.4
colored 1.2
highline 2.0.3
commander 4.6.0
excon 0.92.3
faraday-em_http 1.0.0
faraday-em_synchrony 1.0.0
faraday-excon 1.1.0
faraday-httpclient 1.0.1
faraday-multipart 1.0.3
faraday-net_http 1.0.1
faraday-net_http_persistent 1.2.0
faraday-patron 1.0.0
faraday-rack 1.0.0
faraday-retry 1.0.3
ruby2_keywords 0.0.5
faraday 1.10.0
unf 0.1.4
domain_name 0.5.20190701
http-cookie 1.0.5
faraday-cookie_jar 0.0.7
faraday_middleware 1.2.0
fastimage 2.2.6
gh_inspector 1.1.3
mini_magick 4.11.0
naturally 2.2.1
rubyzip 2.3.2
security 0.1.3
xcpretty-travis-formatter 1.0.1
dotenv 2.7.6
bundler 2.3.11
simctl 1.6.8
jwt 2.3.0
uber 0.1.0
declarative 0.0.20
trailblazer-option 0.1.2
representable 3.2.0
retriable 3.1.2
mini_mime 1.1.2
memoist 0.16.2
multi_json 1.15.0
os 1.1.4
signet 0.16.1
googleauth 1.1.3
httpclient 2.8.3
webrick 1.7.0
google-apis-core 0.5.0
google-apis-playcustomapp_v1 0.7.0
google-apis-androidpublisher_v3 0.21.0
google-cloud-env 1.6.0
google-cloud-errors 1.2.0
google-cloud-core 1.6.0
google-apis-iamcredentials_v1 0.10.0
google-apis-storage_v1 0.14.0
rake 13.0.6
digest-crc 0.6.4
google-cloud-storage 1.36.2
emoji_regex 3.2.3
jmespath 1.6.1
aws-eventstream 1.2.0
aws-sigv4 1.5.0
aws-sdk-core 3.131.1
aws-sdk-kms 1.57.0
aws-sdk-s3 1.114.0
set 1.0.2
unf_ext 0.0.8.2
json 2.6.2
aws-partitions 1.594.0
forwardable 1.3.2
logger 1.5.0
pathname 0.2.0
shellwords 0.1.0
cgi 0.3.1
date 3.2.2
timeout 0.2.0
stringio 3.0.1
securerandom 0.1.1
uri 0.11.0
openssl 3.0.0
digest 3.1.0
io-nonblock 0.1.0
ipaddr 1.2.4
io-wait 0.2.1
zlib 2.1.1
resolv 0.2.1
time 0.2.0
open-uri 0.2.0
mutex_m 0.1.1
net-protocol 0.1.2
net-http 0.2.0
ostruct 0.5.2
english 0.7.1
erb 2.2.3
strscan 3.0.1
abbrev 0.1.0
io-console 0.5.11
tempfile 0.1.2
delegate 0.2.0
fileutils 1.6.0
tmpdir 0.1.2
base64 0.1.1
singleton 0.1.1
open3 0.1.1
nkf 0.1.1
prettyprint 0.1.1
pp 0.3.0
find 0.1.1
yaml 0.2.0
psych 4.0.3
fastlane-plugin-firebase_app_distribution 0.3.4

generated on: 2022-06-07

It seems like you have not included the output of fastlane env
To make it easier for us help you resolve this issue, please update the issue to include the output of fastlane env πŸ‘

Incoming Web hooks are a simple way to post messages from apps into Slack. Creating an Incoming Web hook gives you a unique URL to which you send a payload with the message text and some options. You can use all the usual formatting and layout blocks with Incoming Web hooks to make the messages stand out.
Panorama Charter

ezoic increase your site revenue