Add gradle_ci.yml #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Gradle CI | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
# 通过预定义的包管理器之一管理的依赖项的快速设置缓存 | |
# 它可以是maven、gradle或sbt之一 | |
cache: 'gradle' | |
- name: Check project version | |
run: | | |
chmod +x gradlew | |
# 读取当前gradle项目根模块的版本信息,检查版本号是否符合要求 | |
check_version_out=$(./gradlew checkVersion) | |
echo -e "check_version_out:\n\n$check_version_out" | |
# 若版本号检测不通过,则阻止发布 | |
if [ "$(echo "$check_version_out" | grep -i "results.passed=true")" == '' ]; then | |
echo 'Cannot publish development version!' | |
exit 10 | |
fi | |
- name: Clone remote maven repository | |
run: | | |
# 将kosaka-bun/maven-repo的git仓库clone到项目根目录下 | |
git clone ${{ secrets.REMOTE_MAVEN_REPO_URL }} | |
- id: gradle_build | |
name: Build with Gradle | |
run: | | |
# 打包,并发布到远程maven仓库在本地的一个拷贝当中 | |
./gradlew -PremoteMavenRepositoryUrl=$(pwd)/maven-repo/repository publish | |
# 将maven-repo/repository目录打包,然后将tar移动到另一个单独的目录中 | |
tar -zcf maven-repo.tar.gz maven-repo/repository | |
mkdir remote-maven-repo-copy | |
mv maven-repo.tar.gz remote-maven-repo-copy/ | |
- name: Upload remote maven repository as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
# 指定要上传的目录在上传到当前Actions运行实例的Artifacts当中时要使用的名字 | |
name: remote-maven-repo-copy | |
# 要上传的目录路径(以项目根目录为相对路径起始点) | |
path: remote-maven-repo-copy | |
publish: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Download temporary maven repository | |
uses: actions/download-artifact@v4 | |
with: | |
# 指定在之前的job当中,上传到Actions运行实例的Artifacts当中的目录所使用的名字 | |
name: remote-maven-repo-copy | |
# 指定要将这一目录下的所有内容(即不包含目录本身)下载到哪个位置(以项目根目录为相对路径起始点) | |
path: remote-maven-repo-copy | |
- name: Clone remote maven repository | |
run: | | |
# 将kosaka-bun/maven-repo的git仓库clone到项目根目录下 | |
git clone ${{ secrets.REMOTE_MAVEN_REPO_URL }} | |
- name: Merge maven repository and publish | |
run: | | |
# 解压maven-repo.tar.gz | |
cd remote-maven-repo-copy | |
tar -zxf maven-repo.tar.gz | |
cd .. | |
# 将[项目根目录]/remote-maven-repo-copy/maven-repo/repository下所有内容,复制到[项目根目录]/maven-repo/repository下 | |
# 并替换已存在的内容 | |
cp -rf remote-maven-repo-copy/maven-repo/repository/* maven-repo/repository/ | |
# 进入名为maven-repo的git仓库,设置提交者信息,然后提交并推送 | |
cd maven-repo/repository | |
git config --global user.name 'Kosaka Bun' | |
git config --global user.email '[email protected]' | |
git add . | |
git commit -m 'Update honoka-android-utils' | |
git push |