
自动构建CI/CD yml脚本
name: Build & Upload to Release
on:
push:
branches: [ main ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
- name: Setup Gradle 6.5
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: '6.5'
# 自动生成签名
- name: Generate signing keystore
run: |
keytool -genkey -v \
-keystore app/keystore.jks \
-alias release \
-keyalg RSA -keysize 2048 -validity 36500 \
-storepass release -keypass release \
-dname "CN=App"
# 自动写入签名配置
- name: Write signing config
run: |
echo "KEYSTORE_FILE=keystore.jks" >> local.properties
echo "KEYSTORE_PASSWORD=release" >> local.properties
echo "KEY_ALIAS=release" >> local.properties
echo "KEY_PASSWORD=release" >> local.properties
# 修复仓库并构建
- name: Fix repo and build
run: |
sed -i 's/jcenter()/mavenCentral()/g' build.gradle
gradle assembleRelease
- name: Create Version Tag
id: tag
run: echo "tag=v$(date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT
- name: Upload to GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.tag.outputs.tag }}
name: "PCOSAnd_ScreenDisplay ${{ steps.tag.outputs.tag }}"
body: "屏幕显示工具自动构建"
files: app/build/outputs/apk/release/*.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
一、整体作用
这段代码放在项目的 .github/workflows/ 目录下,是 GitHub 的自动化工作流 。只要你推代码到 main 分支 ,或者手动触发,它就会:
- 自动拉代码
- 配置 Java、Gradle 环境
- 自动生成签名文件(打包 APK 必须)
- 自动写入签名配置
- 自动编译出正式 APK
- 自动创建版本标签
- 自动把 APK 发布到 GitHub Release
二、逐行解释
- 工作流名称
yaml
name: Build & Upload to Release
给这个自动化任务起个名字:构建并上传到发布页
2. 触发条件(什么时候自动运行)
yaml
on:
push:
branches: [ main ] # 推代码到 main 分支时自动运行
workflow_dispatch: # 允许你在 GitHub 页面手动触发
两种触发方式:
- 你提交代码 → 自动构建
- 你去 GitHub 点一下按钮 → 手动构建
3. 任务配置
yaml
jobs:
build:
runs-on: ubuntu-latest # 在最新版 Ubuntu 虚拟机上运行
permissions:
contents: write # 给权限:允许写仓库、创建 Release
4. 步骤:拉取代码
yaml
- uses: actions/checkout@v4
把你的 GitHub 代码拉到虚拟机里。
5. 步骤:配置 Java 环境
yaml
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
Android 构建需要 Java,这里安装 JDK 11。
6. 步骤:配置 Gradle 版本
yaml
- name: Setup Gradle 6.5
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: '6.5'
安装指定的 Gradle 6.5 构建工具。
7. 步骤:自动生成签名文件(关键)
yaml
- name: Generate signing keystore
run: |
keytool -genkey -v \
-keystore app/keystore.jks \
-alias release \
-keyalg RSA -keysize 2048 -validity 36500 \
-storepass release -keypass release \
-dname "CN=App"
作用 :Android 正式 APK 必须签名才能安装,这段代码自动生成签名文件,密码全部设为:
- 仓库密码:release
- 密钥密码:release
- 别名:release
8. 步骤:自动写入签名配置
yaml
- name: Write signing config
run: |
echo "KEYSTORE_FILE=keystore.jks" >> local.properties
echo "KEYSTORE_PASSWORD=release" >> local.properties
echo "KEY_ALIAS=release" >> local.properties
echo "KEY_PASSWORD=release" >> local.properties
把签名信息写入配置文件,让构建脚本能读到。
9. 步骤:修复依赖仓库 + 构建正式 APK
yaml
- name: Fix repo and build
run: |
sed -i 's/jcenter()/mavenCentral()/g' build.gradle
gradle assembleRelease
- 把废弃的 jcenter 仓库换成 mavenCentral(避免构建失败)
- 执行构建命令:
assembleRelease - 输出:正式签名的 APK 文件
10. 步骤:生成版本号标签
yaml
- name: Create Version Tag
id: tag
run: echo "tag=v$(date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT
用当前时间生成标签,例如:v202512291530
11. 步骤:上传 APK 到 GitHub Release
yaml
- name: Upload to GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.tag.outputs.tag }}
name: "PCOSAnd_ScreenDisplay ${{ steps.tag.outputs.tag }}"
body: "屏幕显示工具自动构建"
files: app/build/outputs/apk/release/*.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
最终步骤:
- 创建一个 GitHub Release
- 标题:PCOSAnd_ScreenDisplay + 时间版本号
- 描述:屏幕显示工具自动构建
- 上传:构建好的正式 APK
- 使用 GitHub 自动提供的密钥进行上传
三、最终效果(你能看到什么)
每次运行成功后,去你的 GitHub 仓库 → Releases 页面,就能看到:
- 一个带时间戳的新版本
- 里面有可以直接安装的 正式版 APK
- 全程不需要你打开 Android Studio、不需要手动打包
四、总结(最核心的 3 点)
- 这是 GitHub 自动化构建脚本
- 自动编译 Android 项目 → 生成正式签名 APK
- 自动发布到 GitHub Release,供下载安装
原创永久分成,共赴星辰大海
原创创意共创、永久收益分成,是东方仙盟始终坚守的核心理念。我们坚信,每一份原创智慧都值得被尊重与回馈,以永久分成锚定共创初心,让创意者长期享有价值红利,携手万千伙伴向着科技星辰大海笃定前行,拥抱硅基 生命与数字智能交融的未来,共筑跨越时代的数字文明共同体。
东方仙盟:拥抱知识开源,共筑数字新生态
在全球化与数字化浪潮中,东方仙盟始终秉持开放协作、知识共享的理念,积极拥抱开源技术与开放标准。我们相信,唯有打破技术壁垒、汇聚全球智慧,才能真正推动行业的可持续发展。
开源赋能中小商户:通过将前端异常检测、跨系统数据互联等核心能力开源化,东方仙盟为全球中小商户提供了低成本、高可靠的技术解决方案,让更多商家能够平等享受数字转型的红利。
共建行业标准:我们积极参与国际技术社区,与全球开发者、合作伙伴共同制定开放协议 与技术规范,推动跨境零售、文旅、餐饮等多业态的系统互联互通,构建更加公平、高效的数字生态。
知识普惠,共促发展:通过开源社区 、技术文档与培训体系,东方仙盟致力于将前沿技术转化为可落地的行业实践,赋能全球合作伙伴,共同培育创新人才,推动数字经济 的普惠式增长
阿雪技术观
在科技发展浪潮中,我们不妨积极投身技术共享。不满足于做受益者,更要主动担当贡献者 。无论是分享代码、撰写技术博客,还是参与开源项目 维护改进,每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地,我们携手在此探索硅基 生命,为科技进步添砖加瓦。
Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Don't just be the one reaping all the benefits; step up and be a contributor too. Whether you're tossing out your code snippets , hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. We're gonna team up and explore the whole silicon - based life thing, and in the process, we'll be fueling the growth of technology