diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ba7ec7d..412c209 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -# On push of a version tag (e.g. v1.0.0): build, create GitHub Release, upload JARs. +# On push of a version tag (e.g. v1.0.0): build, publish to GitHub Packages, create Release, upload JARs. name: Release on: @@ -8,10 +8,13 @@ on: permissions: contents: write + packages: write jobs: release: runs-on: ubuntu-latest + env: + RELEASE_VERSION: ${{ github.ref_name }} steps: - name: Checkout uses: actions/checkout@v4 @@ -23,7 +26,12 @@ jobs: java-version: 21 cache: gradle - - run: chmod +x gradlew && ./gradlew build --no-daemon + - name: Strip v from version + run: echo "RELEASE_VERSION=${RELEASE_VERSION#v}" >> $GITHUB_ENV + + - run: chmod +x gradlew && ./gradlew build publish --no-daemon + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create Release uses: softprops/action-gh-release@v2 diff --git a/build.gradle.kts b/build.gradle.kts index c7d6eeb..ef28ced 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,15 +2,15 @@ plugins { id("java") id("java-library") id("application") + id("maven-publish") } tasks.named("run") { jvmArgs("-Ddev.jakub.terminal.ansi=true", "-Dfile.encoding=UTF-8") } - group = "dev.jakub.terminal" -version = "1.0-SNAPSHOT" +version = System.getenv("RELEASE_VERSION") ?: "1.0-SNAPSHOT" java { sourceCompatibility = JavaVersion.VERSION_21 @@ -29,4 +29,25 @@ dependencies { tasks.test { useJUnitPlatform() +} + +publishing { + publications { + create("maven") { + groupId = project.group.toString() + artifactId = "terminal-ui" + version = project.version.toString() + from(components["java"]) + } + } + repositories { + maven { + name = "GitHubPackages" + url = uri("https://maven.pkg.github.com/jakubbbdev/terminal-ui") + credentials { + username = System.getenv("GITHUB_ACTOR") ?: project.findProperty("gpr.user")?.toString() + password = System.getenv("GITHUB_TOKEN") ?: project.findProperty("gpr.token")?.toString() + } + } + } } \ No newline at end of file