refactor: Replace ReplayMod's preprocessor with Manifold's #1014
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build | |
| on: | |
| push: | |
| branches: | |
| - root | |
| pull_request: | |
| jobs: | |
| build-configurator: | |
| name: Build Configurator | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v2 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v2 | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v2 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push | |
| uses: docker/build-push-action@v4 | |
| with: | |
| context: ./web | |
| push: true | |
| tags: ghcr.io/null2264/cobblegen-configurator:web | |
| generate-matrix: | |
| name: Generate Matrix | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.matrix.outputs.matrix }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup matrix | |
| id: matrix | |
| run: echo "matrix=$(jq -cr . ./versions.json)" >> $GITHUB_OUTPUT | |
| build: | |
| name: Build | |
| needs: generate-matrix | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false # Don't cancel if one failed | |
| matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Gradle | |
| uses: null2264/actions/gradle-setup@6712f98d592b126629afd27dc4870c93b53426b4 | |
| with: | |
| java: 21 | |
| - name: Build with Gradle | |
| run: | | |
| ./gradlew build -PmcVer="${{ matrix.mc }}" -Ploom.platform="${{ matrix.loader }}" | |
| - name: Setup Java for Test | |
| run: | | |
| curl -s "https://get.sdkman.io" | bash | |
| source "$HOME/.sdkman/bin/sdkman-init.sh" | |
| sdk install java ${{ matrix.java }} | |
| - name: Setup HeadlessMC | |
| run: | | |
| mkdir -p HeadlessMC "run/test-${{ matrix.mc }}-${{ matrix.loader }}/mods" | |
| cat <<EOF >> HeadlessMC/config.properties | |
| hmc.java.versions="$HOME/.sdkman/candidates/java/${{ matrix.java }}" | |
| hmc.gamedir="$PWD/run/test-${{ matrix.mc }}-${{ matrix.loader }}" | |
| hmc.offline=true | |
| hmc.rethrow.launch.exceptions=true | |
| hmc.exit.on.failed.command=true | |
| EOF | |
| json="$(curl -s "https://api.github.com/repos/3arthqu4ke/headlessmc/releases/latest" --header "Authorization: ${{ secrets.GITHUB_TOKEN }}")" | |
| url="$(echo $json | jq -r '.assets[].browser_download_url' | grep .jar | grep launcher | grep -v jfx | grep -v wrapper)" | |
| curl -Ls -o "headlessmc-launcher.jar" $url | |
| java -jar ./headlessmc-launcher.jar --command download ${{ matrix.loader }}:${{ matrix.mc }} | |
| - name: Tests | |
| run: | | |
| echo "${{ join(matrix.testVersions, ' ') }}" | |
| - name: Archive build results | |
| run: tar -I zstd -cf build.tar.zst cobblegen/build/libs/* | |
| - name: Upload build folder | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: mc${{ matrix.mc }}-${{ matrix.loader }}-build-artifacts | |
| path: build.tar.zst | |
| if-no-files-found: error | |
| retention-days: 3 |