diff --git a/.github/workflows/build-all.yml b/.github/workflows/build-all.yml new file mode 100644 index 0000000..8d913b6 --- /dev/null +++ b/.github/workflows/build-all.yml @@ -0,0 +1,36 @@ +name: Build All +on: + workflow_dispatch: + workflow_call: + +jobs: + build: + strategy: + matrix: + version: + - { dir: api, mc: api, lex: api, neo: api, java: 8 } + - { dir: 1_21, mc: 1.21, lex: 51.0.24, neo: 96-beta, java: 21 } + - { dir: 1_20, mc: 1.20.6, lex: 50.1.10, neo: 119, java: 21 } + - { dir: 1_20, mc: 1.20.4, lex: 49.0.38, neo: 219, java: 17 } + - { dir: 1_20, mc: 1.20.3, lex: 49.0.2, neo: 8-beta, java: 17 } + - { dir: 1_20, mc: 1.20.2, lex: 48.1.0, neo: 88, java: 17 } + - { dir: 1_20, mc: 1.20.1, lex: 47.2.23, neo: 0, java: 17 } + - { dir: 1_19, mc: 1.19.4, lex: 45.2.9, neo: 0, java: 17 } + - { dir: 1_19, mc: 1.19.3, lex: 44.1.23, neo: 0, java: 17 } + - { dir: 1_19, mc: 1.19.2, lex: 43.3.9, neo: 0, java: 17 } + - { dir: 1_19, mc: 1.19.1, lex: 42.0.9, neo: 0, java: 17 } + - { dir: 1_19, mc: 1.19, lex: 41.1.0, neo: 0, java: 17 } + - { dir: 1_18, mc: 1.18.2, lex: 40.2.18, neo: 0, java: 17 } + - { dir: 1_17, mc: 1.17.1, lex: 37.1.1, neo: 0, java: 16 } + - { dir: 1_16, mc: 1.16.5, lex: 36.2.42, neo: 0, java: 8 } + - { dir: 1_12, mc: 1.12.2, lex: 14.23.5.2860, neo: 0, java: 8 } + - { dir: 1_8_9, mc: 1.8.9, lex: 11.15.1.2318-1.8.9, neo: 0, java: 8 } + - { dir: 1_7_10, mc: 1.7.10, lex: 10.13.4.1614-1.7.10, neo: 0, java: 8 } + uses: 3arthqu4ke/hmc-specifics/.github/workflows/build-specific-reusable.yml@main + with: + dir: ${{ matrix.version.dir }} + mc: ${{ matrix.version.mc }} + lex: ${{ matrix.version.lex }} + neo: ${{ matrix.version.neo }} + java: ${{ matrix.version.java }} + \ No newline at end of file diff --git a/.github/workflows/build-specific-reusable.yml b/.github/workflows/build-specific-reusable.yml new file mode 100644 index 0000000..2c9a52f --- /dev/null +++ b/.github/workflows/build-specific-reusable.yml @@ -0,0 +1,51 @@ +name: Build specific version 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 + lex: + description: 'The LexForge version to use' + required: true + default: '49.0.38' + type: string + neo: + description: 'The NeoForge version to use' + required: true + default: '219' + type: string + java: + description: 'The Java version to use' + required: true + default: '17' + type: string + java-distribution: + description: 'The Java distribution to use' + required: false + default: 'adopt' + type: string + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + java-version: ${{ inputs.java }} + distribution: ${{ inputs.java-distribution }} + - name: Grant execute permission for gradlew + working-directory: ./${{ inputs.dir }} + run: chmod +x gradlew + - name: Build + working-directory: ./${{ inputs.dir }} + run: ./gradlew build -Pminecraft_version=${{ inputs.mc }} -Plexforge_version=${{ inputs.lex }} -Pneoforge_version=${{ inputs.neo }} --stacktrace + \ No newline at end of file diff --git a/.github/workflows/run-matrix.yml b/.github/workflows/run-matrix.yml new file mode 100644 index 0000000..2626c31 --- /dev/null +++ b/.github/workflows/run-matrix.yml @@ -0,0 +1,81 @@ +name: Run all versions with HMC -lwjgl +on: + workflow_dispatch: + workflow_call: + push: + pull_request: + +jobs: + run: + strategy: + matrix: + version: + - { dir: 1_21, mc: 1.21, type: lexforge, modloader: forge, regex: .*forge.*, java: 21 } + - { dir: 1_21, mc: 1.21, type: neoforge, modloader: neoforge, regex: .*neoforge.*, java: 21 } + - { dir: 1_21, mc: 1.21, type: fabric, modloader: fabric, regex: .*fabric.*, java: 21 } + - { dir: 1_20, mc: 1.20.6, type: lexforge, modloader: forge, regex: .*forge.*, java: 21 } + - { dir: 1_20, mc: 1.20.6, type: neoforge, modloader: neoforge, regex: .*neoforge.*, java: 21 } + - { dir: 1_20, mc: 1.20.6, type: fabric, modloader: fabric, regex: .*fabric.*, java: 21 } + - { 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, mc: 1.20.1, type: lexforge, modloader: forge, regex: .*forge.*, java: 17 } + - { dir: 1_20, 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 } + runs-on: ubuntu-latest + if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name + needs: build + steps: + - name: Checkout sources + uses: actions/checkout@v4 + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: ${{ matrix.version.java }} + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + - name: Grant execute permission for gradlew + working-directory: ./${{ matrix.version.dir }} + run: chmod +x gradlew + - name: Build with Gradle + working-directory: ./${{ matrix.version.dir }} + run: ./gradlew build --stacktrace + - name: Create mods dir + run: mkdir -p run/mods + - name: Copy mod jar + run: cp ${{ matrix.version.dir }}/build/libs/hmc-specifics-${{ matrix.version.mc }}-*-${{ matrix.version.type }}.jar run/mods + - name: Run the MC client + uses: 3arthqu4ke/mc-runtime-test@2.1.0 + with: + mc: ${{ matrix.version.mc }} + modloader: ${{ matrix.version.modloader }} + regex: ${{ matrix.version.regex }} + java: ${{ matrix.version.java }} + mc-runtime-test: ${{ matrix.version.type }} + xvfb: false + headlessmc-command: -lwjgl --jvm -Djava.awt.headless=true diff --git a/.github/workflows/validate-wrapper.yml b/.github/workflows/validate-wrapper.yml new file mode 100644 index 0000000..1dfc3c1 --- /dev/null +++ b/.github/workflows/validate-wrapper.yml @@ -0,0 +1,15 @@ +name: "Validate Gradle Wrapper" + +on: + push: + pull_request: + workflow_dispatch: + workflow_call: + +jobs: + validation: + name: "Validation" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: gradle/wrapper-validation-action@v2