From 009a94f74d363610e503fc433a019f333b236418 Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Sun, 19 Feb 2023 18:58:13 -0500 Subject: [PATCH] Publish releases. --- .github/workflows/build.yml | 33 ------------------------ .github/workflows/publish.yml | 47 +++++++++++++++++++++++++++++++++++ build.gradle | 30 ++++++++++++++-------- 3 files changed, 66 insertions(+), 44 deletions(-) delete mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 6645ffff..00000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Maven CI/CD - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build_and_test: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up JDK 11 - uses: actions/setup-java@v3 - with: - java-version: 11 - distribution: 'adopt' - cache: gradle - - - name: Build with Gradle - run: gradlew build - - - name: Upload Artifact - uses: actions/upload-artifact@v2 - with: - name: Multiverse-Core-SNAPSHOT - # Can use build\/libs\/Multiverse-Core-(\d\.\d\.\d)(-SNAPSHOT|).jar if it ever supports regex - path: build/libs/** - # If there's nothing there then something must have gone awry - if-no-files-found: error diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..231ceaf4 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,47 @@ +name: Publish package to GitHub Packages + +on: + release: + types: [created] + +jobs: + publish: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'adopt' + cache: gradle + + - name: Get release + id: get_release + uses: bruceadams/get-release@v1.3.2 + env: + GITHUB_TOKEN: ${{ github.token }} + + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action@v1 + + - name: Publish package + uses: gradle/gradle-build-action@v2 + with: + arguments: publish + env: + GITHUB_VERSION: ${{ steps.get_release.outputs.tag }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload release artifact + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.get_release.outputs.upload_url }} + asset_path: build/libs/Multiverse-Core-${{ steps.get_release.outputs.tag }}.jar + asset_name: Multiverse-Core-${{ steps.get_release.outputs.tag }}.jar + asset_content_type: application/java-archive diff --git a/build.gradle b/build.gradle index 4ccab91c..298d9ae9 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { id 'org.jetbrains.intellij' version '1.1' } -version = '4.3.2-SNAPSHOT' +version = System.getenv('GITHUB_VERSION')?.substring(1) ?: 'local' group = 'com.onarandombox.multiversecore' description = 'Multiverse-Core' @@ -85,15 +85,26 @@ tasks.withType(Javadoc) { } +configurations { + [apiElements, runtimeElements].each { + it.outgoing.artifacts.removeIf { it.buildDependencies.getDependencies(null).contains(jar) } + it.outgoing.artifact(shadowJar) + } +} + publishing { publications { maven(MavenPublication) { - from(components.java) - pom { - ciManagement { - system = 'jenkins' - url = 'https://ci.onarandombox.com/' - } + from components.java + } + } + repositories { + maven { + name = "GitHubPackages" + url = "https://maven.pkg.github.com/Multiverse/Multiverse-Core" + credentials { + username = System.getenv("GITHUB_ACTOR") + password = System.getenv("GITHUB_TOKEN") } } } @@ -115,11 +126,8 @@ compileJava { source = prepareSource.outputs } - -ext.buildNumber = System.getenv('BUILD_NUMBER') ?: 'UNKNOWN' - processResources { - def props = [version: "${project.version}-b$buildNumber"] + def props = [version: "${project.version}"] inputs.properties props filteringCharset 'UTF-8' filesMatching('plugin.yml') {