From 4fc32aa605c78d9324689e32b0c400907ace9fdb Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Sat, 5 Mar 2022 15:38:40 +0800 Subject: [PATCH] ci:check cronet updates when release --- .github/scripts/cronet.sh | 43 +++++++++++++++++++++++++++++++++++ .github/workflows/release.yml | 25 +++++++++++++++++--- 2 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 .github/scripts/cronet.sh diff --git a/.github/scripts/cronet.sh b/.github/scripts/cronet.sh new file mode 100644 index 000000000..4f75177c8 --- /dev/null +++ b/.github/scripts/cronet.sh @@ -0,0 +1,43 @@ +#bin/sh + +global_rematch() { + local s="$2" regex=$1 debug=$3 + if [[ -z "$1" || -z "$2" ]]; then + echo -e "usage: global_rematch " + else + if [[ ! $s =~ $regex ]]; then + [[ -n $debug ]] && echo -e "input string: $s" + [[ -n $debug ]] && echo -e "input regex: $regex" + echo -e "info: not matched!" + fi + while [[ $s =~ $regex ]]; do + if [[ -n ${BASH_REMATCH[1]} ]];then + [[ -n $debug ]] && echo "待匹配:$s" + echo "${BASH_REMATCH[1]}" + s=`echo $s | sed s/${BASH_REMATCH[1]}//g` + [[ -n $debug ]] && echo "下次匹配:$s" + else + echo -e "info: regex not has match group!" + fi + done + fi + } + +echo "start download cronet info..." +curl https://storage.googleapis.com/chromium-cronet/ -s > cronet +global_rematch 'android.([0-9\.]+).Release.VERSION' "`cat cronet`" | tail -1 > lastest_cronet_version +lastest_cronet_version=`cat lastest_cronet_version` +echo "lastest_cronet_version: $lastest_cronet_version" + +path=$GITHUB_WORKSPACE/gradle.properties +current_cronet_version=`cat $path | grep CronetVersion | sed s/CronetVersion=//` +echo "current_cronet_version: $current_cronet_version" + +if [[ $current_cronet_version == $lastest_cronet_version ]];then + echo "cronet is already latest" +else + sed -i s/CronetVersion=.*/CronetVersion=$lastest_cronet_version/ $path + echo "start download latest cronet" + chmod +x gradlew + ./gradlew app:downloadCronet +fi diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bb4ea55a7..19fbef4b0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,7 +22,7 @@ jobs: steps: - uses: actions/checkout@v2 with: - fetch-depth: 0 + fetch-depth: 1 - uses: actions/cache@v2 with: path: | @@ -31,6 +31,7 @@ jobs: key: ${{ runner.os }}-legado-${{ hashFiles('**/updateLog.md') }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-legado-${{ hashFiles('**/updateLog.md') }}- + - name: Release Apk Sign run: | echo "给apk增加签名" @@ -39,17 +40,35 @@ jobs: sed '$a\RELEASE_KEY_ALIAS=legado' $GITHUB_WORKSPACE/gradle.properties -i sed '$a\RELEASE_STORE_PASSWORD=gedoor_legado' $GITHUB_WORKSPACE/gradle.properties -i sed '$a\RELEASE_KEY_PASSWORD=gedoor_legado' $GITHUB_WORKSPACE/gradle.properties -i + - name: Unify Version Name run: | echo "统一版本号" VERSION=$(date -d "8 hour" -u +3.%y.%m%d%H) echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV sed "/def version/c def version = \"$VERSION\"" $GITHUB_WORKSPACE/app/build.gradle -i + + - name: Set github-action[bot] info + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" + + - name: Download Lastest Cronet jar + run: | + echo "获取cronet最新版本" + source $GITHUB_WORKSPACE/.github/scripts/cronet.sh + git add *cronet*jar + git add *cronet.json + git add gradle.properties + git commit -m "bump cronet version: $lastest_cronet_version" + git push origin master + - name: Build With Gradle run: | echo "开始进行release构建" chmod +x gradlew ./gradlew assembleRelease --build-cache --parallel + - name: Organize the Files run: | mkdir -p ${{ github.workspace }}/apk/ @@ -60,12 +79,14 @@ jobs: with: name: legado apk path: ${{ github.workspace }}/apk/*.apk + - name: Upload App To Lanzou if: ${{ env.ylogin }} run: | path="$GITHUB_WORKSPACE/apk/" python3 $GITHUB_WORKSPACE/.github/scripts/lzy_web.py "$path" "$LANZOU_FOLDER_ID" echo "[$(date -u -d '+8 hour' '+%Y.%m.%d %H:%M:%S')] 分享链接: https://kunfei.lanzoux.com/b0f7pt4ja" + - name: Release uses: softprops/action-gh-release@59c3b4891632ff9a897f99a91d7bc557467a3a22 with: @@ -81,8 +102,6 @@ jobs: - name: Push Assets To "release" Branch if: ${{ github.actor == 'gedoor' }} run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" git clone "https://${{ github.actor }}:${{ secrets.ACTIONS_TOKEN }}@github.com/${{ github.actor }}/release" -b release release-branch mv -f $GITHUB_WORKSPACE/apk/*.apk release-branch cd release-branch