feat: dev,pre环境打包采用未来真实版本号.
This commit is contained in:
parent
70619b94be
commit
44bb803754
@ -1,6 +1,6 @@
|
|||||||
stages:
|
stages:
|
||||||
- test
|
- test
|
||||||
- generate_tag
|
- generate_tag_or_version
|
||||||
- build-artifacts
|
- build-artifacts
|
||||||
- release-artifacts
|
- release-artifacts
|
||||||
- notification
|
- notification
|
||||||
@ -20,13 +20,22 @@ variables:
|
|||||||
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
||||||
- if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$/
|
- if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$/
|
||||||
|
|
||||||
.tag_rule:
|
.generate_tag_rule:
|
||||||
tags:
|
tags:
|
||||||
- macos
|
- macos
|
||||||
- flutter
|
- flutter
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH == "master"
|
- if: $CI_COMMIT_BRANCH == "master"
|
||||||
|
|
||||||
|
.generate_next_version_rule:
|
||||||
|
tags:
|
||||||
|
- macos
|
||||||
|
- flutter
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_BRANCH == "develop"
|
||||||
|
- if: $CI_COMMIT_BRANCH == "release"
|
||||||
|
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
||||||
|
|
||||||
.print_env:
|
.print_env:
|
||||||
stage: test
|
stage: test
|
||||||
extends: .build_rule
|
extends: .build_rule
|
||||||
@ -39,6 +48,9 @@ variables:
|
|||||||
.setup_fastlane_android:
|
.setup_fastlane_android:
|
||||||
extends: .build_rule
|
extends: .build_rule
|
||||||
before_script:
|
before_script:
|
||||||
|
- ls -li
|
||||||
|
- export NEXT_VERSION="$(cat app_new.version)"
|
||||||
|
- export NEXT_VERSION="$(cat app_new.version)"
|
||||||
- flutter pub get
|
- flutter pub get
|
||||||
- bundle install --gemfile android/Gemfile --quiet
|
- bundle install --gemfile android/Gemfile --quiet
|
||||||
|
|
||||||
@ -46,6 +58,7 @@ variables:
|
|||||||
.setup_fastlane_ios:
|
.setup_fastlane_ios:
|
||||||
extends: .build_rule
|
extends: .build_rule
|
||||||
before_script:
|
before_script:
|
||||||
|
- ls -li
|
||||||
- flutter pub get
|
- flutter pub get
|
||||||
- bundle install --gemfile ios/Gemfile --quiet
|
- bundle install --gemfile ios/Gemfile --quiet
|
||||||
|
|
||||||
@ -58,9 +71,9 @@ test_lint_check:
|
|||||||
- macos
|
- macos
|
||||||
- flutter
|
- flutter
|
||||||
|
|
||||||
git_tag:
|
generate_git_tag:
|
||||||
stage: generate_tag
|
stage: generate_tag_or_version
|
||||||
extends: .tag_rule
|
extends: .generate_tag_rule
|
||||||
before_script:
|
before_script:
|
||||||
- project_url=$(echo $CI_PROJECT_URL | sed 's/http:\/\///')
|
- project_url=$(echo $CI_PROJECT_URL | sed 's/http:\/\///')
|
||||||
- echo "project_url:$project_url"
|
- echo "project_url:$project_url"
|
||||||
@ -68,6 +81,15 @@ git_tag:
|
|||||||
script:
|
script:
|
||||||
- bash tag_generator.sh
|
- bash tag_generator.sh
|
||||||
|
|
||||||
|
generate_next_version:
|
||||||
|
stage: generate_tag_or_version
|
||||||
|
extends: .generate_next_version_rule
|
||||||
|
script:
|
||||||
|
- bash tag_generator.sh generate_version
|
||||||
|
cache:
|
||||||
|
paths:
|
||||||
|
- app_new.version
|
||||||
|
|
||||||
build_android:
|
build_android:
|
||||||
stage: build-artifacts
|
stage: build-artifacts
|
||||||
extends: .setup_fastlane_android
|
extends: .setup_fastlane_android
|
||||||
|
|||||||
@ -18,10 +18,12 @@ default_platform(:android)
|
|||||||
$env_key_project_root = 'ENV_BUILD_WORKSPACE'
|
$env_key_project_root = 'ENV_BUILD_WORKSPACE'
|
||||||
$env_current_branch = 'ENV_BUILD_BRANCH'
|
$env_current_branch = 'ENV_BUILD_BRANCH'
|
||||||
$env_current_tag = 'ENV_BUILD_TAG'
|
$env_current_tag = 'ENV_BUILD_TAG'
|
||||||
|
$env_next_version = 'NEXT_VERSION'
|
||||||
|
|
||||||
$path_dir_build = File.join(ENV[$env_key_project_root],'')
|
$path_dir_build = File.join(ENV[$env_key_project_root],'')
|
||||||
$current_branch = ENV[$env_current_branch]
|
$current_branch = ENV[$env_current_branch]
|
||||||
$current_tag = ENV[$env_current_tag]
|
$current_tag = ENV[$env_current_tag]
|
||||||
|
$next_version = ENV[$env_next_version]
|
||||||
|
|
||||||
$path_apk_output_dir = File.join($path_dir_build, 'build/app/outputs/flutter-apk')
|
$path_apk_output_dir = File.join($path_dir_build, 'build/app/outputs/flutter-apk')
|
||||||
$path_bundle_output_dir = File.join($path_dir_build, 'build/app/outputs/bundle')
|
$path_bundle_output_dir = File.join($path_dir_build, 'build/app/outputs/bundle')
|
||||||
@ -60,7 +62,7 @@ platform :android do
|
|||||||
print_log "build #{flavor} on #{env}"
|
print_log "build #{flavor} on #{env}"
|
||||||
build_number = Time.now.strftime("%Y%m%d%H")
|
build_number = Time.now.strftime("%Y%m%d%H")
|
||||||
print_log "BuildNo #{build_number}"
|
print_log "BuildNo #{build_number}"
|
||||||
build_version = '1.0.0'
|
build_version = $next_version
|
||||||
print_log "build_version #{build_version}"
|
print_log "build_version #{build_version}"
|
||||||
commit_hash = last_git_commit
|
commit_hash = last_git_commit
|
||||||
short_hash = commit_hash[:abbreviated_commit_hash]
|
short_hash = commit_hash[:abbreviated_commit_hash]
|
||||||
|
|||||||
@ -47,10 +47,12 @@ $env_current_tag = 'ENV_BUILD_TAG'
|
|||||||
$env_key_fastlane_apple_auth_key = 'APPLE_AUTH_CONTENT'
|
$env_key_fastlane_apple_auth_key = 'APPLE_AUTH_CONTENT'
|
||||||
$env_key_fastlane_apple_auth_issuer_key = 'APPLE_AUTH_ISSUER_ID'
|
$env_key_fastlane_apple_auth_issuer_key = 'APPLE_AUTH_ISSUER_ID'
|
||||||
$env_key_fastlane_apple_auth_id_key = 'APPLE_AUTH_KEY_ID'
|
$env_key_fastlane_apple_auth_id_key = 'APPLE_AUTH_KEY_ID'
|
||||||
|
$env_next_version = 'NEXT_VERSION'
|
||||||
|
|
||||||
$path_dir_build = File.join(ENV[$env_key_project_root], '')
|
$path_dir_build = File.join(ENV[$env_key_project_root], '')
|
||||||
$current_branch = ENV[$env_current_branch]
|
$current_branch = ENV[$env_current_branch]
|
||||||
$current_tag = ENV[$env_current_tag]
|
$current_tag = ENV[$env_current_tag]
|
||||||
|
$next_version = ENV[$env_next_version]
|
||||||
|
|
||||||
$filename_ipa_default = 'app-starlock.ipa'
|
$filename_ipa_default = 'app-starlock.ipa'
|
||||||
$filename_beta_ipa_copy = 'app-starlock-'+$current_branch+'.ipa'
|
$filename_beta_ipa_copy = 'app-starlock-'+$current_branch+'.ipa'
|
||||||
@ -77,7 +79,7 @@ platform :ios do
|
|||||||
print_log "build #{flavor} on #{env}"
|
print_log "build #{flavor} on #{env}"
|
||||||
build_number = Time.now.strftime("%Y%m%d%H")
|
build_number = Time.now.strftime("%Y%m%d%H")
|
||||||
print_log "Build Commits #{build_number}"
|
print_log "Build Commits #{build_number}"
|
||||||
build_version = '1.0.0'; # Time.now.strftime("%Y%m%d%H%M%S")
|
build_version = $next_version # Time.now.strftime("%Y%m%d%H%M%S")
|
||||||
print_log "build_version #{build_version}"
|
print_log "build_version #{build_version}"
|
||||||
commit_hash = last_git_commit
|
commit_hash = last_git_commit
|
||||||
short_hash = commit_hash[:abbreviated_commit_hash]
|
short_hash = commit_hash[:abbreviated_commit_hash]
|
||||||
|
|||||||
@ -5,6 +5,7 @@ URL=$CI_API_V4_URL
|
|||||||
TOKEN=$GITLAB_ACCESS_TOKEN
|
TOKEN=$GITLAB_ACCESS_TOKEN
|
||||||
PROJECT_ID=$CI_PROJECT_ID
|
PROJECT_ID=$CI_PROJECT_ID
|
||||||
next_tag=""
|
next_tag=""
|
||||||
|
newest_tag=""
|
||||||
echo "PRIVATE-TOKEN: $TOKEN $URL/projects/$PROJECT_ID/repository/tags"
|
echo "PRIVATE-TOKEN: $TOKEN $URL/projects/$PROJECT_ID/repository/tags"
|
||||||
tags_json=$(curl -H "Content-Type: application/json" -H "PRIVATE-TOKEN: $TOKEN" "$URL/projects/$PROJECT_ID/repository/tags")
|
tags_json=$(curl -H "Content-Type: application/json" -H "PRIVATE-TOKEN: $TOKEN" "$URL/projects/$PROJECT_ID/repository/tags")
|
||||||
#echo "tags_json:$tags_json\n"
|
#echo "tags_json:$tags_json\n"
|
||||||
@ -16,9 +17,14 @@ else
|
|||||||
newest_tag=$(echo "$tags" | head -n 1)
|
newest_tag=$(echo "$tags" | head -n 1)
|
||||||
IFS='.' read -r major minor patch <<< "$newest_tag"
|
IFS='.' read -r major minor patch <<< "$newest_tag"
|
||||||
major="${major#v}"
|
major="${major#v}"
|
||||||
echo "newest_tag:$newest_tag-second_newest_tag:$second_newest_tag\n"
|
compare_json=""
|
||||||
# 比较两个tag之间的commits
|
if [[ "$1" == "generate_tag" ]];then
|
||||||
compare_json=$(curl -s --header "PRIVATE-TOKEN: $TOKEN" "$URL/projects/$PROJECT_ID/repository/compare?from=$newest_tag&to=master")
|
echo "generate_tag:$newest_tag-to-master\n"
|
||||||
|
compare_json=$(curl -s --header "PRIVATE-TOKEN: $TOKEN" "$URL/projects/$PROJECT_ID/repository/compare?from=$newest_tag&to=master")
|
||||||
|
elif [[ "$1" == "generate_version" ]]; then
|
||||||
|
echo "generate_version:master-to-$CI_COMMIT_BRANCH\n"
|
||||||
|
compare_json=$(curl -s --header "PRIVATE-TOKEN: $TOKEN" "$URL/projects/$PROJECT_ID/repository/compare?from=master&to=$CI_COMMIT_BRANCH")
|
||||||
|
fi
|
||||||
echo "compare_json:$compare_json\n"
|
echo "compare_json:$compare_json\n"
|
||||||
while IFS= read -r commit_json; do
|
while IFS= read -r commit_json; do
|
||||||
# 使用 jq 解析每一行的 JSON 对象
|
# 使用 jq 解析每一行的 JSON 对象
|
||||||
@ -36,12 +42,20 @@ else
|
|||||||
fi
|
fi
|
||||||
done < <(echo "$compare_json" | jq -c '.commits[] | {id: .id, message: .message}')
|
done < <(echo "$compare_json" | jq -c '.commits[] | {id: .id, message: .message}')
|
||||||
next_tag="v$major.$minor.$patch"
|
next_tag="v$major.$minor.$patch"
|
||||||
|
fi
|
||||||
|
echo "New Tag:$newest_tag;New version: $next_tag;command: $1"
|
||||||
|
if [[ "$1" == "generate_tag" ]];then
|
||||||
if [ "$next_tag" == "$newest_tag" ]; then
|
if [ "$next_tag" == "$newest_tag" ]; then
|
||||||
echo "no change from master,skip to generate tag"
|
echo "no change from master,skip to generate tag"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
git config user.name
|
||||||
|
git tag $next_tag
|
||||||
|
git push -u origin $next_tag
|
||||||
|
echo "generate tag: $next_tag"
|
||||||
|
elif [[ "$1" == "generate_version" ]]; then
|
||||||
|
export NEXT_VERSION="$next_tag"
|
||||||
|
echo "generate version: $NEXT_VERSION"
|
||||||
fi
|
fi
|
||||||
echo "New version: $next_tag"
|
echo "$next_tag" > app_new.version
|
||||||
git config user.name
|
|
||||||
git tag $next_tag
|
|
||||||
git push -u origin $next_tag
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user