-
Notifications
You must be signed in to change notification settings - Fork 2
66 lines (57 loc) · 2.3 KB
/
Copy pathci.yml
File metadata and controls
66 lines (57 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
name: CI
# push 到 main 或 PR 时触发:构建 universal debug(单 flavor 冒烟)+ 跑单元测试。
# 目的是合入前的兜底门禁,避免编译错误/回归推迟到打 tag 发版当天才暴露。
# 打 v* tag 的发版构建走 android-release.yml,不在这里。
on:
push:
branches: [ main ]
# 纯文档/资源改动不影响构建产物,跳过 CI 省时间(public 仓库虽不扣额度,但省 11 分钟等待)。
# 注意:只要本次 push 含任一非忽略路径的改动,CI 仍会触发。
paths-ignore:
- '**.md'
- 'docs/**'
- 'LICENSE'
- '.gitignore'
pull_request:
branches: [ main ]
paths-ignore:
- '**.md'
- 'docs/**'
- 'LICENSE'
- '.gitignore'
# 同分支新提交到来时取消正在跑的旧 run,省 CI 额度。
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build & Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
# versionCode 由 build.gradle.kts 的 gitCommitCount() 在配置阶段取
# git rev-list --count HEAD,浅克隆(默认 depth=1)会得到 1,必须拉完整历史。
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
with:
# PR 用只读缓存,仅 main 的 push 写回缓存,避免被 PR 污染。
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
# 单 flavor 冒烟:只构 universal debug(CLAUDE.md 规范:AI 改完编译型代码默认跑这个),
# 不构全量三 flavor,省三倍 Kotlin 编译。
- name: Build universal debug (smoke)
run: ./gradlew :app:assembleUniversalDebug --stacktrace
# 单元测试(app/src/test 下的 Kotlin 单测)。
# 只跑 universal debug 变体:单测逻辑与 flavor 无关(flavor 仅影响 abiFilters/assets),
# 跑全 flavor 6 变体是重复编译,无额外覆盖。
- name: Run unit tests
run: ./gradlew :app:testUniversalDebugUnitTest