Github action for testing minecraft plugins initialization during server load on different versions of paper server.
- Checkout repository (in the context of the action caller)
- Download plugin build artifact from previous workflow build job
- Set up Java 17
- Setup Node 16
- Execute index.js file
- Create and initialize
eula.txt
- Fetch latest paper server build
- Download paper server jar (server version from matrix variable as input data to this action)
- Execute mc server
- Create an action file inside
./github/workflows
in the scope of your plugin repository and configure the steps if necessary:
name: Build with Maven and Do Runtime Test
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/[email protected]
- name: Set up JDK 16
uses: actions/[email protected]
with:
java-version: 16
- name: Maven Build
run: mvn clean package --file pom.xml
- name: Upload the artifact
uses: actions/upload-artifact@v3
with:
name: artifact-${{ github.event.number }}
path: 'target/FNAmplifications*.jar' # Change this according to the location and filename of your packaged jar, you may use wildcards
runtime-test:
name: Plugin Runtime Test
needs: [build]
runs-on: ubuntu-latest
strategy:
matrix:
include:
- mcVersion: '1.16.5'
javaVersion: '16'
- mcVersion: '1.17.1'
javaVersion: '17'
- mcVersion: '1.18.2'
javaVersion: '18'
- mcVersion: '1.19.4'
javaVersion: '19'
- mcVersion: '1.20.1'
javaVersion: '20'
steps:
- uses: FN-FAL113/[email protected] # specify action version, use latest as possible
with:
server-version: ${{ matrix.mcVersion }}
java-version: ${{ matrix.javaVersion }}
artifact-name: artifact-${{ github.event.number }}
- Slimefun
Suggestions are open for plugins that depends on other plugins. This will be based off from a resource file soon in order to accomomdate more plugins or so this repo can be forked to support your plugins.
Minecraft Plugin Runtime Test is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.