Skip to content

Commit

Permalink
fix: plugin publication (#252)
Browse files Browse the repository at this point in the history
* Fix

* Update

* Update upload artifact to v4

* Update workflow name

* update

* Update

* Remove previous archive distribution jobs

* only do it for release branches

* formatting
  • Loading branch information
buenaflor authored Aug 9, 2024
1 parent c36d0b4 commit 68ebe2c
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 68 deletions.
29 changes: 1 addition & 28 deletions .github/workflows/kotlin-multiplatform-gradle-plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,31 +45,4 @@ jobs:
uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # pin@v4
with:
name: sentry-kotlin-multiplatform-gradle-plugin
token: ${{ secrets.CODECOV_TOKEN }}

archive-distribution:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: JDK setup
uses: actions/setup-java@v3
with:
java-version: 17
distribution: temurin

- name: Cached Gradle
uses: gradle/gradle-build-action@842c587ad8aa4c68eeba24c396e15af4c2e9f30a

- name: DistZip
run: |
cd sentry-kotlin-multiplatform-gradle-plugin && ./gradlew distZip
- name: Archive packages
uses: actions/upload-artifact@v3
with:
name: ${{ github.sha }}
if-no-files-found: error
path: |
./*/build/distributions/*.zip
token: ${{ secrets.CODECOV_TOKEN }}
27 changes: 0 additions & 27 deletions .github/workflows/kotlin-multiplatform.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,30 +113,3 @@ jobs:
- name: Test samples
run: |
./gradlew allTests -p sentry-samples
archive-distribution:
runs-on: macos-latest-xlarge

steps:
- uses: actions/checkout@v4

- name: JDK setup
uses: actions/setup-java@v3
with:
java-version: 17
distribution: temurin

- name: Cached Gradle
uses: gradle/gradle-build-action@842c587ad8aa4c68eeba24c396e15af4c2e9f30a

- name: DistZip
run: |
./scripts/build-distribution.sh sentry-kotlin-multiplatform
- name: Archive packages
uses: actions/upload-artifact@v4
with:
name: ${{ github.sha }}
if-no-files-found: error
path: |
./*/build/distributions/*.zip
42 changes: 42 additions & 0 deletions .github/workflows/upload-artifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: "Generate and upload distributions"
on:
push:
branches:
- release/**

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
archive-distribution:
runs-on: macos-latest-xlarge

steps:
- uses: actions/checkout@v4

- name: JDK setup
uses: actions/setup-java@v3
with:
java-version: 17
distribution: temurin

- name: Cached Gradle
uses: gradle/gradle-build-action@842c587ad8aa4c68eeba24c396e15af4c2e9f30a

- name: DistZip libraries
run: |
./gradlew distZip
- name: DistZip plugin
run: |
cd sentry-kotlin-multiplatform-gradle-plugin
./gradlew distZip sentryPluginMarkerDistZip
- name: Archive packages
uses: actions/upload-artifact@v4
with:
name: ${{ github.sha }}
if-no-files-found: error
path: |
./*/build/distributions/*.zip
33 changes: 20 additions & 13 deletions sentry-kotlin-multiplatform-gradle-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ tasks.withType<KotlinCompile> { kotlinOptions { jvmTarget = JavaVersion.VERSION_

gradlePlugin {
plugins {
create(property("id").toString()) {
register("sentryPlugin") {
id = property("id").toString()
implementationClass = property("implementationClass").toString()
}
Expand All @@ -52,32 +52,39 @@ val publish = extensions.getByType(MavenPublishPluginExtension::class.java)
// via gpg:sign-and-deploy-file (release.kts)
publish.releaseSigningEnabled = false

tasks.named("distZip").configure {
tasks.named("distZip") {
dependsOn("publishToMavenLocal")
this.doLast {
val distributionFilePath =
"${project.layout.buildDirectory.asFile.get().path}${sep}distributions${sep}${project.name}-${project.version}.zip"
val file = File(distributionFilePath)
if (!file.exists()) {
throw IllegalStateException("Distribution file: $distributionFilePath does not exist")
}
if (file.length() == 0L) {
throw IllegalStateException("Distribution file: $distributionFilePath is empty")
onlyIf {
inputs.sourceFiles.isEmpty.not().also {
require(it) { "No distribution to zip." }
}
}
}

val sep = File.separator
val sep: String = File.separator

distributions {
main {
contents {
from("build${sep}libs")
from("build${sep}publications${sep}maven")
from("build${sep}publications${sep}pluginMaven")
}
}
create("sentryPluginMarker") {
contents {
from("build${sep}publications${sep}sentryPluginPluginMarkerMaven")
}
}
}

tasks.named("sentryPluginMarkerDistTar") {
mustRunAfter("generatePomFileForSentryPluginPluginMarkerMavenPublication")
}

tasks.named("sentryPluginMarkerDistZip") {
mustRunAfter("generatePomFileForSentryPluginPluginMarkerMavenPublication")
}

buildConfig {
useKotlinOutput()
packageName("io.sentry")
Expand Down
15 changes: 15 additions & 0 deletions sentry-kotlin-multiplatform-gradle-plugin/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,18 @@ versionName=0.7.1
group=io.sentry
# TODO: Update update-cocoa.sh so the cocoa version is auto updated as well
sentryCocoaVersion=8.26.0

# publication pom properties
POM_NAME=Sentry Kotlin Multiplatform Gradle Plugin
POM_DESCRIPTION=Sentry Kotlin Multiplatform Gradle Plugin
POM_URL=https://github.com/getsentry/sentry-kotlin-multiplatform
POM_SCM_URL=https://github.com/getsentry/sentry-kotlin-multiplatform
POM_SCM_CONNECTION=scm:git:git://github.com/getsentry/sentry-kotlin-multiplatform.git
POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/getsentry/sentry-kotlin-multiplatform.git

POM_LICENCE_NAME=MIT
POM_LICENCE_URL=https://github.com/getsentry/sentry-kotlin-multiplatform/blob/main/LICENSE

POM_DEVELOPER_ID=getsentry
POM_DEVELOPER_NAME=Sentry Team and Contributors
POM_DEVELOPER_URL=https://github.com/getsentry/

0 comments on commit 68ebe2c

Please sign in to comment.