Merge "Minor renaming and documentation." am: 0fce469f2d

Original change: https://android-review.googlesource.com/c/platform/build/+/2526606

Change-Id: Ia81fe45c00af64542757847b29c35c64727e9121
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Alex Buynytskyy
2023-04-07 00:06:39 +00:00
committed by Automerger Merge Worker
5 changed files with 95 additions and 5 deletions

View File

@@ -0,0 +1,22 @@
# Finalization tools
This folder contains automation and CI scripts for [finalizing](https://go/android-finalization) Android before release.
## Automation:
1. [Environment setup](./environment.sh). Set values for varios finalization constants.
2. [Finalize SDK](./finalize-aidl-vndk-sdk-resources.sh). Prepare the branch for SDK release. SDK contains Android Java APIs and other stable APIs. Commonly referred as a 1st step.
3. [Finalize Android](./finalize-sdk-rel.sh). Mark branch as "REL", i.e. prepares for Android release. Any signed build containing these changes will be considered an official Android Release. Referred as a 2nd finalization step.
4. [Finalize SDK and submit](./step-1.sh). Do [Finalize SDK](./finalize-aidl-vndk-sdk-resources.sh) step, create CLs, organize them into topic and send to Gerrit.
a. [Update SDK and submit](./update-step-1.sh). Same as above, but updates the existings CLs.
5. [Finalize Android and submit](./step-2.sh). Do [Finalize Android](./finalize-sdk-rel.sh) step, create CLs, organize them into topic and send to Gerrit.
a. [Update Android and submit](./update-step-2.sh). Same as above, but updates the existings CLs.
## CI:
Performed in build targets in Finalization branches.
1. [Finalization Step 1 for Main, git_main-fina-1-release](https://android-build.googleplex.com/builds/branches/git_main-fina-1-release/grid). Test [1st step/Finalize SDK](./finalize-aidl-vndk-sdk-resources.sh).
2. [Finalization Step 1 for UDC, git_udc-fina-1-release](https://android-build.googleplex.com/builds/branches/git_udc-fina-1-release/grid). Same but for udc-dev.
3. [Finalization Step 2 for Main, git_main-fina-2-release](https://android-build.googleplex.com/builds/branches/git_main-fina-2-release/grid). Test [1st step/Finalize SDK](./finalize-aidl-vndk-sdk-resources.sh) and [2nd step/Finalize Android](./finalize-sdk-rel.sh). Use [local finalization](./localonly-steps.sh) to build and copy presubmits.
4. [Finalization Step 2 for UDC, git_udc-fina-2-release](https://android-build.googleplex.com/builds/branches/git_udc-fina-2-release/grid). Same but for udc-dev.
5. [Local finalization steps](./localonly-steps.sh) are done only during local testing or in the CI lab. Normally these steps use artifacts from other builds.
## Utility:
[Full cleanup](./cleanup.sh). Remove all local changes and switch each project into head-less state. This is the best state to sync/rebase/finalize the branch.

View File

@@ -9,8 +9,8 @@ function finalize_main_step12() {
# SDK codename -> int
source $top/build/make/tools/finalization/finalize-aidl-vndk-sdk-resources.sh
# Platform/Mainline SDKs build and move to prebuilts
source $top/build/make/tools/finalization/localonly-finalize-mainline-sdk.sh
# ADB, Platform/Mainline SDKs build and move to prebuilts
source $top/build/make/tools/finalization/localonly-steps.sh
# REL
source $top/build/make/tools/finalization/finalize-sdk-rel.sh

View File

@@ -2,7 +2,7 @@
set -ex
function finalize_locally_mainline_sdk() {
function finalize_locally() {
local top="$(dirname "$0")"/../../../..
source $top/build/make/tools/finalization/environment.sh
@@ -23,5 +23,4 @@ function finalize_locally_mainline_sdk() {
"$top/prebuilts/build-tools/path/linux-x86/python3" -W ignore::DeprecationWarning "$top/prebuilts/sdk/update_prebuilts.py" --local_mode -f ${FINAL_PLATFORM_SDK_VERSION} -e ${FINAL_MAINLINE_EXTENSION} --bug 1 1
}
finalize_locally_mainline_sdk
finalize_locally

View File

@@ -0,0 +1,36 @@
#!/bin/bash
# Script to perform a 1st step of Android Finalization: API/SDK finalization, update CLs and upload to Gerrit.
set -ex
function update_step_1_changes() {
set +e
repo forall -c '\
if [[ $(git status --short) ]]; then
git stash -u ;
repo start "$FINAL_PLATFORM_CODENAME-SDK-Finalization" ;
git stash pop ;
git add -A . ;
git commit --amend --no-edit ;
repo upload --cbr --no-verify -o nokeycheck -t -y . ;
fi'
}
function update_step_1_main() {
local top="$(dirname "$0")"/../../../..
source $top/build/make/tools/finalization/environment.sh
local m="$top/build/soong/soong_ui.bash --make-mode TARGET_PRODUCT=aosp_arm64 TARGET_BUILD_VARIANT=userdebug"
# vndk etc finalization
source $top/build/make/tools/finalization/finalize-aidl-vndk-sdk-resources.sh
# update existing CLs and upload to gerrit
update_step_1_changes
# build to confirm everything is OK
AIDL_FROZEN_REL=true $m
}
update_step_1_main

View File

@@ -0,0 +1,33 @@
#!/bin/bash
# Script to perform a 2nd step of Android Finalization: REL finalization, create CLs and upload to Gerrit.
function update_step_2_changes() {
set +e
repo forall -c '\
if [[ $(git status --short) ]]; then
git stash -u ;
repo start "$FINAL_PLATFORM_CODENAME-SDK-Finalization-Rel" ;
git stash pop ;
git add -A . ;
git commit --amend --no-edit ;
repo upload --cbr --no-verify -o nokeycheck -t -y . ;
fi'
}
function update_step_2_main() {
local top="$(dirname "$0")"/../../../..
source $top/build/make/tools/finalization/environment.sh
local m="$top/build/soong/soong_ui.bash --make-mode TARGET_PRODUCT=aosp_arm64 TARGET_BUILD_VARIANT=userdebug"
# prebuilts etc
source $top/build/make/tools/finalization/finalize-sdk-rel.sh
# move all changes to finalization branch/topic and upload to gerrit
update_step_2_changes
# build to confirm everything is OK
AIDL_FROZEN_REL=true $m
}
update_step_2_main