mirror of
https://github.com/TotalFreedomMC/OpenInv.git
synced 2024-06-21 13:30:49 +00:00
![Adam](/assets/img/avatar_default.png)
With the recent uptick in requests for support by people running 1.12 who have recently updated past Java 9, I revisited the supported versions. First, the "modern" versions: 1.15 is run by 2.9% of servers, 1.16.3 by 5%. Since all of these versions are supported to ease the transition of updating servers and servers have updated, there's no real reason to keep them around. It's a lot easier if you can update a plugin and just have it work on both versions rather than push all the plugin updates to master with the server update, but none of these versions have any reason for long-term support. Regarding heavily outdated server software: As of the time of writing, 1.8 and 1.12 have market shares of 8.6% and 8.5% of servers respectively. Regarding 1.8: 1.8 support is already a bit wonky - with the changes made to inventory names, it's not (easily) possible to bridge the gap, and future changes will make that more and more difficult. People use 1.8 because they disliked the 1.9 combat changes, but there are plugins that fully rework combat to how it used to be. I have yet to hear a compelling argument that cannot be resolved with plugins. In the interest of my own sanity (handling and backporting the inventory name change in particular was a real humdinger) I will no longer be backporting changes to 1.8. Regarding 1.12: I am honestly not sure why people are not updating. I get it, 1.13 and the flattening was a rough transition, but pretty much every developer active at the time bridged the gap. If your server is heavily dependent on some software only available at that time, you can live with other software available at that time. At the time of 1.12's release, Java 9 was not released. Either update your server, downgrade Java, or fork OpenInv and backport Java 9 support yourself.
90 lines
2.5 KiB
YAML
90 lines
2.5 KiB
YAML
name: OpenInv CI
|
|
|
|
on:
|
|
push:
|
|
create:
|
|
types: [tag]
|
|
pull_request_target:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: true
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set Up Java
|
|
uses: actions/setup-java@v1
|
|
with:
|
|
java-version: 1.8
|
|
|
|
# Use cache to speed up build
|
|
- name: Cache Maven Repo
|
|
uses: actions/cache@v2
|
|
id: cache
|
|
with:
|
|
path: ~/.m2/repository
|
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
|
|
|
# If the cache was not present, run BuildTools to install the relevant versions to Maven.
|
|
# This will take approximately forever.
|
|
- name: Install Spigot Dependencies
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
run: |
|
|
mkdir ~/buildtools
|
|
cd ~/buildtools
|
|
wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
|
|
java -jar BuildTools.jar --rev 1.16.4
|
|
|
|
- name: Build With Maven
|
|
run: mvn -e clean package -am -P all
|
|
|
|
# Upload artifacts
|
|
- name: Upload Distributable Jar
|
|
id: upload-final
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: dist
|
|
path: ./target/OpenInv.jar
|
|
- name: Upload API Jar
|
|
id: upload-api
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: api
|
|
path: ./api/target/openinvapi*.jar
|
|
|
|
release:
|
|
name: Create Github Release
|
|
needs: [ build ]
|
|
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Download Artifacts
|
|
uses: actions/download-artifact@v2
|
|
|
|
- name: Create Release
|
|
id: create-release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ github.ref }}
|
|
release_name: Release ${{ github.ref }}
|
|
draft: true
|
|
prerelease: false
|
|
|
|
- name: Upload Release Asset
|
|
id: upload-release-asset
|
|
uses: actions/upload-release-asset@v1.0.2
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create-release.outputs.upload_url }}
|
|
asset_path: ./OpenInv.jar
|
|
asset_name: OpenInv.jar
|
|
asset_content_type: application/java-archive |