Create CI login keychain when missing
Some checks failed
TestFlight / testflight (push) Failing after 19s
Some checks failed
TestFlight / testflight (push) Failing after 19s
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
require "fileutils"
|
||||||
require "shellwords"
|
require "shellwords"
|
||||||
|
|
||||||
default_platform(:ios)
|
default_platform(:ios)
|
||||||
@@ -8,6 +9,10 @@ TEAM_ID = "DQQH5H6GBD"
|
|||||||
PROFILE_NAME = "Sybil AppStore CI"
|
PROFILE_NAME = "Sybil AppStore CI"
|
||||||
SIGNING_IDENTITY_NAME = "Apple Distribution: James Magahern (DQQH5H6GBD)"
|
SIGNING_IDENTITY_NAME = "Apple Distribution: James Magahern (DQQH5H6GBD)"
|
||||||
SIGNING_IDENTITY_SHA1 = "6B74B268C4761720FB2051D01D8BB3E47B55D9F5"
|
SIGNING_IDENTITY_SHA1 = "6B74B268C4761720FB2051D01D8BB3E47B55D9F5"
|
||||||
|
CI_KEYCHAIN_DIR = "/private/var/lib/act_runner/Library/Keychains"
|
||||||
|
CI_LOGIN_KEYCHAIN = File.join(CI_KEYCHAIN_DIR, "login.keychain")
|
||||||
|
CI_LOGIN_KEYCHAIN_DB = "#{CI_LOGIN_KEYCHAIN}-db"
|
||||||
|
CI_KEYCHAIN_PASSWORD = "sybil-ci-keychain-password"
|
||||||
MATCH_BRANCH = "master"
|
MATCH_BRANCH = "master"
|
||||||
IOS_ROOT = File.expand_path("..", __dir__)
|
IOS_ROOT = File.expand_path("..", __dir__)
|
||||||
PROJECT_FILE = File.join(IOS_ROOT, "Sybil.xcodeproj")
|
PROJECT_FILE = File.join(IOS_ROOT, "Sybil.xcodeproj")
|
||||||
@@ -32,7 +37,7 @@ def release_version
|
|||||||
end
|
end
|
||||||
|
|
||||||
def ci_login_keychain_path
|
def ci_login_keychain_path
|
||||||
return "/private/var/lib/act_runner/Library/Keychains/login.keychain-db" if ENV["CI"]
|
return CI_LOGIN_KEYCHAIN_DB if ENV["CI"]
|
||||||
|
|
||||||
candidates = [
|
candidates = [
|
||||||
"/private/var/lib/act_runner/Library/Keychains/login.keychain-db",
|
"/private/var/lib/act_runner/Library/Keychains/login.keychain-db",
|
||||||
@@ -61,8 +66,16 @@ platform :ios do
|
|||||||
private_lane :prepare_ci_keychain do
|
private_lane :prepare_ci_keychain do
|
||||||
next unless ENV["CI"]
|
next unless ENV["CI"]
|
||||||
|
|
||||||
|
FileUtils.mkdir_p(CI_KEYCHAIN_DIR)
|
||||||
|
unless File.file?(CI_LOGIN_KEYCHAIN_DB)
|
||||||
|
sh("security create-keychain -p #{CI_KEYCHAIN_PASSWORD.shellescape} #{CI_LOGIN_KEYCHAIN.shellescape}", log: false)
|
||||||
|
end
|
||||||
|
|
||||||
ENV["MATCH_KEYCHAIN_NAME"] = ci_login_keychain_path
|
ENV["MATCH_KEYCHAIN_NAME"] = ci_login_keychain_path
|
||||||
ENV.delete("MATCH_KEYCHAIN_PASSWORD")
|
ENV["MATCH_KEYCHAIN_PASSWORD"] = CI_KEYCHAIN_PASSWORD
|
||||||
|
sh("security unlock-keychain -p #{CI_KEYCHAIN_PASSWORD.shellescape} #{ENV.fetch("MATCH_KEYCHAIN_NAME").shellescape}", log: false)
|
||||||
|
sh("security set-keychain-settings -t 3600 #{ENV.fetch("MATCH_KEYCHAIN_NAME").shellescape}", log: false)
|
||||||
|
sh("security login-keychain -s #{ENV.fetch("MATCH_KEYCHAIN_NAME").shellescape}", log: false)
|
||||||
sh("security list-keychains -d user -s #{ENV.fetch("MATCH_KEYCHAIN_NAME").shellescape}", log: false)
|
sh("security list-keychains -d user -s #{ENV.fetch("MATCH_KEYCHAIN_NAME").shellescape}", log: false)
|
||||||
cleanup_ci_signing_identity
|
cleanup_ci_signing_identity
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user