Skip to content

Commit

Permalink
Test Xvfb #4
Browse files Browse the repository at this point in the history
  • Loading branch information
3arthqu4ke committed Apr 8, 2024
1 parent cf409fb commit 1796ca1
Show file tree
Hide file tree
Showing 5 changed files with 273 additions and 243 deletions.
65 changes: 40 additions & 25 deletions .github/actions/local-action/action.yml
Original file line number Diff line number Diff line change
@@ -1,30 +1,39 @@
name: 'Local Run Action'
description: 'Runs the MC client'

inputs:
mc:
description: 'The MC version to run'
required: true
default: '1.20.4'
modloader:
description: 'The modloader to install with HeadlessMc (forge, neoforge or fabric)'
required: true
default: 'fabric'
regex:
description: 'Regex to match the MC version to launch (forge is like 1.20.4-forge and fabric starts with fabric-1.20)'
required: true
default: '.*fabric.*'
java:
description: 'The Java version to use'
required: true
default: '17'
dummy_assets:
description: 'Whether to use Dummy Assets or not'
required: true
default: 'true'
mc_runtime_test:
description: 'The mc_runtime_test jar to download (none, lexforge, fabric or neoforge)'
required: true
default: 'fabric'
mc:
description: 'The MC version to run'
required: true
default: '1.20.4'
modloader:
description: 'The modloader to install with HeadlessMc (forge, neoforge or fabric)'
required: true
default: 'fabric'
regex:
description: 'Regex to match the MC version to launch (forge is like 1.20.4-forge and fabric starts with fabric-1.20)'
required: true
default: '.*fabric.*'
java:
description: 'The Java version to use'
required: true
default: '17'
dummy_assets:
description: 'Whether to use Dummy Assets or not'
required: true
default: 'true'
mc_runtime_test:
description: 'The mc_runtime_test jar to download (none, lexforge, fabric or neoforge)'
required: true
default: 'fabric'
xvfb:
description: 'Runs the game with Xvfb, if false, you should probably use the -lwjgl option in headlessmc.'
required: false
default: 'true'
headlessmc_command:
description: 'Arguments for the headlessmc command.'
required: false
default: '--jvm -Djava.awt.headless=true'

runs:
using: "composite"
Expand Down Expand Up @@ -82,6 +91,12 @@ runs:
- name: LS mods dir
run: ls run/mods
shell: bash
- name: Run game with xvfb
uses: modmuss50/xvfb-action@v1
if: ${{ inputs.xvfb == 'true' }}
with:
run: java -jar headlessmc-launcher-1.9.5.jar --command launch ${{ inputs.regex }} -regex ${{ inputs.headlessmc_command }}
- name: Run game
run: java -jar headlessmc-launcher-1.9.5.jar --command launch ${{ inputs.regex }} -regex -lwjgl --jvm -Djava.awt.headless=true
if: ${{ inputs.xvfb != 'true' }}
run: java -jar headlessmc-launcher-1.9.5.jar --command launch ${{ inputs.regex }} -regex ${{ inputs.headlessmc_command }}
shell: bash
50 changes: 50 additions & 0 deletions .github/workflows/run-matrix-with-hmc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Run all versions with HMC -lwjgl
on:
workflow_dispatch:
workflow_call:

jobs:
run:
strategy:
matrix:
version:
- { dir: 1_20, mc: 1.20.4, type: lexforge, modloader: forge, regex: .*forge.*, java: 17 }
- { dir: 1_20, mc: 1.20.4, type: neoforge, modloader: neoforge, regex: .*neoforge.*, java: 17 }
- { dir: 1_20, mc: 1.20.4, type: fabric, modloader: fabric, regex: .*fabric.*, java: 17 }
- { dir: 1_20, mc: 1.20.3, type: lexforge, modloader: forge, regex: .*forge.*, java: 17 }
- { dir: 1_20, mc: 1.20.3, type: neoforge, modloader: neoforge, regex: .*neoforge.*, java: 17 }
- { dir: 1_20, mc: 1.20.3, type: fabric, modloader: fabric, regex: .*fabric.*, java: 17 }
- { dir: 1_20, mc: 1.20.2, type: lexforge, modloader: forge, regex: .*forge.*, java: 17 }
- { dir: 1_20, mc: 1.20.2, type: neoforge, modloader: neoforge, regex: .*neoforge.*, java: 17 }
- { dir: 1_20, mc: 1.20.2, type: fabric, modloader: fabric, regex: .*fabric.*, java: 17 }
- { dir: 1_20/1_20_1, mc: 1.20.1, type: lexforge, modloader: forge, regex: .*forge.*, java: 17 }
- { dir: 1_20/1_20_1, mc: 1.20.1, type: fabric, modloader: fabric, regex: .*fabric.*, java: 17 }
- { dir: 1_19, mc: 1.19.4, type: fabric, modloader: fabric, regex: .*fabric.*, java: 17 }
- { dir: 1_19, mc: 1.19.4, type: lexforge, modloader: forge, regex: .*forge.*, java: 17 }
- { dir: 1_19, mc: 1.19.3, type: fabric, modloader: fabric, regex: .*fabric.*, java: 17 }
- { dir: 1_19, mc: 1.19.3, type: lexforge, modloader: forge, regex: .*forge.*, java: 17 }
- { dir: 1_19, mc: 1.19.2, type: fabric, modloader: fabric, regex: .*fabric.*, java: 17 }
- { dir: 1_19, mc: 1.19.2, type: lexforge, modloader: forge, regex: .*forge.*, java: 17 }
- { dir: 1_19, mc: 1.19.1, type: fabric, modloader: fabric, regex: .*fabric.*, java: 17 }
- { dir: 1_19, mc: 1.19.1, type: lexforge, modloader: forge, regex: .*forge.*, java: 17 }
- { dir: 1_19, mc: 1.19, type: fabric, modloader: fabric, regex: .*fabric.*, java: 17 }
- { dir: 1_19, mc: 1.19, type: lexforge, modloader: forge, regex: .*forge.*, java: 17 }
- { dir: 1_18, mc: 1.18.2, type: fabric, modloader: fabric, regex: .*fabric.*, java: 17 }
- { dir: 1_18, mc: 1.18.2, type: lexforge, modloader: forge, regex: .*forge.*, java: 17 }
- { dir: 1_17, mc: 1.17.1, type: fabric, modloader: fabric, regex: .*fabric.*, java: 16 }
- { dir: 1_17, mc: 1.17.1, type: lexforge, modloader: forge, regex: .*forge.*, java: 16 }
- { dir: 1_16, mc: 1.16.5, type: fabric, modloader: fabric, regex: .*fabric.*, java: 8 }
- { dir: 1_16, mc: 1.16.5, type: lexforge, modloader: forge, regex: .*forge.*, java: 8 }
- { dir: 1_12, mc: 1.12.2, type: lexforge, modloader: forge, regex: .*forge.*, java: 8 }
- { dir: 1_8_9, mc: 1.8.9, type: lexforge, modloader: forge, regex: .*orge.*, java: 8 }
- { dir: 1_7_10, mc: 1.7.10, type: lexforge, modloader: forge, regex: .*orge.*, java: 8 }
uses: 3arthqu4ke/mc-runtime-test/.github/workflows/run-specific-reusable.yml@main
with:
dir: ${{ matrix.version.dir }}
mc: ${{ matrix.version.mc }}
type: ${{ matrix.version.type }}
modloader: ${{ matrix.version.modloader }}
regex: ${{ matrix.version.regex }}
java: ${{ matrix.version.java }}
xvfb: false
headlessmc_command: -lwjgl --jvm -Djava.awt.headless=true
171 changes: 94 additions & 77 deletions .github/workflows/run-specific-reusable.yml
Original file line number Diff line number Diff line change
@@ -1,82 +1,99 @@
name: Run MC Reusable
on:
workflow_call:
inputs:
dir:
description: 'The directory to build in'
required: true
default: '1_20'
type: string
mc:
description: 'The MC version to build'
required: true
default: '1.20.4'
type: string
type:
description: 'The type to of jar to use (lexforge, neoforge or fabric)'
required: true
default: 'lexforge'
type: string
modloader:
description: 'The modloader to install with HeadlessMc (forge, neoforge or fabric)'
required: true
default: 'forge'
type: string
regex:
description: 'Regex to match the MC version to launch (forge is like 1.20.4-forge and fabric starts with fabric-1.20)'
required: true
default: 'fabric.*1.20.4'
type: string
java:
description: 'The Java version to use'
required: true
default: '17'
type: string
workflow_call:
inputs:
dir:
description: 'The directory to build in'
required: true
default: '1_20'
type: string
mc:
description: 'The MC version to build'
required: true
default: '1.20.4'
type: string
type:
description: 'The type to of jar to use (lexforge, neoforge or fabric)'
required: true
default: 'lexforge'
type: string
modloader:
description: 'The modloader to install with HeadlessMc (forge, neoforge or fabric)'
required: true
default: 'forge'
type: string
regex:
description: 'Regex to match the MC version to launch (forge is like 1.20.4-forge and fabric starts with fabric-1.20)'
required: true
default: 'fabric.*1.20.4'
type: string
java:
description: 'The Java version to use'
required: true
default: '17'
type: string
xvfb:
description: 'Runs the game with Xvfb, if false, you should probably use the -lwjgl option in headlessmc.'
required: false
default: 'true'
type: string
headlessmc_command:
description: 'Arguments for the headlessmc command.'
required: false
default: '--jvm -Djava.awt.headless=true'
type: string

jobs:
run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: ${{ inputs.java }}
distribution: adopt
- name: Grant execute permission for gradlew
working-directory: ./${{ inputs.dir }}
run: chmod +x gradlew
- name: Setup HeadlessMC directory
run: mkdir HeadlessMC
- name: Configure HeadlessMC java versions
run: echo hmc.java.versions=$JAVA_HOME/bin/java > HeadlessMC/config.properties
- name: Configure HeadlessMC game directory
run: echo hmc.gamedir=$PWD/run >> HeadlessMC/config.properties
- name: Configure offline mode
run: echo hmc.offline=true >> HeadlessMC/config.properties
- name: Configure Exceptions
run: echo hmc.rethrow.launch.exceptions=true >> HeadlessMC/config.properties
- name: Configure Failing on wrong command
run: echo hmc.exit.on.failed.command=true >> HeadlessMC/config.properties
- name: Configure Dummy Assets
run: echo hmc.assets.dummy=true >> HeadlessMC/config.properties
- name: Get HeadlessMC
run: wget -O headlessmc-launcher-1.9.5.jar https://github.com/3arthqu4ke/headlessmc/releases/download/1.9.5/headlessmc-launcher-1.9.5.jar
- name: Download ${{ inputs.mc }}
run: java -jar headlessmc-launcher-1.9.5.jar --command download ${{ inputs.mc }}
- name: Download ${{ inputs.modloader }} ${{ inputs.mc }}
run: java -jar headlessmc-launcher-1.9.5.jar --command ${{ inputs.modloader }} ${{ inputs.mc }} --java ${{ inputs.java }}
- name: List versions
run: java -jar headlessmc-launcher-1.9.5.jar --command versions
- name: Make mods dir
run: mkdir -p run/mods
- name: Configure Accessibility
run: echo onboardAccessibility:false >> run/options.txt
- name: Build
working-directory: ./${{ inputs.dir }}
run: ./gradlew build
- name: Copy mod
run: cp ${{ inputs.dir }}/build/libs/mc-runtime-test-*-${{ inputs.type }}-release.jar run/mods
- name: LS mods dir
run: ls run/mods
- name: Run game
run: java -jar headlessmc-launcher-1.9.5.jar --command launch ${{ inputs.regex }} -regex -lwjgl --jvm -Djava.awt.headless=true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: ${{ inputs.java }}
distribution: adopt
- name: Grant execute permission for gradlew
working-directory: ./${{ inputs.dir }}
run: chmod +x gradlew
- name: Setup HeadlessMC directory
run: mkdir HeadlessMC
- name: Configure HeadlessMC java versions
run: echo hmc.java.versions=$JAVA_HOME/bin/java > HeadlessMC/config.properties
- name: Configure HeadlessMC game directory
run: echo hmc.gamedir=$PWD/run >> HeadlessMC/config.properties
- name: Configure offline mode
run: echo hmc.offline=true >> HeadlessMC/config.properties
- name: Configure Exceptions
run: echo hmc.rethrow.launch.exceptions=true >> HeadlessMC/config.properties
- name: Configure Failing on wrong command
run: echo hmc.exit.on.failed.command=true >> HeadlessMC/config.properties
- name: Configure Dummy Assets
run: echo hmc.assets.dummy=true >> HeadlessMC/config.properties
- name: Get HeadlessMC
run: wget -O headlessmc-launcher-1.9.5.jar https://github.com/3arthqu4ke/headlessmc/releases/download/1.9.5/headlessmc-launcher-1.9.5.jar
- name: Download ${{ inputs.mc }}
run: java -jar headlessmc-launcher-1.9.5.jar --command download ${{ inputs.mc }}
- name: Download ${{ inputs.modloader }} ${{ inputs.mc }}
run: java -jar headlessmc-launcher-1.9.5.jar --command ${{ inputs.modloader }} ${{ inputs.mc }} --java ${{ inputs.java }}
- name: List versions
run: java -jar headlessmc-launcher-1.9.5.jar --command versions
- name: Make mods dir
run: mkdir -p run/mods
- name: Configure Accessibility
run: echo onboardAccessibility:false >> run/options.txt
- name: Build
working-directory: ./${{ inputs.dir }}
run: ./gradlew build
- name: Copy mod
run: cp ${{ inputs.dir }}/build/libs/mc-runtime-test-*-${{ inputs.type }}-release.jar run/mods
- name: LS mods dir
run: ls run/mods
- name: Run game with xvfb
uses: modmuss50/xvfb-action@v1
if: ${{ inputs.xvfb == 'true' }}
with:
run: java -jar headlessmc-launcher-1.9.5.jar --command launch ${{ inputs.regex }} -regex ${{ inputs.headlessmc_command }}
- name: Run game
if: ${{ inputs.xvfb != 'true' }}
run: java -jar headlessmc-launcher-1.9.5.jar --command launch ${{ inputs.regex }} -regex ${{ inputs.headlessmc_command }}
shell: bash
Loading

0 comments on commit 1796ca1

Please sign in to comment.