fix tests #174
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
push: | |
tags: [ 'v*' ] | |
jobs: | |
create-release: | |
name: Create Release | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Get Tag # usage: ${{ steps.tag.outputs.tag }} | |
id: tag | |
uses: dawidd6/action-get-tag@v1 | |
- uses: bhowell2/[email protected] | |
id: tag-version # usage: ${{ steps.tag-version.outputs.substring }} | |
with: | |
value: ${{ steps.tag.outputs.tag }} | |
index_of_str: "v" | |
default_return_value: ${{ steps.tag.outputs.tag }} | |
- name: Create Release | |
id: create_release | |
uses: softprops/action-gh-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ steps.tag.outputs.tag }} | |
name: ${{ steps.tag-version.outputs.substring }} | |
# 修改 release-template.md 然后复制过来 | |
body: | | |
Automatically created from tag ${{ steps.tag.outputs.tag }}. Do not change anything until assets are uploaded. | |
---- | |
### 下载 | |
<details> | |
<summary>点击展开</summary> | |
[//]: # (注意, `checkLatestVersion` 有字符串处理, 修改标题和分隔符前务必查询) | |
[github-win-x64]: https://github.com/open-ani/ani/releases/download/${{steps.tag.outputs.tag}}/ani-${{steps.tag-version.outputs.substring}}-windows-x86_64.zip | |
[github-mac-x64]: https://github.com/open-ani/ani/releases/download/${{steps.tag.outputs.tag}}/ani-${{steps.tag-version.outputs.substring}}-macos-x86_64.dmg | |
[github-mac-aarch64]: https://github.com/open-ani/ani/releases/download/${{steps.tag.outputs.tag}}/ani-${{steps.tag-version.outputs.substring}}-macos-aarch64.dmg | |
[github-android]: https://github.com/open-ani/ani/releases/download/${{steps.tag.outputs.tag}}/ani-${{steps.tag-version.outputs.substring}}.apk | |
[cf-win-x64]: https://d.myani.org/${{steps.tag.outputs.tag}}/ani-${{steps.tag-version.outputs.substring}}-windows-x86_64.zip | |
[cf-mac-x64]: https://d.myani.org/${{steps.tag.outputs.tag}}/ani-${{steps.tag-version.outputs.substring}}-macos-x86_64.dmg | |
[cf-mac-aarch64]: https://d.myani.org/${{steps.tag.outputs.tag}}/ani-${{steps.tag-version.outputs.substring}}-macos-aarch64.dmg | |
[cf-android]: https://d.myani.org/${{steps.tag.outputs.tag}}/ani-${{steps.tag-version.outputs.substring}}.apk | |
[ghproxy-win-x64]: https://mirror.ghproxy.com/?q=https%3A%2F%2Fgithub.com%2Fopen-ani%2Fani%2Freleases%2Fdownload%2F${{steps.tag.outputs.tag}}%2Fani-${{steps.tag-version.outputs.substring}}-windows-x86_64.zip | |
[ghproxy-mac-x64]: https://mirror.ghproxy.com/?q=https%3A%2F%2Fgithub.com%2Fopen-ani%2Fani%2Freleases%2Fdownload%2F${{steps.tag.outputs.tag}}%2Fani-${{steps.tag-version.outputs.substring}}-macos-x86_64.dmg | |
[ghproxy-mac-aarch64]: https://mirror.ghproxy.com/?q=https%3A%2F%2Fgithub.com%2Fopen-ani%2Fani%2Freleases%2Fdownload%2F${{steps.tag.outputs.tag}}%2Fani-${{steps.tag-version.outputs.substring}}-macos-aarch64.dmg | |
[ghproxy-android]: https://mirror.ghproxy.com/?q=https%3A%2F%2Fgithub.com%2Fopen-ani%2Fani%2Freleases%2Fdownload%2F${{steps.tag.outputs.tag}}%2Fani-${{steps.tag-version.outputs.substring}}.apk | |
[qb-enhanced]: https://github.com/c0re100/qBittorrent-Enhanced-Edition/releases/latest | |
PC 目前默认只使用在线数据源。 | |
若本机装有 qBittorrent 或 [qBittorrent Enhanced][qb-enhanced], 则可额外支持 BT 数据源。注意,本功能仍在测试中。 | |
可在设置中配置 qBittorrent 连接方式, 随后可在数据源设置中启用 BT 数据源。 | |
PC 首次播放在线数据源时, 可能需要加载 10-30 秒。 | |
| 操作系统 | 全球 | 中国大陆 | | |
|-------------------------|------------------------------|--------------------------------------------------| | |
| Windows x86_64 | [GitHub][github-win-x64] | [主线][cf-win-x64] / [备线][ghproxy-win-x64] | | |
| macOS x86_64 (Intel 芯片) | [GitHub][github-mac-x64] | [主线][cf-mac-x64] / [备线][ghproxy-mac-x64] | | |
| macOS aarch64 (M 系列芯片) | [GitHub][github-mac-aarch64] | [主线][cf-mac-aarch64] / [备线][ghproxy-mac-aarch64] | | |
| Android APK aarch64 | [GitHub][github-android] | [主线][cf-android] / [备线][ghproxy-android] | | |
扫描二维码下载 Android 版本: | |
[github-android-qr]: https://github.com/open-ani/ani/releases/download/${{steps.tag.outputs.tag}}/ani-${{steps.tag-version.outputs.substring}}.apk.github.qrcode.png | |
[cf-android-qr]: https://d.myani.org/${{steps.tag.outputs.tag}}/ani-${{steps.tag-version.outputs.substring}}.apk.cloudflare.qrcode.png | |
| 全球 | 中国大陆 | | |
|------------------------------|------------------------------| | |
| ![GitHub][github-android-qr] | ![Cloudflare][cf-android-qr] | | |
</details> | |
draft: true | |
prerelease: false | |
outputs: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
id: ${{ steps.create_release.outputs.id }} | |
release: | |
needs: [ create-release ] | |
name: ${{ matrix.name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- windows-2022 | |
# - ubuntu-20.04 | |
- macos-12 # x86_64 | |
- macos-14 # aarch64 | |
include: | |
- os: windows-2022 | |
name: Windows x86_64 | |
uploadApk: false | |
arch: x64 | |
- os: macos-12 | |
name: macOS x86_64 | |
uploadApk: false | |
arch: x64 | |
- os: macos-14 | |
name: macOS aarch64 | |
uploadApk: true | |
arch: aarch64 | |
env: | |
enableLocalPublishingTest: 'false' | |
gradleArgs: >- | |
--scan | |
"-Dorg.gradle.jvmargs=-Xmx4096m" | |
"-Dfile.encoding=UTF-8" | |
--no-daemon | |
--no-configuration-cache | |
"-Pbangumi.oauth.client.android.appId=${{ secrets.BANGUMI_OAUTH_CLIENT_ANDROID_ID }}" | |
"-Pbangumi.oauth.client.android.secret=${{ secrets.BANGUMI_OAUTH_CLIENT_ANDROID_SECRET }}" | |
"-Pbangumi.oauth.client.desktop.appId=${{ secrets.BANGUMI_OAUTH_CLIENT_DESKTOP_ID }}" | |
"-Pbangumi.oauth.client.desktop.secret=${{ secrets.BANGUMI_OAUTH_CLIENT_DESKTOP_SECRET }}" | |
isMac: ${{ startsWith(matrix.os, 'macos') }} | |
isWindows: ${{ startsWith(matrix.os, 'windows') }} | |
isUbuntu: ${{ startsWith(matrix.os, 'ubuntu') }} | |
isUnix: ${{ startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu') }} | |
uploadApk: ${{ matrix.uploadApk == 'true' || matrix.uploadApk == true }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Get Tag # usage: ${{ steps.tag.outputs.tag }} | |
id: tag | |
uses: dawidd6/action-get-tag@v1 | |
- uses: bhowell2/[email protected] | |
id: tag-version # usage: ${{ steps.tag-version.outputs.substring }} | |
with: | |
value: ${{ steps.tag.outputs.tag }} | |
index_of_str: "v" | |
default_return_value: ${{ steps.tag.outputs.tag }} | |
- if: ${{ env.isUnix == 'true' }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 17 | |
architecture: ${{ matrix.arch }} | |
- if: ${{ env.isWindows == 'true' }} | |
uses: actions/setup-java@v2 | |
with: | |
distribution: microsoft | |
java-version: 17 | |
architecture: ${{ matrix.arch }} | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- if: ${{ env.isUnix == 'true' }} | |
run: chmod -R 777 * | |
- name: Update version name | |
run: ./gradlew updateReleaseVersionNameFromGit ${{ env.gradleArgs }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_REPOSITORY: ${{ secrets.GITHUB_REPOSITORY }} | |
CI_RELEASE_ID: ${{ needs.create-release.outputs.id }} | |
CI_TAG: ${{ steps.tag.outputs.tag }} | |
- name: Explicitly generate Compose resources | |
run: ./gradlew generateComposeResClass ${{ env.gradleArgs }} | |
- if: ${{ env.uploadApk == 'true' }} | |
name: Prepare Android Signing Key | |
id: android_signing_key | |
uses: timheuer/[email protected] | |
with: | |
fileName: 'android_signing_key' | |
fileDir: './' | |
encodedString: ${{ secrets.SIGNING_RELEASE_STOREFILE }} | |
- name: Check | |
run: ./gradlew check ${{ env.gradleArgs }} | |
- if: ${{ env.uploadApk == 'true' }} | |
name: Build Android APK | |
run: ./gradlew assembleRelease ${{ env.gradleArgs }} | |
env: | |
"signing_release_storeFileFromRoot": ${{ steps.android_signing_key.outputs.filePath }} | |
"signing_release_storePassword": ${{ secrets.SIGNING_RELEASE_STOREPASSWORD }} | |
"signing_release_keyAlias": ${{ secrets.SIGNING_RELEASE_KEYALIAS }} | |
"signing_release_keyPassword": ${{ secrets.SIGNING_RELEASE_KEYPASSWORD }} | |
- if: ${{ env.uploadApk == 'true' }} | |
name: Upload Android APK | |
run: "./gradlew :ci-helper:uploadAndroidApk ${{ env.gradleArgs }}" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_REPOSITORY: ${{ secrets.GITHUB_REPOSITORY }} | |
CI_RELEASE_ID: ${{ needs.create-release.outputs.id }} | |
CI_TAG: ${{ steps.tag.outputs.tag }} | |
UPLOAD_TO_S3: true | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_BASEURL: ${{ secrets.AWS_BASEURL }} | |
AWS_REGION: ${{ secrets.AWS_REGION }} | |
AWS_BUCKET: ${{ secrets.AWS_BUCKET }} | |
- if: ${{ env.uploadApk == 'true' }} | |
name: Generate QR code for APK (GitHub) | |
uses: snow-actions/[email protected] | |
with: | |
text: https://github.com/Him188/ani/releases/download/${{ steps.tag.outputs.tag }}/ani-${{ steps.tag-version.outputs.substring }}.apk | |
path: apk-qrcode-github.png | |
- if: ${{ env.uploadApk == 'true' }} | |
name: Generate QR code for APK (Cloudflare) | |
uses: snow-actions/[email protected] | |
with: | |
text: https://d.myani.org/${{ steps.tag.outputs.tag }}/ani-${{ steps.tag-version.outputs.substring }}.apk | |
path: apk-qrcode-cloudflare.png | |
- if: ${{ env.uploadApk == 'true' }} | |
name: Upload QR code | |
run: "./gradlew :ci-helper:uploadAndroidApkQR ${{ env.gradleArgs }}" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_REPOSITORY: ${{ secrets.GITHUB_REPOSITORY }} | |
CI_RELEASE_ID: ${{ needs.create-release.outputs.id }} | |
CI_TAG: ${{ steps.tag.outputs.tag }} | |
UPLOAD_TO_S3: true | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_BASEURL: ${{ secrets.AWS_BASEURL }} | |
AWS_REGION: ${{ secrets.AWS_REGION }} | |
AWS_BUCKET: ${{ secrets.AWS_BUCKET }} | |
# createReleaseDistributable | |
# packageReleaseDistributionForCurrentOS | |
# packageReleaseUberJarForCurrentOS | |
# Upload assets for release | |
- name: Upload Desktop Installers | |
run: "./gradlew :ci-helper:uploadDesktopInstallers ${{ env.gradleArgs }}" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_REPOSITORY: ${{ secrets.GITHUB_REPOSITORY }} | |
CI_RELEASE_ID: ${{ needs.create-release.outputs.id }} | |
CI_TAG: ${{ steps.tag.outputs.tag }} | |
UPLOAD_TO_S3: true | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_BASEURL: ${{ secrets.AWS_BASEURL }} | |
AWS_REGION: ${{ secrets.AWS_REGION }} | |
AWS_BUCKET: ${{ secrets.AWS_BUCKET }} | |
# apk-qrcode: | |
# needs: [ release ] | |
# runs-on: ubuntu-22.04 | |
# steps: | |
# - id: update_release | |
# uses: tubone24/[email protected] | |
# env: | |
# GITHUB_TOKEN: ${{ github.token }} | |
# with: | |
# body: \n\n![](${{ needs.release.outputs.apk_qr_url }}) | |
# steps: | |
# - name: Checkout | |
# uses: actions/checkout@v2 | |
# | |
# - name: Set up JDK 11 | |
# uses: actions/setup-java@v1 | |
# with: | |
# java-version: 11 | |
# | |
# - name: Grant Execute Permission for gradlew | |
# run: chmod +x gradlew | |
# | |
# - run: ./gradlew mirai-api-http:checkMavenCentralPublication --info --scan | |
# env: | |
# PUBLICATION_CREDENTIALS: ${{ secrets.PUBLICATION_CREDENTIALS }} | |
# | |
# - name: Build with Gradle | |
# run: ./gradlew buildCiJar | |
# | |
# - name: Get Tag | |
# id: tag | |
# uses: dawidd6/action-get-tag@v1 | |
# | |
# - name: Generate Line Temp File | |
# run: "cat CHANGELOG.md | grep -n '## \\\\' | cut -d: -f1 | head -n 2 >> line.tmp" | |
# | |
# - name: Generate Release Log | |
# run: "cat CHANGELOG.md | head -n $((`tail -n 1 line.tmp`-1)) | tail -n +`head -n 1 line.tmp` >> release.log" | |
# | |
# - name: Create Release | |
# id: create_release | |
# uses: actions/create-release@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# tag_name: ${{ github.ref }} | |
# release_name: mirai-api-http-${{ steps.tag.outputs.tag }} | |
# body_path: release.log | |
# draft: false | |
# prerelease: false |