Refine building process

This commit is contained in:
Zhiyuan Zheng 2022-06-11 19:56:26 +02:00
parent b46a3432b5
commit 34be881ade
2 changed files with 43 additions and 52 deletions

View File

@ -114,6 +114,10 @@ jobs:
ENVIRONMENT: ${{ steps.branch.outputs.branch }}
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
ANDROID_KEYSTORE: ${{ secrets.ANDROID_KEYSTORE }}
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
ANDROID_KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
ANDROID_KEYSTORE_KEY_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_KEY_PASSWORD }}
GH_PAT_GET_RELEASE: ${{ secrets.GH_PAT_GET_RELEASE }}
FL_GITHUB_RELEASE_API_BEARER: ${{ secrets.GITHUB_TOKEN }}
run: yarn app:build release

View File

@ -43,24 +43,6 @@ private_lane :prepare_playstore_android do
android_set_version_code( version_code: BUILD_NUMBER, gradle_file: "./android/app/build.gradle" )
end
desc "Create new GitHub release"
private_lane :github_release do |options|
set_github_release(
repository_name: GITHUB_REPO,
name: GITHUB_RELEASE,
tag_name: GITHUB_RELEASE,
description: "No changelog provided",
commitish: git_branch,
is_prerelease: options[:prerelease],
upload_assets: ["#{File.expand_path('..', Dir.pwd)}/tooot.apk"]
)
end
desc "Expo release"
private_lane :expo_release do
yarn( package_path: "./package.json", flags: "release", command: RELEASE_CHANNEL )
end
desc "Build and deploy iOS app"
private_lane :build_ios do
BUILD_DIRECTORY = "./ios/build"
@ -146,22 +128,6 @@ private_lane :build_android do
skip_upload_images: true,
skip_upload_screenshots: true
)
build_android_app(
task: 'assemble',
build_type: 'release',
project_dir: "./android",
print_command: false,
print_command_output: false,
properties: {
"expoSDK" => VERSIONS[:expo],
"releaseChannel" => RELEASE_CHANNEL,
"android.injected.signing.store.file" => "#{File.expand_path('..', Dir.pwd)}/android/tooot.jks",
"android.injected.signing.store.password" => ENV["ANDROID_KEYSTORE_PASSWORD"],
"android.injected.signing.key.alias" => ENV["ANDROID_KEYSTORE_ALIAS"],
"android.injected.signing.key.password" => ENV["ANDROID_KEYSTORE_KEY_PASSWORD"],
}
)
sh "mv #{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]} #{File.expand_path('..', Dir.pwd)}/tooot-#{GITHUB_RELEASE}.apk"
when "release"
prepare_playstore_android
build_android_app(
@ -183,6 +149,34 @@ private_lane :build_android do
track: "production",
skip_upload_changelogs: true
)
end
end
desc "Build Android apk"
private_lane :build_android_apk do
sh("echo #{ENV["ANDROID_KEYSTORE"]} | base64 -d | tee #{File.expand_path('..', Dir.pwd)}/android/tooot.jks >/dev/null", log: false)
case ENVIRONMENT
when "candidate"
prepare_playstore_android
build_android_app(
task: 'assemble',
build_type: 'release',
project_dir: "./android",
print_command: false,
print_command_output: false,
properties: {
"expoSDK" => VERSIONS[:expo],
"releaseChannel" => RELEASE_CHANNEL,
"android.injected.signing.store.file" => "#{File.expand_path('..', Dir.pwd)}/android/tooot.jks",
"android.injected.signing.store.password" => ENV["ANDROID_KEYSTORE_PASSWORD"],
"android.injected.signing.key.alias" => ENV["ANDROID_KEYSTORE_ALIAS"],
"android.injected.signing.key.password" => ENV["ANDROID_KEYSTORE_KEY_PASSWORD"],
}
)
sh "mv #{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]} #{File.expand_path('..', Dir.pwd)}/tooot.apk"
when "release"
prepare_playstore_android
build_android_app(
task: 'assemble',
build_type: 'release',
@ -199,17 +193,6 @@ private_lane :build_android do
}
)
sh "mv #{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]} #{File.expand_path('..', Dir.pwd)}/tooot.apk"
else
if !is_ci
build_android_app(
task: 'assemble',
build_type: 'release',
project_dir: "./android"
)
adb(
command: "install #{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]}"
)
end
end
end
@ -239,13 +222,17 @@ end
lane :release do
releaseExists = get_github_release(url: GITHUB_REPO, version: "v#{VERSION}", api_token: ENV['GH_PAT_GET_RELEASE'])
if !releaseExists
case ENVIRONMENT
when "candidate"
github_release(prerelease: true)
when "release"
github_release(prerelease: false)
end
build_android_apk
set_github_release(
repository_name: GITHUB_REPO,
name: GITHUB_RELEASE,
tag_name: GITHUB_RELEASE,
description: "No changelog provided",
commitish: git_branch,
is_prerelease: ENVIRONMENT == 'candidate',
upload_assets: ["#{File.expand_path('..', Dir.pwd)}/tooot.apk"]
)
end
expo_release
yarn( package_path: "./package.json", flags: "release", command: RELEASE_CHANNEL )
rocket
end