diff --git a/.github/workflows/publish-android-sdk.yml b/.github/workflows/publish-android-sdk.yml new file mode 100644 index 0000000000..777e8676ad --- /dev/null +++ b/.github/workflows/publish-android-sdk.yml @@ -0,0 +1,53 @@ +name: Publish Android SDK + +on: + workflow_dispatch: + inputs: + version: + description: 'Version to publish (e.g., 0.1.0)' + required: true + type: string + dry-run: + description: 'Dry run — build and validate without publishing' + required: false + type: boolean + default: true + +permissions: + contents: read + packages: write + +jobs: + publish: + name: Publish to GitHub Packages + runs-on: ubuntu-latest + defaults: + run: + working-directory: packages/native-shell-android + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '17' + + - uses: ./.github/actions/cache-gradle + + - name: Set version + run: | + sed -i "s/version = \".*\"/version = \"${{ inputs.version }}\"/" build.gradle.kts + + - name: Build + run: ./gradlew build + + - name: Publish to Maven Local (dry run) + if: inputs.dry-run + run: ./gradlew publishToMavenLocal + + - name: Publish to GitHub Packages + if: ${{ !inputs.dry-run }} + run: ./gradlew publishReleasePublicationToGitHubPackagesRepository + env: + GITHUB_ACTOR: ${{ github.actor }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/packages/native-shell-android/build.gradle.kts b/packages/native-shell-android/build.gradle.kts index 021d18f551..d44cf46f09 100644 --- a/packages/native-shell-android/build.gradle.kts +++ b/packages/native-shell-android/build.gradle.kts @@ -3,6 +3,7 @@ plugins { id("org.jetbrains.kotlin.android") version "1.9.22" id("org.jetbrains.kotlin.plugin.serialization") version "1.9.22" id("org.jlleitschuh.gradle.ktlint") version "12.1.2" + `maven-publish` } ktlint { @@ -76,6 +77,29 @@ tasks.named("preBuild") { } } +afterEvaluate { + publishing { + publications { + create("release") { + from(components["release"]) + groupId = "xyz.self.sdk" + artifactId = "native-shell-android" + version = "0.1.0" + } + } + repositories { + maven { + name = "GitHubPackages" + url = uri("https://maven.pkg.github.com/selfxyz/self") + credentials { + username = System.getenv("GITHUB_ACTOR") ?: project.findProperty("gpr.user") as String? ?: "" + password = System.getenv("GITHUB_TOKEN") ?: project.findProperty("gpr.token") as String? ?: "" + } + } + } + } +} + dependencies { implementation("androidx.appcompat:appcompat:1.6.1") implementation("androidx.webkit:webkit:1.9.0")