diff --git a/.github/workflows/call-build-project.yml b/.github/workflows/call-build-project.yml index d4822a1..f8b3bd2 100644 --- a/.github/workflows/call-build-project.yml +++ b/.github/workflows/call-build-project.yml @@ -5,6 +5,11 @@ jobs: build: name: Build project with gradle runs-on: ubuntu-latest + strategy: + matrix: + include: + - id: "bukkit" + task: ":instances:bukkit:build" steps: - name: Checkout Git repo uses: actions/checkout@v4 @@ -18,4 +23,4 @@ jobs: - name: Build with Gradle uses: gradle/gradle-build-action@v3 with: - arguments: build --stacktrace \ No newline at end of file + arguments: ${{ matrix.task }} --stacktrace diff --git a/.github/workflows/call-tests-validation.yml b/.github/workflows/call-tests-validation.yml index 89abf86..9db21c0 100644 --- a/.github/workflows/call-tests-validation.yml +++ b/.github/workflows/call-tests-validation.yml @@ -18,4 +18,4 @@ jobs: - name: Run tests uses: gradle/gradle-build-action@v3 with: - arguments: cleanTest test \ No newline at end of file + arguments: test \ No newline at end of file diff --git a/.github/workflows/call-upload-artifacts.yml b/.github/workflows/call-upload-artifacts.yml new file mode 100644 index 0000000..599a64d --- /dev/null +++ b/.github/workflows/call-upload-artifacts.yml @@ -0,0 +1,36 @@ +name: "Upload artifacts" +on: + workflow_call: +jobs: + upload_artifacts: + name: Build and upload + runs-on: ubuntu-latest + strategy: + matrix: + include: + - id: "bukkit" + task: ":instances:bukkit:shadowJar" + steps: + - name: Checkout Git repo + uses: actions/checkout@v4 + - uses: christian-draeger/read-properties@1.1.1 + id: properties + with: + path: './gradle.properties' + properties: 'makeevrserg.project.name' + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'adopt' + java-version: 21 + - name: Give gradle permission + run: chmod +x gradlew + - name: Build with Gradle ${{ matrix.id }} + uses: gradle/gradle-build-action@v3 + with: + arguments: ${{ matrix.task }} --stacktrace + - uses: actions/upload-artifact@184d73b71b93c222403b2e7f1ffebe4508014249 + name: "Upload ${{ matrix.id }}" + with: + name: ${{ matrix.id }} + path: ./jars/${{ steps.properties.outputs.makeevrserg-project-name }}-${{ matrix.id }}*.jar \ No newline at end of file diff --git a/.github/workflows/call-create-artifacts.yml b/.github/workflows/call-upload-github-release.yml similarity index 70% rename from .github/workflows/call-create-artifacts.yml rename to .github/workflows/call-upload-github-release.yml index e740507..5de9f0f 100644 --- a/.github/workflows/call-create-artifacts.yml +++ b/.github/workflows/call-upload-github-release.yml @@ -1,32 +1,29 @@ -name: "detekt-validation" +name: "Upload GitHub release" on: workflow_call: secrets: ACTIONS_TOKEN: required: true jobs: - publish: - name: Build and upload + upload_github_release: + name: Upload GitHub release runs-on: ubuntu-latest steps: - name: Checkout Git repo uses: actions/checkout@v4 + - uses: christian-draeger/read-properties@1.1.1 id: properties with: path: './gradle.properties' properties: 'makeevrserg.project.name makeevrserg.project.version.string' - - name: Set up JDK 21 - uses: actions/setup-java@v4 + + - uses: actions/download-artifact@d0ce8fd1167ed839810201de977912a090ab10a7 + name: "Download bukkit" with: - distribution: 'adopt' - java-version: 21 - - name: Give gradle permission - run: chmod +x gradlew - - name: Build with Gradle - uses: gradle/gradle-build-action@v3 - with: - arguments: :spigot:shadowJar --stacktrace + name: bukkit + path: ./jars + - name: Create release id: create_internal_release uses: softprops/action-gh-release@v2 diff --git a/.github/workflows/call-upload-modrinth-release.yml b/.github/workflows/call-upload-modrinth-release.yml new file mode 100644 index 0000000..8925fc9 --- /dev/null +++ b/.github/workflows/call-upload-modrinth-release.yml @@ -0,0 +1,48 @@ +name: "Upload Modrinth release" +on: + workflow_call: + secrets: + MODRINTH_TOKEN: + required: true +jobs: + upload_github_release: + name: Upload GitHub release + runs-on: ubuntu-latest + strategy: + matrix: + include: + - id: "bukkit" + task: ":instances:bukkit:shadowJar" + steps: + - name: Checkout Git repo + uses: actions/checkout@v4 + + - uses: christian-draeger/read-properties@1.1.1 + id: properties + with: + path: './gradle.properties' + properties: 'makeevrserg.project.name makeevrserg.project.version.string' + + - uses: actions/download-artifact@d0ce8fd1167ed839810201de977912a090ab10a7 + name: "Download ${{ matrix.id }}" + with: + name: ${{ matrix.id }} + path: ./jars/${{ matrix.id }} + - uses: Kir-Antipov/mc-publish@v3.3 + with: + # Only include this section if you wish to publish + # your assets on Modrinth. + modrinth-id: JodGTmt1 + modrinth-token: ${{ secrets.MODRINTH_TOKEN }} + name: ${{ steps.properties.outputs.makeevrserg-project-name }}-${{ matrix.id }} + version: ${{ steps.properties.outputs.makeevrserg-project-version-string }} + changelog: ${{ join(github.event.commits.*.message, '\n') }} + version_type: beta + java: | + 21 + loaders: | + ${{ matrix.id }} + game-versions: | + [1.16,1.21.1) + files: | + ./jars/${{ matrix.id }}/*.jar diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index e315c4d..03dfcad 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -1,6 +1,5 @@ name: Check Develop on: - merge_group: pull_request: branches: - 'develop' diff --git a/.github/workflows/release-master.yml b/.github/workflows/release-master.yml index 3d20ea5..82fa4bc 100644 --- a/.github/workflows/release-master.yml +++ b/.github/workflows/release-master.yml @@ -6,14 +6,17 @@ on: jobs: gradle_validation: uses: ./.github/workflows/call-gradle-wrapper-validation.yml - detekt_validation: - needs: gradle_validation - uses: ./.github/workflows/call-detekt-validation.yml - tests_validation: - needs: gradle_validation - uses: ./.github/workflows/call-tests-validation.yml - create_artifact: - needs: [ gradle_validation, detekt_validation, tests_validation ] - uses: ./.github/workflows/call-create-artifacts.yml + upload_artifacts: + needs: [ gradle_validation ] + uses: ./.github/workflows/call-upload-artifacts.yml + upload_github_artifacts: + needs: [ upload_artifacts ] + uses: ./.github/workflows/call-upload-github-release.yml secrets: ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }} + + upload_modrinth_artifacts: + needs: [ upload_artifacts ] + uses: ./.github/workflows/call-upload-modrinth-release.yml + secrets: + MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} diff --git a/spigot/build.gradle.kts b/instances/bukkit/build.gradle.kts similarity index 97% rename from spigot/build.gradle.kts rename to instances/bukkit/build.gradle.kts index c6d4bf2..83de443 100644 --- a/spigot/build.gradle.kts +++ b/instances/bukkit/build.gradle.kts @@ -67,7 +67,7 @@ astraShadowJar { exclude(dependency("org.jetbrains.kotlin:kotlin-stdlib:${libs.versions.kotlin.version.get()}")) } archiveVersion.set(projectInfo.versionString) - archiveBaseName.set(projectInfo.name) + archiveBaseName.set("${projectInfo.name}-bukkit") destinationDirectory.set(destination.get()) } } diff --git a/spigot/src/main/kotlin/ru/astrainteractive/astramarket/AstraMarket.kt b/instances/bukkit/src/main/kotlin/ru/astrainteractive/astramarket/AstraMarket.kt similarity index 100% rename from spigot/src/main/kotlin/ru/astrainteractive/astramarket/AstraMarket.kt rename to instances/bukkit/src/main/kotlin/ru/astrainteractive/astramarket/AstraMarket.kt diff --git a/spigot/src/main/kotlin/ru/astrainteractive/astramarket/di/RootModule.kt b/instances/bukkit/src/main/kotlin/ru/astrainteractive/astramarket/di/RootModule.kt similarity index 100% rename from spigot/src/main/kotlin/ru/astrainteractive/astramarket/di/RootModule.kt rename to instances/bukkit/src/main/kotlin/ru/astrainteractive/astramarket/di/RootModule.kt diff --git a/spigot/src/main/resources/plugin.yml b/instances/bukkit/src/main/resources/plugin.yml similarity index 100% rename from spigot/src/main/resources/plugin.yml rename to instances/bukkit/src/main/resources/plugin.yml diff --git a/settings.gradle.kts b/settings.gradle.kts index 7fe12d2..79aef4c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -50,4 +50,4 @@ include(":modules:core-bukkit") include(":modules:gui-bukkit") include(":modules:periodic") include(":modules:command-bukkit") -include(":spigot") +include(":instances:bukkit")