ViaUpdater
A Paper plugin that keeps your ViaVersion plugins up to date automatically.
It supports pulling builds from Jenkins CI servers and from GitHub Actions artifacts or source code.
Projects are fully configurable through a YAML config file.
Features
- Update ViaVersion, ViaBackwards, ViaRewind, and any other configurable project
- Two source types: Jenkins CI and GitHub (source build or workflow artifact)
- Per-project source selection with a named default
- Blocking startup update before ViaVersion loads
- Auto-update scheduler with a configurable interval
- Cancellable updates via /viaupdater cancel
- In-game command with tab completion
- Isolated Gradle and Maven cache inside the tmp folder during source builds (configurable)
Installation
- Build the project with ./gradlew build
- Drop the jar into your server's plugins folder
- Start the server once to generate plugins/ViaUpdater/config.yml
- Fill in your GitHub token and adjust the project list as needed
- Restart or reload the config with /viaupdater reload
Configuration
# Whether to delete build data automatically after completion
cleanup: false
# Redirect GRADLE_USER_HOME and Maven local repository into the tmp folder during source builds
# Keeps the global Gradle/Maven cache untouched
isolated-cache: true
github:
token: <GITHUB-TOKEN>
jenkins:
endpoint: https://ci.viaversion.com
startup-update:
enabled: false
auto-update:
enabled: false
interval: 24
projects:
- name: ViaVersion
default: jenkins
sources:
- id: github
type: GITHUB
owner: ViaVersion
repository: ViaVersion
branch: master
- id: github-sponsor
type: GITHUB
owner: ViaVersion
repository: ViaVersionDev
branch: preview
- id: jenkins
type: JENKINS
project: ViaVersion
Source Types
JENKINS
- id - Unique identifier for this source
- type - JENKINS
- project - Project name on the Jenkins server
GITHUB (artifact download)
- id - Unique identifier for this source
- type - GITHUB
- owner - Repository owner
- repository - Repository name
- branch - Branch to use
- workflow - Workflow file name (e.g. build.yml)
GITHUB (source build)
When
workflow is omitted, the plugin downloads the source zip and builds the project locally using the bundled Gradle wrapper.
Commands
Permission: viaupdater.command
/viaupdater update all - Update all installed plugins using their default source
/viaupdater update <name> - Update a single plugin using its default source
/viaupdater update <name> <source> - Update a single plugin using a specific source
/viaupdater cancel - Cancel the currently running update
/viaupdater reload - Reload the config without restarting the server
Aliases: viaupdate, updatevia, updateviaversion