Skip to content

Merge pull request #135 from half-nothing/v6 #345

Merge pull request #135 from half-nothing/v6

Merge pull request #135 from half-nothing/v6 #345

Workflow file for this run

name: Java CI
on:
push:
tags:
- 'v*'
branches:
- 'v*'
pull_request:
tags:
- 'v*'
branches:
- 'v*'
workflow_dispatch:
inputs:
force-update:
description: 'Force Flush Velocity Library Cache'
required: false
type: boolean
jobs:
velocity-lib:
runs-on: ubuntu-latest
steps:
- name: Check Ref
run: |
echo "Current ref: ${{ github.ref }}"
- 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
- 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: Build
uses: gradle/gradle-build-action@v2
with:
gradle-version: current
arguments: ShadowJar
- name: Cleanup Gradle Cache
run: |
rm -f ~/.gradle/caches/modules-2/modules-2.lock
rm -f ~/.gradle/caches/modules-2/gc.properties
- name: Upload a version suitable for velocity to artifact
if: ${{ ! startsWith(github.ref, 'refs/tags/') }}
uses: actions/upload-artifact@v3
with:
name: Velocity
path: velocity/build/libs/MultiLogin-Velocity-*.jar
retention-days: 15
- name: Upload a version suitable for bungee to artifact
if: ${{ ! startsWith(github.ref, 'refs/tags/') }}
uses: actions/upload-artifact@v3
with:
name: Bungee
path: bungee/build/libs/MultiLogin-Bungee-*.jar
retention-days: 15
- name: Upload a version suitable for bukkit to artifact
if: ${{ ! startsWith(github.ref, 'refs/tags/') }}
uses: actions/upload-artifact@v3
with:
name: Bukkit
path: bukkit/build/libs/MultiLogin-Bukkit-*.jar
retention-days: 15
- name: Rename Release
if: ${{ startsWith(github.ref, 'refs/tags/') }}
run: |
mkdir release
mv bukkit/build/libs/MultiLogin-Bukkit-Build_*.jar release/MultiLogin-Bukkit-${{ github.ref_name }}.jar
mv bungee/build/libs/MultiLogin-Bungee-Build_*.jar release/MultiLogin-Bungee-${{ github.ref_name }}.jar
mv velocity/build/libs/MultiLogin-Velocity-Build_*.jar release/MultiLogin-Velocity-${{ github.ref_name }}.jar
- name: Publish Release
if: ${{ startsWith(github.ref, 'refs/tags/') }}
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "${{ github.ref_name }}"
draft: false
prerelease: false
title: "MultiLogin ${{ github.ref_name }}"
files: release/*.jar