najoan125 / KoreanPatch-multiLoader

GNU Lesser General Public License v3.0
0 stars 1 forks source link

배포 시 로더 버전 정보 #6

Closed Shihyeon closed 1 month ago

Shihyeon commented 1 month ago

생각해보니 멀티 모듈이라 퍼블리싱 빌드 스크립트 버전에 모듈 정보를 표시해야 하더라고요...

그래서 계속 버전 정보를 가져오는 방법을 시도해 봤는데 (gradle에서 가져오는 게 가장 깔끔해 보이긴 했습니다.)

잘 안 되어, 어떤 방식으로 할 것인지 여쭈어 보려 이슈를 열었습니다.

다른 모드들 보면 version = ${{ tag }}-fabric 이런 방식으로 한 경우도 좀 있었습니다.

najoan125 commented 1 month ago

아 생각해보니 맞네요. 다른 모드들 보면 뒤에 -fabric 같은걸로 구분 되어있긴 하죠. version = ${{ tag }}-fabric 이런 방식이 제일 깔끔해 보이긴 하는 것 같아요

najoan125 commented 1 month ago

아 그리고 build-release 작동하는게 릴리즈 올리면 작동되게 되어있는데 그냥 workflow_dispatch로 하는게 나을 것 같아요

Shihyeon commented 1 month ago

7

Shihyeon commented 1 month ago

릴리즈 빌드에서 자동으로 태그 및 릴리즈 생성하는 것 같은데 굳이 업로드를 원하지 않으시면 빌드스크립트에서 깃허브 토큰 지우면 깃허브 업로딩이 없앨 수 있을 것 같아요.

그리고 name 부분에 모드 이름을 추가하면 좋을 것 같습니다.

Before

      - name: Upload artifacts to Modrinth/CurseForge and GitHub for Forge
        uses: Kir-Antipov/mc-publish@v3.3
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          name: ${{ steps.properties.outputs.mod_version }} for Forge

After

      - name: Upload artifacts to Modrinth and CurseForge for Forge
        uses: Kir-Antipov/mc-publish@v3.3
        with:
          name: Korean Chat Patch ${{ steps.properties.outputs.mod_version }} for Forge
Shihyeon commented 1 month ago

깃허브에 업로드 하신다면, 위에처럼 모드린스/커스포지 업로드에 깃허브 업로드 빼고 아래 액션 추가하면 좋을 듯 싶습니다. (Kir-Antipov/mc-publish@v3.3 말고 다른 걸 사용해도 되어 보이긴 해요.)

      - name: Upload artifacts to GitHub
        uses: Kir-Antipov/mc-publish@v3.3
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          files: |
            fabric/build/libs/!(*-@(dev|sources|all|javadoc)).jar
            neoforge/build/libs/!(*-@(dev|sources|all|javadoc)).jar
            forge/build/libs/!(*-@(dev|sources|all|javadoc)).jar
          name: Korean Chat Patch ${{ steps.properties.outputs.mod_version }} # release title
          version: mc${{ steps.properties.outputs.minecraft_version }}-${{ steps.properties.outputs.mod_version }} # create tag
          changelog: ${{ inputs.changelog }} # release desc.
          version-type: ${{ inputs.version-type }} # release or pre-release
najoan125 commented 1 month ago

헉 안 그래도 그것 때문에 조금 불편했는데 감사합니다!

Shihyeon commented 1 month ago

음... 제가 제 모드에 Sodium multiloader gradle을 보고 적용해 보았는데요.

이게 확실히 속도가 빠르긴 하더라고요. (빌드 1-2분 내외고, fabric-api를 포지에 적용도 가능하긴 함)

혹시 괜찮으시다면 추후에 시간 날 때 이쪽으로 업데이트 해도 괜찮을까 의견을 듣고 싶습니다.

https://github.com/Shihyeon/ImagictHud/tree/patch/multiloader

najoan125 commented 1 month ago

그 forgified fabric api가 1.20.1까지밖에 지원하지 않아서 fabric-api 적용하는건 좀 무리가 있을 것 같아요(1.20.1 아래 버전까지 port할 예정이에요)

그리고 저는 neoForge 뿐만 아니라 forge도 지원하려고 하기 때문에 Sodium의 multi-loader를 그대로 적용하는게 좀 힘들 것 같아요.

najoan125 commented 1 month ago

아 그리고 제가 테스트 해봤는데, 이미 각종 파일들 다운로드 완료된 상태면 지금 상태에서도 빠르게 되는 듯 합니다 (테스트 했을 때 30초만에 빌드가 완료됐습니다)

Shihyeon commented 1 month ago

아 그러면 push build-script만 좀 보완하면 되겠네요 :)

Shihyeon commented 1 month ago

테스트해 본 스크립트로는 2-3분 정도 걸리네요.

name: build

on:
  - pull_request
  - push

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Validate gradle wrapper
        uses: gradle/actions/wrapper-validation@v3

      - name: Setup Java 21
        uses: actions/setup-java@v4
        with:
          distribution: temurin
          java-version: 21

      - name: Make gradle wrapper executable
        run: chmod +x ./gradlew

      - name: Setup Gradle
        uses: gradle/actions/setup-gradle@v3
        with:
          cache-read-only: false

      - name: Execute Gradle build
        run: ./gradlew build

      - name: Upload artifacts
        uses: actions/upload-artifact@v4
        with:
          name: Artifacts
          path: |
            fabric/build/libs/*.jar
            neoforge/build/libs/*.jar
            forge/build/libs/*.jar