Android CI

This commit is contained in:
pppscn 2021-11-22 16:23:56 +08:00
parent a820971ee3
commit f68180d41e
2 changed files with 87 additions and 81 deletions

View File

@ -1,79 +1,85 @@
name: Android CI name: Build SmsForwarder
# 触发器 # 触发器
on: on:
push: push:
tags: tags:
- v* - v*
pull_request: pull_request:
tags: tags:
- v* - v*
workflow_dispatch:
jobs: inputs:
build: root_sol:
description: "Release title"
runs-on: ubuntu-latest required: true
# if: github.event.repository.owner.id == github.event.sender.id default: "SmsForwarder"
# 设置jdk环境为1.8 jobs:
steps: build:
- uses: actions/checkout@v2
- name: set up JDK 1.8 runs-on: ubuntu-latest
uses: actions/setup-java@v1 # if: github.event.repository.owner.id == github.event.sender.id
with:
java-version: 1.8 # 设置jdk环境为11
# ref: dev steps:
# 获取打包秘钥 - uses: actions/checkout@v2
- name: Checkout Android Keystore - name: set up JDK 11
uses: actions/checkout@v2 uses: actions/setup-java@v1
with: with:
repository: pppscn/keystore java-version: 11
token: ${{ secrets.TOKEN }} # 连接仓库的token,需要单独配置 # ref: dev
path: keystore # 仓库的根目录名 # 获取打包秘钥
# 打包release - name: Checkout Android Keystore
- name: Build with Gradle uses: actions/checkout@v2
run: bash ./gradlew assembleRelease with:
# 创建release repository: pppscn/keystore
- name: Create Release token: ${{ secrets.TOKEN }} # 连接仓库的token,需要单独配置
id: create_release path: keystore # 仓库的根目录名
uses: actions/create-release@v1 # 打包release
env: - name: Build with Gradle
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: bash ./gradlew assembleRelease
#GitHub 会自动创建 GITHUB_TOKEN 密码以在工作流程中使用。 # 创建release
#您可以使用 GITHUB_TOKEN 在工作流程运行中进行身份验证。 - name: Create Release
#当您启用 GitHub Actions 时GitHub 在您的仓库中安装 GitHub 应用程序。 id: create_release
#GITHUB_TOKEN 密码是一种 GitHub 应用程序 安装访问令牌。 uses: actions/create-release@v1
#您可以使用安装访问令牌代表仓库中安装的 GitHub 应用程序 进行身份验证。 env:
#令牌的权限仅限于包含您的工作流程的仓库。 更多信息请参阅“GITHUB_TOKEN 的权限”。 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
#在每个作业开始之前, GitHub 将为作业提取安装访问令牌。 令牌在作业完成后过期。 #GitHub 会自动创建 GITHUB_TOKEN 密码以在工作流程中使用。
with: #您可以使用 GITHUB_TOKEN 在工作流程运行中进行身份验证。
tag_name: ${{ github.ref }} #当您启用 GitHub Actions 时GitHub 在您的仓库中安装 GitHub 应用程序。
release_name: Release ${{ github.ref }} #GITHUB_TOKEN 密码是一种 GitHub 应用程序 安装访问令牌。
draft: false #您可以使用安装访问令牌代表仓库中安装的 GitHub 应用程序 进行身份验证。
prerelease: false #令牌的权限仅限于包含您的工作流程的仓库。 更多信息请参阅“GITHUB_TOKEN 的权限”。
# 获取apk版本号 #在每个作业开始之前, GitHub 将为作业提取安装访问令牌。 令牌在作业完成后过期。
- name: Get Version Name with:
uses: actions/github-script@v3 tag_name: ${{ github.ref }}
id: get-version release_name: Release ${{ github.ref }}
with: draft: false
script: | prerelease: false
const str=process.env.GITHUB_REF; # 获取apk版本号
return str.substring(str.indexOf("v")); - name: Get Version Name
result-encoding: string uses: actions/github-script@v3
# 上传至release的资源 id: get-version
- name: Upload Release Asset with:
id: upload-release-asset script: |
uses: actions/upload-release-asset@v1 const str=process.env.GITHUB_REF;
env: return str.substring(str.indexOf("v"));
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} result-encoding: string
with: # 存档打包的文件
upload_url: ${{ steps.create_release.outputs.upload_url }} # 上传网址,无需改动 - name: Archive production artifacts
asset_path: app/build/outputs/apk/release/app-release.apk # 上传路径 uses: actions/upload-artifact@v2
asset_name: SmsForwarder-${{steps.get-version.outputs.result}}.apk # 资源名 with:
asset_content_type: application/vnd.android.package-archiv #资源类型 name: build
# 存档打包的文件 path: app/build/outputs #将打包之后的文件全部上传里面会有混淆的map文件
- name: Archive production artifacts # 上传至release的资源
uses: actions/upload-artifact@v2 - name: Upload Release Asset
with: id: upload-release-asset
name: build uses: actions/upload-release-asset@v1
path: app/build/outputs #将打包之后的文件全部上传里面会有混淆的map文件 env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # 上传网址,无需改动
asset_path: app/build/outputs/apk/release/app-release.apk # 上传路径
asset_name: SmsForwarder-${{steps.get-version.outputs.result}}.apk # 资源名
asset_content_type: application/vnd.android.package-archiv #资源类型

View File

@ -17,8 +17,8 @@ android {
buildToolsVersion '30.0.3' buildToolsVersion '30.0.3'
compileSdkVersion 30 compileSdkVersion 30
compileOptions { compileOptions {
sourceCompatibility 1.8 sourceCompatibility 11
targetCompatibility 1.8 targetCompatibility 11
} }
defaultConfig { defaultConfig {
applicationId "com.idormy.sms.forwarder" applicationId "com.idormy.sms.forwarder"