mirror of
https://github.com/pppscn/SmsForwarder
synced 2025-08-03 01:17:41 +08:00
82 lines
3.6 KiB
YAML
82 lines
3.6 KiB
YAML
name: Weekly Build
|
||
|
||
# 触发器
|
||
on:
|
||
schedule:
|
||
- cron: '0 15 * * 0' #每周天在国际标准时间15点(北京时间+8,即 23:00)
|
||
workflow_dispatch:
|
||
inputs:
|
||
root_sol:
|
||
description: "Weekly Build Title"
|
||
required: true
|
||
default: "SmsForwarder"
|
||
|
||
jobs:
|
||
build:
|
||
runs-on: ubuntu-latest
|
||
env:
|
||
output: "${{ github.workspace }}/build/app/outputs/apk/release"
|
||
steps:
|
||
# 检出代码
|
||
- uses: actions/checkout@v4
|
||
# 删除旧的工作流
|
||
- name: Delete Weekly Build
|
||
uses: Mattraks/delete-workflow-runs@v2
|
||
with:
|
||
token: ${{ github.token }}
|
||
repository: ${{ github.repository }}
|
||
retain_days: 0 # 全部删除只留正在跑的一条
|
||
keep_minimum_runs: 0 # 全部删除只留正在跑的一条
|
||
delete_workflow_pattern: 'Weekly Build'
|
||
# 设置jdk环境为11
|
||
- name: set up JDK 11
|
||
uses: actions/setup-java@v1
|
||
with:
|
||
java-version: 11
|
||
# 获取打包秘钥
|
||
- name: Checkout Android Keystore
|
||
uses: actions/checkout@v4
|
||
with:
|
||
repository: pppscn/keystore
|
||
token: ${{ secrets.TOKEN }} # 连接仓库的token,需要单独配置
|
||
path: keystore # 仓库的根目录名
|
||
# 打包release
|
||
- name: Build with Gradle
|
||
run: bash ./gradlew assembleRelease
|
||
# 存档打包的文件,以便后续上传,TODO: 看起来有点笨,有没有更好的方法?
|
||
- name: Init APP Version Name
|
||
run: |
|
||
echo "ver_name=$(grep -m 1 '\"versionName\":' ${{ env.output }}//output-metadata.json | grep -oP '\"versionName\": \"\K[^\"]+')" >> $GITHUB_ENV
|
||
echo "ver_code=$(grep -m 1 '\"versionCode\":' ${{ env.output }}//output-metadata.json | grep -oP '\"versionCode\": \K\d+' | tail -c 4)" >> $GITHUB_ENV
|
||
echo "ver_date=$(grep -m 1 '\"outputFile\":' ${{ env.output }}//output-metadata.json | grep -oP '\"outputFile\": \"[^\"]+' | grep -oP '\d{8}')" >> $GITHUB_ENV
|
||
- name: Upload App To Artifact universal
|
||
if: success () || failure ()
|
||
uses: actions/upload-artifact@v3
|
||
with:
|
||
name: "SmsF_${{ env.ver_name }}_100${{ env.ver_code }}_universal_${{ env.ver_date }}_release.apk"
|
||
path: "${{ env.output }}//SmsF_*_universal_*.apk"
|
||
- name: Upload App To Artifact armeabi-v7a
|
||
if: success () || failure ()
|
||
uses: actions/upload-artifact@v3
|
||
with:
|
||
name: "SmsF_${{ env.ver_name }}_200${{ env.ver_code }}_armeabi-v7a_${{ env.ver_date }}_release.apk"
|
||
path: "${{ env.output }}//SmsF_*_armeabi-v7a_*.apk"
|
||
- name: Upload App To Artifact arm64-v8a
|
||
if: success () || failure ()
|
||
uses: actions/upload-artifact@v3
|
||
with:
|
||
name: "SmsF_${{ env.ver_name }}_300${{ env.ver_code }}_arm64-v8a_${{ env.ver_date }}_release.apk"
|
||
path: "${{ env.output }}//SmsF_*_arm64-v8a_*.apk"
|
||
- name: Upload App To Artifact x86
|
||
if: success () || failure ()
|
||
uses: actions/upload-artifact@v3
|
||
with:
|
||
name: "SmsF_${{ env.ver_name }}_400${{ env.ver_code }}_x86_${{ env.ver_date }}_release.apk"
|
||
path: "${{ env.output }}//SmsF_*_x86_${{ env.ver_date }}_*.apk"
|
||
- name: Upload App To Artifact x86_64
|
||
if: success () || failure ()
|
||
uses: actions/upload-artifact@v3
|
||
with:
|
||
name: "SmsF_${{ env.ver_name }}_500${{ env.ver_code }}_x86_64_${{ env.ver_date }}_release.apk"
|
||
path: "${{ env.output }}//SmsF_*_x86_64_${{ env.ver_date }}_*.apk"
|