Gradle Plugin Portal

This commit is contained in:
2023-02-07 06:31:23 -05:00
parent 0ed243e9ae
commit ac7ec227b0
4 changed files with 64 additions and 7 deletions

23
.github/workflows/portal.yml vendored Normal file
View File

@ -0,0 +1,23 @@
name: Gradle Plugin Portal
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Publish with Gradle
uses: gradle/gradle-build-action@v2
with:
arguments: publishPlugins
env:
GRADLE_PLUGIN_PUBLISHING_KEY: "${{ secrets.GRADLE_PLUGIN_PUBLISHING_KEY }}"
GRADLE_PLUGIN_PUBLISHING_SECRET: "${{ secrets.GRADLE_PLUGIN_PUBLISHING_SECRET }}"

View File

@ -4,7 +4,7 @@ on:
branches:
- main
jobs:
build:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
@ -21,3 +21,5 @@ jobs:
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
GITLAB_TOKEN: "${{ secrets.GITLAB_TOKEN }}"
GRADLE_PLUGIN_PUBLISHING_KEY: "${{ secrets.GRADLE_PLUGIN_PUBLISHING_KEY }}"
GRADLE_PLUGIN_PUBLISHING_SECRET: "${{ secrets.GRADLE_PLUGIN_PUBLISHING_SECRET }}"

View File

@ -1,3 +1,4 @@
@file:Suppress("UnstableApiUsage")
plugins {
`kotlin-dsl`
kotlin("plugin.serialization") version "1.7.10"
@ -25,29 +26,56 @@ dependencies {
}
gradlePlugin {
website.set("https://github.com/GayPizzaSpecifications/concrete")
vcsUrl.set("https://github.com/GayPizzaSpecifications/concrete")
plugins {
create("concrete-root") {
id = "gay.pizza.foundation.concrete-root"
implementationClass = "gay.pizza.foundation.concrete.ConcreteRootPlugin"
displayName = "Concrete Root"
description = "Concrete project root."
}
create("concrete-base") {
id = "gay.pizza.foundation.concrete-base"
implementationClass = "gay.pizza.foundation.concrete.ConcreteBasePlugin"
displayName = "Concrete Base"
description = "Concrete project base."
}
create("concrete-library") {
id = "gay.pizza.foundation.concrete-library"
implementationClass = "gay.pizza.foundation.concrete.ConcreteLibraryPlugin"
displayName = "Concrete Library"
description = "Concrete project library."
}
create("concrete-plugin") {
id = "gay.pizza.foundation.concrete-plugin"
implementationClass = "gay.pizza.foundation.concrete.ConcretePluginPlugin"
displayName = "Concrete Library"
description = "Concrete project plugin."
}
forEach { declaration ->
declaration.tags.set(listOf("foundation-concrete", "minecraft-bukkit"))
}
}
}
val gradlePublishingKey: String? = System.getenv("GRADLE_PLUGIN_PUBLISHING_KEY")
val gradlePublishingSecret: String? = System.getenv("GRADLE_PLUGIN_PUBLISHING_SECRET")
if (gradlePublishingKey != null && gradlePublishingSecret != null) {
project.setProperty("gradle.publish.key", gradlePublishingKey.toString())
project.setProperty("gradle.publish.secret", gradlePublishingSecret.toString())
}
java {
val version = JavaVersion.toVersion("17")
sourceCompatibility = version

View File

@ -11,12 +11,16 @@ class ConcretePluginPlugin : ConcreteBaseBukkitPlugin() {
project.plugins.apply("com.github.johnrengelman.shadow")
project.tasks.find<ProcessResources>("processResources")!!.apply {
val props = mapOf("version" to project.version.toString())
inputs.properties(props)
filteringCharset = "UTF-8"
filesMatching("plugin.yml") {
expand(props)
// During IDEA project import, if this code is active, it will print warnings.
// This will make the VERSION field unexpanded if you run using the IntelliJ build system.
if (!project.properties.containsKey("idea.gradle.do.not.build.tasks")) {
project.tasks.find<ProcessResources>("processResources")!!.apply {
val props = mapOf("version" to project.version.toString())
inputs.properties(props)
filteringCharset = "UTF-8"
filesMatching("plugin.yml") {
expand(props)
}
}
}