diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 00000000..e9e1ccce --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,27 @@ +name-template: 'v$RESOLVED_VERSION' +tag-template: 'v$RESOLVED_VERSION' + +categories: + - title: 'Features' + labels: + - 'feature' + - 'enhancement' + - title: 'Bug Fixes' + labels: + - 'fix' + - 'bug' + - title: 'Maintenance' + labels: + - 'chore' + - 'dependencies' + - 'documentation' + +change-template: '- $TITLE (#$NUMBER) @$AUTHOR' +change-title-escapes: '\<*_&' + +template: | + ## What's Changed + + $CHANGES + + **Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION diff --git a/.github/workflows/release-draft.yml b/.github/workflows/release-draft.yml new file mode 100644 index 00000000..e9304d1a --- /dev/null +++ b/.github/workflows/release-draft.yml @@ -0,0 +1,41 @@ +name: Update Release Draft + +on: + push: + branches: [main] + +permissions: + contents: write + pull-requests: read + +jobs: + update-draft: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v5 + with: + fetch-depth: 0 + fetch-tags: true + + - name: Set up JDK 21 + uses: actions/setup-java@v5 + with: + java-version: '21' + distribution: 'temurin' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Compute next version + id: version + run: | + NEXT="$(./gradlew -q printVersion)" + echo "next=${NEXT}" >> "$GITHUB_OUTPUT" + + - name: Update release draft + uses: release-drafter/release-drafter@v6 + with: + version: ${{ steps.version.outputs.next }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..e6730477 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,36 @@ +name: Attach Release Artifacts + +on: + release: + types: [published] + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: write + + steps: + - uses: actions/checkout@v5 + with: + fetch-depth: 0 + fetch-tags: true + ref: ${{ github.event.release.tag_name }} + + - name: Set up JDK 21 + uses: actions/setup-java@v5 + with: + java-version: '21' + distribution: 'temurin' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Build with Gradle Wrapper + run: ./gradlew clean build + + - name: Attach shaded JAR to release + uses: softprops/action-gh-release@v2 + with: + files: build/libs/*.jar + fail_on_unmatched_files: true diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..c5f3f6b9 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 8fb3af4c..c1ae4182 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,6 @@ plugins { java - alias(libs.plugins.git.version) + alias(libs.plugins.git.semver) alias(libs.plugins.shadow) } @@ -61,11 +61,8 @@ dependencies { compileOnly(libs.io.papermc.paper.paper.api) } -val versionDetails: groovy.lang.Closure by extra -val details = versionDetails() - group = "com.alpsbte" -version = "5.0.3" + "-" + details.gitHash + "-SNAPSHOT" +version = semver.semVersion description = "An easy to use building system for the BuildTheEarth project." java.sourceCompatibility = JavaVersion.VERSION_21 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 29c848f9..e66ee32f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ org-mariadb-jdbc-mariadb-java-client = "3.5.7" # https://central.sonatype.com/a com-intellectualsites-bom-bom-newest = "1.55" # Ref: https://github.com/IntellectualSites/bom # Plugins shadow = "9.3.1" # https://github.com/GradleUp/shadow/releases -git-version = "5.0.0" # https://github.com/palantir/gradle-git-version/releases +git-semver = "0.19.0" # https://github.com/jmongard/Git.SemVersioning.Gradle/releases [libraries] com-alpsbte-alpslib-alpslib-hologram = { module = "com.alpsbte.alpslib:alpslib-hologram", version.ref = "com-alpsbte-alpslib-alpslib-hologram" } @@ -41,5 +41,5 @@ org-mariadb-jdbc-mariadb-java-client = { module = "org.mariadb.jdbc:mariadb-java com-intellectualsites-bom-bom-newest = { module = "com.intellectualsites.bom:bom-newest", version.ref = "com-intellectualsites-bom-bom-newest" } [plugins] -git-version = { id = "com.palantir.git-version", version.ref = "git-version" } +git-semver = { id = "com.github.jmongard.git-semver-plugin", version.ref = "git-semver" } shadow = { id = "com.gradleup.shadow", version.ref = "shadow" }