diff --git a/.github/actions/local-action/action.yml b/.github/actions/local-action/action.yml index b5caa16..b45a8a1 100644 --- a/.github/actions/local-action/action.yml +++ b/.github/actions/local-action/action.yml @@ -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" @@ -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 diff --git a/.github/workflows/run-matrix-with-hmc.yml b/.github/workflows/run-matrix-with-hmc.yml new file mode 100644 index 0000000..6a80307 --- /dev/null +++ b/.github/workflows/run-matrix-with-hmc.yml @@ -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 diff --git a/.github/workflows/run-specific-reusable.yml b/.github/workflows/run-specific-reusable.yml index 82acc72..36e1c7d 100644 --- a/.github/workflows/run-specific-reusable.yml +++ b/.github/workflows/run-specific-reusable.yml @@ -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 diff --git a/.github/workflows/run-specific.yml b/.github/workflows/run-specific.yml index 0c022b5..1724a97 100644 --- a/.github/workflows/run-specific.yml +++ b/.github/workflows/run-specific.yml @@ -1,76 +1,94 @@ name: Run MC on: - workflow_dispatch: - inputs: - dir: - description: 'The directory to build in' - required: true - default: '1_20' - mc: - description: 'The MC version to build' - required: true - default: '1.20.4' - type: - description: 'The type to of jar to use (lexforge, neoforge or fabric)' - required: true - default: 'lexforge' - modloader: - description: 'The modloader to install with HeadlessMc (forge, neoforge or fabric)' - required: true - default: 'forge' - 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' - java: - description: 'The Java version to use' - required: true - default: '17' + workflow_dispatch: + inputs: + dir: + description: 'The directory to build in' + required: true + default: '1_20' + mc: + description: 'The MC version to build' + required: true + default: '1.20.4' + type: + description: 'The type to of jar to use (lexforge, neoforge or fabric)' + required: true + default: 'lexforge' + modloader: + description: 'The modloader to install with HeadlessMc (forge, neoforge or fabric)' + required: true + default: 'forge' + 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' + java: + description: 'The Java version to use' + required: true + default: '17' + 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: ${{ github.event.inputs.java }} - distribution: adopt - - name: Grant execute permission for gradlew - working-directory: ./${{ github.event.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 ${{ github.event.inputs.mc }} - run: java -jar headlessmc-launcher-1.9.5.jar --command download ${{ github.event.inputs.mc }} - - name: Download ${{ github.event.inputs.modloader }} ${{ github.event.inputs.mc }} - run: java -jar headlessmc-launcher-1.9.5.jar --command ${{ github.event.inputs.modloader }} ${{ github.event.inputs.mc }} --java ${{ github.event.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: ./${{ github.event.inputs.dir }} - run: ./gradlew build - - name: Copy mod - run: cp ${{ github.event.inputs.dir }}/build/libs/mc-runtime-test-*-${{ github.event.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 ${{ github.event.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: ${{ github.event.inputs.java }} + distribution: adopt + - name: Grant execute permission for gradlew + working-directory: ./${{ github.event.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 ${{ github.event.inputs.mc }} + run: java -jar headlessmc-launcher-1.9.5.jar --command download ${{ github.event.inputs.mc }} + - name: Download ${{ github.event.inputs.modloader }} ${{ github.event.inputs.mc }} + run: java -jar headlessmc-launcher-1.9.5.jar --command ${{ github.event.inputs.modloader }} ${{ github.event.inputs.mc }} --java ${{ github.event.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: ./${{ github.event.inputs.dir }} + run: ./gradlew build + - name: Copy mod + run: cp ${{ github.event.inputs.dir }}/build/libs/mc-runtime-test-*-${{ github.event.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: ${{ github.event.inputs.xvfb == 'true' }} + with: + run: java -jar headlessmc-launcher-1.9.5.jar --command launch ${{ github.event.inputs.regex }} -regex ${{ github.event.inputs.headlessmc_command }} + - name: Run game + if: ${{ github.event.inputs.xvfb != 'true' }} + run: java -jar headlessmc-launcher-1.9.5.jar --command launch ${{ github.event.inputs.regex }} -regex ${{ github.event.inputs.headlessmc_command }} + shell: bash + \ No newline at end of file diff --git a/.github/workflows/run.yml b/.github/workflows/run.yml deleted file mode 100644 index ba88e2a..0000000 --- a/.github/workflows/run.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: Run the MC Client -on: - workflow_call: - inputs: - mc: - description: 'The MC version to run' - required: true - default: '1.20.4' - 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 - dummy_assets: - description: 'Whether to use Dummy Assets or not' - required: true - default: true - type: boolean - -jobs: - run: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - java-version: ${{ inputs.java }} - distribution: adopt - - 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 - if: ${{ inputs.dummy_assets == 'true' }} - 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 Fabric ${{ 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: 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