Skip to content

Update build.gradle #392

Update build.gradle

Update build.gradle #392

Workflow file for this run

name: Java CI
on:
push:
pull_request:
workflow_dispatch:
inputs:
force-update:
description: 'Force Flush Velocity Library Cache'
required: false
type: boolean
jobs:
velocity-lib:
runs-on: ubuntu-latest
steps:
- name: Get Velocity Library Cache
if: ${{ ! inputs.force-update }}
uses: actions/cache@v3
with:
path: velocity/libraries
key: ${{ runner.os }}-build-${{ env.cache-name }}}}
- name: Check library cache validity period
if: ${{ ! inputs.force-update }}
id: check-cache
run: |
if [ ! -e velocity/libraries/velocity-api-*.jar ]; then
echo "cache-hit=false" >> $GITHUB_ENV
else
last_modified=$(stat -c %Y velocity/libraries/velocity-api-*.jar)
current_time=$(date +%s)
elapsed_time=$((current_time - last_modified))
if ((elapsed_time > 30 * 24 * 60 * 60)); then
echo "cache-hit=false" >> $GITHUB_ENV
fi
fi
- name: Get Velocity
if: ${{ env.cache-hit == 'false' || inputs.force-update }}
uses: actions/checkout@v3
with:
repository: 'PaperMC/Velocity'
- name: Setup JDK 17
if: ${{ env.cache-hit == 'false' || inputs.force-update }}
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
cache: 'gradle'
- name: Build Velocity
if: ${{ env.cache-hit == 'false' || inputs.force-update }}
uses: gradle/gradle-build-action@v2
with:
gradle-version: current
arguments: build
- name: Collection Library
if: ${{ env.cache-hit == 'false' || inputs.force-update }}
run: |
mkdir -p velocity/libraries
cp api/build/libs/velocity-api-*-SNAPSHOT.jar velocity/libraries
cp proxy/build/libs/velocity-proxy-*-SNAPSHOT.jar velocity/libraries
- name: Cache Velocity Library
if: ${{ env.cache-hit == 'false' || inputs.force-update }}
uses: actions/cache@v3
with:
path: velocity/libraries
key: ${{ runner.os }}-build-${{ env.cache-name }}}}
build:
needs: velocity-lib
runs-on: ubuntu-latest
steps:
- name: 'Checkout'
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
cache: 'gradle'
- name: Get Velocity Library
uses: actions/cache@v3
with:
path: velocity/libraries
key: ${{ runner.os }}-build-${{ env.cache-name }}}}
- name: Patch Gradle Repositories
run:
sed -ni '/https:\/\/maven.aliyun.com\/repository\/public/{h;n;/https:\/\/repo1.maven.org\/maven2/!{:a;N;/https:\/\/maven.aliyun.com\/repository\/public/!ba;x;H;n};x;H;x};p' repositories
- name: Preprocessing Check
id: check
run: |
if [[ `git diff --name-only HEAD^ HEAD latest` ]]; then
sed -i "s/plugin_version=[0-9.]*$/plugin_version=`cat latest`/g" gradle.properties
echo "release=true" >> $GITHUB_ENV;
echo "version=`cat latest`" >> $GITHUB_ENV;
else
echo "release=false" >> $GITHUB_ENV;
fi
- name: Build Dev
if: env.release == 'false'
uses: gradle/gradle-build-action@v2
with:
gradle-version: current
arguments: ShadowJar
- name: Build Release
if: env.release == 'true'
uses: gradle/gradle-build-action@v2
with:
gradle-version: current
arguments: ShadowJar -Denv=final
- name: Cleanup Gradle Cache
run: |
rm -f ~/.gradle/caches/modules-2/modules-2.lock
rm -f ~/.gradle/caches/modules-2/gc.properties
- name: Publish Release
if: env.release == 'true'
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "v${{ env.version }}"
draft: false
prerelease: false
title: "MultiLogin v${{ env.version }}"
files: |
bukkit/build/libs/MultiLogin-Bukkit-${{ env.version }}.jar
bungee/build/libs/MultiLogin-Bungee-${{ env.version }}.jar
velocity/build/libs/MultiLogin-Velocity-${{ env.version }}.jar