Closed Shihyeon closed 1 month ago
아 생각해보니 맞네요. 다른 모드들 보면 뒤에 -fabric 같은걸로 구분 되어있긴 하죠. version = ${{ tag }}-fabric 이런 방식이 제일 깔끔해 보이긴 하는 것 같아요
아 그리고 build-release 작동하는게 릴리즈 올리면 작동되게 되어있는데 그냥 workflow_dispatch로 하는게 나을 것 같아요
릴리즈 빌드에서 자동으로 태그 및 릴리즈 생성하는 것 같은데 굳이 업로드를 원하지 않으시면 빌드스크립트에서 깃허브 토큰 지우면 깃허브 업로딩이 없앨 수 있을 것 같아요.
그리고 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
깃허브에 업로드 하신다면, 위에처럼 모드린스/커스포지 업로드에 깃허브 업로드 빼고 아래 액션 추가하면 좋을 듯 싶습니다. (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
헉 안 그래도 그것 때문에 조금 불편했는데 감사합니다!
음... 제가 제 모드에 Sodium multiloader gradle을 보고 적용해 보았는데요.
이게 확실히 속도가 빠르긴 하더라고요. (빌드 1-2분 내외고, fabric-api를 포지에 적용도 가능하긴 함)
혹시 괜찮으시다면 추후에 시간 날 때 이쪽으로 업데이트 해도 괜찮을까 의견을 듣고 싶습니다.
https://github.com/Shihyeon/ImagictHud/tree/patch/multiloader
그 forgified fabric api가 1.20.1까지밖에 지원하지 않아서 fabric-api 적용하는건 좀 무리가 있을 것 같아요(1.20.1 아래 버전까지 port할 예정이에요)
그리고 저는 neoForge 뿐만 아니라 forge도 지원하려고 하기 때문에 Sodium의 multi-loader를 그대로 적용하는게 좀 힘들 것 같아요.
아 그리고 제가 테스트 해봤는데, 이미 각종 파일들 다운로드 완료된 상태면 지금 상태에서도 빠르게 되는 듯 합니다 (테스트 했을 때 30초만에 빌드가 완료됐습니다)
아 그러면 push build-script만 좀 보완하면 되겠네요 :)
테스트해 본 스크립트로는 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
생각해보니 멀티 모듈이라 퍼블리싱 빌드 스크립트 버전에 모듈 정보를 표시해야 하더라고요...
그래서 계속 버전 정보를 가져오는 방법을 시도해 봤는데
(gradle에서 가져오는 게 가장 깔끔해 보이긴 했습니다.)
잘 안 되어, 어떤 방식으로 할 것인지 여쭈어 보려 이슈를 열었습니다.
다른 모드들 보면
version = ${{ tag }}-fabric
이런 방식으로 한 경우도 좀 있었습니다.