Kaynağa Gözat

ci:check cronet updates when release

Xwite 4 yıl önce
ebeveyn
işleme
6fefa1aa7a
2 değiştirilmiş dosya ile 65 ekleme ve 3 silme
  1. 43 0
      .github/scripts/cronet.sh
  2. 22 3
      .github/workflows/release.yml

+ 43 - 0
.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 <regex> <string> <debug flag>"
+     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

+ 22 - 3
.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