From 2996d6bdf24db8c07b2d8c314d856862244945bd Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 29 Dec 2023 14:58:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20Android=205=20=E7=89=B9?= =?UTF-8?q?=E5=88=AB=E7=89=88=E4=B8=8E=E5=A2=A8=C2=B7=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=A0=8F=E7=89=B9=E5=88=AB=E7=89=88=E7=9A=84=20release=20?= =?UTF-8?q?=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/actions/setup/action.yml | 2 +- .github/workflows/beta-pack.yml | 78 +++++++++++++++-- .github/workflows/release.yml | 138 +++++++++++++++++++++++++++++-- .ncurc.js | 4 - package-lock.json | 40 ++++----- package.json | 6 +- publish/changeLog.md | 5 +- 7 files changed, 230 insertions(+), 43 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 50b4c4c..842ca78 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -13,7 +13,7 @@ runs: uses: actions/setup-java@v4 with: distribution: 'microsoft' - java-version: '17' + java-version: ${{ env.JAVA_VERSION }} cache: gradle - name: Cache node modules diff --git a/.github/workflows/beta-pack.yml b/.github/workflows/beta-pack.yml index becced4..fc0a12d 100644 --- a/.github/workflows/beta-pack.yml +++ b/.github/workflows/beta-pack.yml @@ -11,16 +11,15 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out git repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Env uses: ./.github/actions/setup + env: + JAVA_VERSION: '17' - name: Build Packages - run: | - cd android - echo ${{ secrets.KEYSTORE_STORE_FILE_BASE64 }} | base64 --decode > app/${{ secrets.KEYSTORE_STORE_FILE }} - ./gradlew assembleRelease -PMYAPP_UPLOAD_STORE_FILE='${{ secrets.KEYSTORE_STORE_FILE }}' -PMYAPP_UPLOAD_KEY_ALIAS='${{ secrets.KEYSTORE_KEY_ALIAS }}' -PMYAPP_UPLOAD_STORE_PASSWORD='${{ secrets.KEYSTORE_PASSWORD }}' -PMYAPP_UPLOAD_KEY_PASSWORD='${{ secrets.KEYSTORE_KEY_PASSWORD }}' + uses: ./.github/actions/build-packages # Push tag to GitHub if package.json version's tag is not tagged - name: Get package version @@ -35,3 +34,72 @@ jobs: uses: ./.github/actions/upload-artifact env: PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} + + + Android_SL: + name: Android_SL + runs-on: ubuntu-latest + steps: + - name: Check out git repository + uses: actions/checkout@v4 + with: + ref: statusbar_lyric + + - name: Setup Env + uses: ./.github/actions/setup + env: + JAVA_VERSION: '17' + + - name: Build Packages + uses: ./.github/actions/build-packages + + # Push tag to GitHub if package.json version's tag is not tagged + - name: Get package version + run: | + node -p -e '`PACKAGE_VERSION=${require("./package.json").version}`' >> $GITHUB_ENV + echo "COMMIT_SHA=$(git show -s --format=%H)" >> $GITHUB_ENV + + - name: Generate file MD5 + run: | + echo "current commit sha: ${{ env.COMMIT_SHA }}" + cd android/app/build/outputs/apk/release + md5sum *.apk + + - name: Upload Artifact + uses: ./.github/actions/upload-artifact + env: + PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} + + Android_5: + name: Android_5 + runs-on: ubuntu-latest + steps: + - name: Check out git repository + uses: actions/checkout@v4 + with: + ref: android_5 + + - name: Setup Env + uses: ./.github/actions/setup + env: + JAVA_VERSION: '11' + + - name: Build Packages + uses: ./.github/actions/build-packages + + # Push tag to GitHub if package.json version's tag is not tagged + - name: Get package version + run: | + node -p -e '`PACKAGE_VERSION=${require("./package.json").version}`' >> $GITHUB_ENV + echo "COMMIT_SHA=$(git show -s --format=%H)" >> $GITHUB_ENV + + - name: Generate file MD5 + run: | + echo "current commit sha: ${{ env.COMMIT_SHA }}" + cd android/app/build/outputs/apk/release + md5sum *.apk + + - name: Upload Artifact + uses: ./.github/actions/upload-artifact + env: + PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a448ba2..7e10bf5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,10 +11,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out git repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Env uses: ./.github/actions/setup + env: + JAVA_VERSION: '17' - name: Build Packages uses: ./.github/actions/build-packages @@ -34,10 +36,123 @@ jobs: - name: Generate file MD5 run: | - echo -e '\n### File MD5\n```' >> ./publish/changeLog.md cd android/app/build/outputs/apk/release - md5sum *.apk >> ../../../../../../publish/changeLog.md - echo -e '```\n' >> ../../../../../../publish/changeLog.md + md5sum *.apk + + - name: Upload Artifact + uses: ./.github/actions/upload-artifact + env: + PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} + + Android_SL: + name: Android_SL + runs-on: ubuntu-latest + steps: + - name: Check out git repository + uses: actions/checkout@v4 + with: + ref: statusbar_lyric + + - name: Setup Env + uses: ./.github/actions/setup + env: + JAVA_VERSION: '17' + + - name: Build Packages + uses: ./.github/actions/build-packages + + # Push tag to GitHub if package.json version's tag is not tagged + - name: Get package version + run: | + node -p -e '`PACKAGE_VERSION=${require("./package.json").version}`' >> $GITHUB_ENV + echo "COMMIT_SHA=$(git show -s --format=%H)" >> $GITHUB_ENV + + - name: Create git tag + uses: pkgdeps/git-tag-action@v2 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + github_repo: ${{ github.repository }} + version: ${{ env.PACKAGE_VERSION }} + git_commit_sha: ${{ env.COMMIT_SHA }} + git_tag_prefix: "v" + + - name: Generate file MD5 + run: | + echo "current commit sha: ${{ env.COMMIT_SHA }}" + cd android/app/build/outputs/apk/release + md5sum *.apk + + - name: Upload Artifact + uses: ./.github/actions/upload-artifact + env: + PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} + + Android_5: + name: Android_5 + runs-on: ubuntu-latest + steps: + - name: Check out git repository + uses: actions/checkout@v4 + with: + ref: android_5 + + - name: Setup Env + uses: ./.github/actions/setup + env: + JAVA_VERSION: '11' + + - name: Build Packages + uses: ./.github/actions/build-packages + + # Push tag to GitHub if package.json version's tag is not tagged + - name: Get package version + run: | + node -p -e '`PACKAGE_VERSION=${require("./package.json").version}`' >> $GITHUB_ENV + echo "COMMIT_SHA=$(git show -s --format=%H)" >> $GITHUB_ENV + + - name: Create git tag + uses: pkgdeps/git-tag-action@v2 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + github_repo: ${{ github.repository }} + version: ${{ env.PACKAGE_VERSION }} + git_commit_sha: ${{ env.COMMIT_SHA }} + git_tag_prefix: "v" + + - name: Generate file MD5 + run: | + echo "current commit sha: ${{ env.COMMIT_SHA }}" + cd android/app/build/outputs/apk/release + md5sum *.apk + + - name: Upload Artifact + uses: ./.github/actions/upload-artifact + env: + PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} + + Release: + name: Release + runs-on: ubuntu-latest + needs: [Android, Android_SL, Android_5] + steps: + - name: Check out git repository + uses: actions/checkout@v4 + + - name: Download Artifacts + uses: actions/download-artifact@v4 + with: + path: ./artifacts + merge-multiple: true + + - name: Generate file MD5 + run: | + echo -e '\n### File MD5\n```' >> ./publish/changeLog.md + cd artifacts + md5sum *.apk >> ../publish/changeLog.md + echo -e '```\n' >> ../publish/changeLog.md + + - name: Get package version + run: node -p -e '`PACKAGE_VERSION=${require("./package.json").version}`' >> $GITHUB_ENV - name: Release uses: softprops/action-gh-release@v1 @@ -52,10 +167,15 @@ jobs: android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-x86_64.apk android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-x86.apk android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-universal.apk + android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-android_5-arm64-v8a.apk + android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-android_5-armeabi-v7a.apk + android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-android_5-x86_64.apk + android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-android_5-x86.apk + android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-android_5-universal.apk + android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-sl-arm64-v8a.apk + android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-sl-armeabi-v7a.apk + android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-sl-x86_64.apk + android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-sl-x86.apk + android/app/build/outputs/apk/release/lx-music-mobile-v${{ env.PACKAGE_VERSION }}-sl-universal.apk env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Upload Artifact - uses: ./.github/actions/upload-artifact - env: - PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} diff --git a/.ncurc.js b/.ncurc.js index 2f475f2..7979382 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -1,10 +1,7 @@ module.exports = { upgrade: true, reject: [ - // 'metro-react-native-babel-preset', '@types/react-native', - 'metro-react-native-babel-preset', - '@react-native/metro-config', 'react', ], @@ -12,7 +9,6 @@ module.exports = { // filter: [ // '@types/react-native', // 'react', - // 'metro-react-native-babel-preset', // '@react-native/metro-config', // ], } diff --git a/package-lock.json b/package-lock.json index 968ace3..1db8f77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "dependencies": { "@craftzdog/react-native-buffer": "^6.0.5", "@react-native-async-storage/async-storage": "^1.21.0", - "@react-native-clipboard/clipboard": "^1.13.1", + "@react-native-clipboard/clipboard": "^1.13.2", "@react-native-community/slider": "^4.5.0", "iconv-lite": "^0.6.3", "lrc-file-parser": "^2.4.1", @@ -25,7 +25,7 @@ "react-native-fast-image": "^8.6.3", "react-native-file-system": "github:lyswhut/react-native-file-system#8124117c164d8f4d5298f9b695df570c04e7197a", "react-native-fs": "^2.20.0", - "react-native-local-media-metadata": "github:lyswhut/react-native-local-media-metadata#ca6bd48218d1ff69e8590d70eb58b5bf408a1892", + "react-native-local-media-metadata": "github:lyswhut/react-native-local-media-metadata#c8377d82c04aecf5ee79d446276ab9d0c1f167be", "react-native-navigation": "^7.37.2", "react-native-pager-view": "^6.2.3", "react-native-quick-base64": "^2.0.8", @@ -43,7 +43,7 @@ "@react-native/metro-config": "^0.73.2", "@react-native/typescript-config": "^0.74.0", "@tsconfig/react-native": "^3.0.2", - "@types/react": "^18.2.45", + "@types/react": "^18.2.46", "@types/react-native": "^0.72.8", "@types/react-native-background-timer": "^2.0.2", "@types/react-native-vector-icons": "^6.4.18", @@ -2553,9 +2553,9 @@ } }, "node_modules/@react-native-clipboard/clipboard": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.13.1.tgz", - "integrity": "sha512-sXWYgjPOK9lDLJQ2AebYY4t19UKh0JLNzX/KTnNulS9XL7Hd4mFZPwPfL4ysF6/SiGJaP6QlEFQbOZA+x4SIPg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.13.2.tgz", + "integrity": "sha512-uVM55oEGc6a6ZmSATDeTcMm55A/C1km5X47g0xaoF0Zagv7N/8RGvLceA5L/izPwflIy78t7XQeJUcnGSib0nA==", "peerDependencies": { "react": ">=16.0", "react-native": ">=0.57.0" @@ -3338,9 +3338,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.2.45", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.45.tgz", - "integrity": "sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==", + "version": "18.2.46", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.46.tgz", + "integrity": "sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -9014,8 +9014,8 @@ }, "node_modules/react-native-local-media-metadata": { "version": "0.1.0", - "resolved": "git+ssh://git@github.com/lyswhut/react-native-local-media-metadata.git#ca6bd48218d1ff69e8590d70eb58b5bf408a1892", - "integrity": "sha512-TFEASnEhuD0kfamVtetLqx0DgdPletV52Ydk135mng/KVVjk/XzYjJatc7gBwP69KWeac0cnIER31UpCwxwFhQ==", + "resolved": "git+ssh://git@github.com/lyswhut/react-native-local-media-metadata.git#c8377d82c04aecf5ee79d446276ab9d0c1f167be", + "integrity": "sha512-F/S2CWZSvSkhvXNs12igKYULvZgxDN4BODFfcvPHjmatUvYG3+WEGQepRtm6uhQVdkwhmRxeFEv1FUj7WKk5Ag==", "license": "MIT", "workspaces": [ "example" @@ -12422,9 +12422,9 @@ } }, "@react-native-clipboard/clipboard": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.13.1.tgz", - "integrity": "sha512-sXWYgjPOK9lDLJQ2AebYY4t19UKh0JLNzX/KTnNulS9XL7Hd4mFZPwPfL4ysF6/SiGJaP6QlEFQbOZA+x4SIPg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.13.2.tgz", + "integrity": "sha512-uVM55oEGc6a6ZmSATDeTcMm55A/C1km5X47g0xaoF0Zagv7N/8RGvLceA5L/izPwflIy78t7XQeJUcnGSib0nA==", "requires": {} }, "@react-native-community/cli": { @@ -13075,9 +13075,9 @@ "dev": true }, "@types/react": { - "version": "18.2.45", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.45.tgz", - "integrity": "sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==", + "version": "18.2.46", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.46.tgz", + "integrity": "sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w==", "dev": true, "requires": { "@types/prop-types": "*", @@ -17217,9 +17217,9 @@ } }, "react-native-local-media-metadata": { - "version": "git+ssh://git@github.com/lyswhut/react-native-local-media-metadata.git#ca6bd48218d1ff69e8590d70eb58b5bf408a1892", - "integrity": "sha512-TFEASnEhuD0kfamVtetLqx0DgdPletV52Ydk135mng/KVVjk/XzYjJatc7gBwP69KWeac0cnIER31UpCwxwFhQ==", - "from": "react-native-local-media-metadata@github:lyswhut/react-native-local-media-metadata#ca6bd48218d1ff69e8590d70eb58b5bf408a1892", + "version": "git+ssh://git@github.com/lyswhut/react-native-local-media-metadata.git#c8377d82c04aecf5ee79d446276ab9d0c1f167be", + "integrity": "sha512-F/S2CWZSvSkhvXNs12igKYULvZgxDN4BODFfcvPHjmatUvYG3+WEGQepRtm6uhQVdkwhmRxeFEv1FUj7WKk5Ag==", + "from": "react-native-local-media-metadata@github:lyswhut/react-native-local-media-metadata#c8377d82c04aecf5ee79d446276ab9d0c1f167be", "requires": {} }, "react-native-navigation": { diff --git a/package.json b/package.json index fb3f2f2..3715b67 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "dependencies": { "@craftzdog/react-native-buffer": "^6.0.5", "@react-native-async-storage/async-storage": "^1.21.0", - "@react-native-clipboard/clipboard": "^1.13.1", + "@react-native-clipboard/clipboard": "^1.13.2", "@react-native-community/slider": "^4.5.0", "iconv-lite": "^0.6.3", "lrc-file-parser": "^2.4.1", @@ -59,7 +59,7 @@ "react-native-fast-image": "^8.6.3", "react-native-file-system": "github:lyswhut/react-native-file-system#8124117c164d8f4d5298f9b695df570c04e7197a", "react-native-fs": "^2.20.0", - "react-native-local-media-metadata": "github:lyswhut/react-native-local-media-metadata#ca6bd48218d1ff69e8590d70eb58b5bf408a1892", + "react-native-local-media-metadata": "github:lyswhut/react-native-local-media-metadata#c8377d82c04aecf5ee79d446276ab9d0c1f167be", "react-native-navigation": "^7.37.2", "react-native-pager-view": "^6.2.3", "react-native-quick-base64": "^2.0.8", @@ -77,7 +77,7 @@ "@react-native/metro-config": "^0.73.2", "@react-native/typescript-config": "^0.74.0", "@tsconfig/react-native": "^3.0.2", - "@types/react": "^18.2.45", + "@types/react": "^18.2.46", "@types/react-native": "^0.72.8", "@types/react-native-background-timer": "^2.0.2", "@types/react-native-vector-icons": "^6.4.18", diff --git a/publish/changeLog.md b/publish/changeLog.md index 8642177..2cd315b 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,3 +1,5 @@ +据测试 v1.2.0 开始在已无法在 Android 5.1 上运行,所以我们专门为 Android 5.1 构建了特别版,同时墨·状态栏版也将包含在 release 中。 + ### 新增 - 新增自定义源(实验性功能),调用方式与PC端一致,但需要注意的是,移动端自定义源的环境与PC端不同,某些环境API不可用,详情看自定义说明文档 @@ -7,7 +9,8 @@ - 新增动态背景,启用后将使用当前播放歌曲封面做APP背景,默认关闭,可到设置-主题设置启用 - 新增APP全局字体阴影,默认关闭,可到设置-主题设置启用 - 新增启用竖屏首页横向滚动设置,默认开启(原来的行为),如果你不想要竖屏的首页左右滑动则可以关闭此设置(#397) -- 新增“使用系统文件选择器”设置,默认启用,启用该选项后,导入备份文件、自定义源等操作将不需要申请存储权限,但可能在某些系统上不可用。 +- 新增“使用系统文件选择器”设置,默认启用,启用该选项后,导入备份文件、自定义源等操作将不需要申请存储权限,但可能在某些系统上不可用 +- 添加 Android 5 特别版(版本号包含`android_5`)与墨·状态栏特别版(版本号包含`sl`)的 release 构建 ### 优化