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