Skip to content

Add gradle_ci.yml

Add gradle_ci.yml #1

Workflow file for this run

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