From a86cca96e21f9767050a4dd7e0880e2089a710b7 Mon Sep 17 00:00:00 2001 From: Kingsword Date: Mon, 15 Jul 2024 15:23:09 +0800 Subject: [PATCH] :construction: [kmp] daily android publish --- .github/workflows/daily-android-publish.yml | 27 +++++++++++++++++++++ next/kmp/build-android.ts | 15 +++++++++--- 2 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/daily-android-publish.yml diff --git a/.github/workflows/daily-android-publish.yml b/.github/workflows/daily-android-publish.yml new file mode 100644 index 000000000..3026932a5 --- /dev/null +++ b/.github/workflows/daily-android-publish.yml @@ -0,0 +1,27 @@ +name: Daily Android Publish CI + +on: + schedule: + - cron: '0 8 * * *' # 每天 UTC 时间 8:00 执行 + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: set up JDK 17 + - uses: actions/setup-java@v4 + with: + distribution: 'corretto' + java-version: 21 + + - uses: denoland/setup-deno@v1 + with: + deno-version: v1.x + + - uses: pnpm/action-setup@v4 + + - name: Dependencis install + run: | + deno task init && deno task dev diff --git a/next/kmp/build-android.ts b/next/kmp/build-android.ts index 8bb48515b..fc350ad42 100755 --- a/next/kmp/build-android.ts +++ b/next/kmp/build-android.ts @@ -153,16 +153,25 @@ const upgradeVersionInfo = async (filePath: string, forceUpdate = false) => { } }; +enum ANDROID_CHANNEL { + DEV = "dev", + BETA = "beta", + RC = "rc", + STABLE = "stable" +} + if (import.meta.main) { - // 发布版本的时候,升级下版本信息 versionCode和versionName - const version = await upgradeVersionInfo(resolveTo("gradle/libs.versions.toml"), Deno.args.includes("--new")); + const channel = cliArgs.channel ?? ANDROID_CHANNEL.STABLE; + + // // // 发布版本的时候,升级下版本信息 versionCode和versionName + const version = await upgradeVersionInfo(resolveTo("gradle/libs.versions.toml"), cliArgs.new); if (cliArgs.clean) { await doCleanBuildDIR(); // 清空编译目录 } await doBundle(); const dirpath = await doCopy(version); - const uploadArgs: $UploadReleaseParams = [`android-${version}`, dirpath, "*.apk"]; + const uploadArgs: $UploadReleaseParams = [`android-${channel == ANDROID_CHANNEL.STABLE ? "" : `${channel}-`}${version}`, dirpath, "*.apk"]; await recordUploadRelease(uploadArgs[0], uploadArgs); if (cliArgs.upload) { await doUploadRelease(...uploadArgs);