diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..60154b7 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +# These are supported funding model platforms + +github: awxkee diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..519f394 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,39 @@ +name: Build to Maven Local + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - 'master' + tags-ignore: + - '*' + pull_request: + branches: + - 'master' + +jobs: + build: + runs-on: ubuntu-latest + environment: Maven Central + steps: + - uses: actions/checkout@v3 + - name: set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'adopt' + cache: gradle + - name: Set version variable + run: echo "GITHUB_REF_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV + - name: Compile to maven local + env: + VERSION_NAME: ${{ env.GITHUB_REF_NAME }} + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALUSERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALPASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEY }} + ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYID }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYPASSWORD }} + run: bash ./gradlew avifglide:publishToMavenLocal \ No newline at end of file diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml new file mode 100644 index 0000000..66a2767 --- /dev/null +++ b/.github/workflows/create_release.yml @@ -0,0 +1,35 @@ +name: Create Release + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + push: + tags: + - '*' + +jobs: + build: + runs-on: ubuntu-latest + environment: Maven Central + steps: + - uses: actions/checkout@v3 + - name: set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'adopt' + cache: gradle + - name: Set version variable + run: echo "GITHUB_REF_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV + - name: Compile to Maven Central + env: + VERSION_NAME: ${{ env.GITHUB_REF_NAME }} + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALUSERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALPASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEY }} + ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYID }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYPASSWORD }} + PUBLISH_STATE: Release + run: bash ./gradlew avifglide:publishAllPublicationsToMavenCentralRepository \ No newline at end of file diff --git a/avifglide/build.gradle.kts b/avifglide/build.gradle.kts index 612100f..0104ebf 100644 --- a/avifglide/build.gradle.kts +++ b/avifglide/build.gradle.kts @@ -1,8 +1,65 @@ +import com.vanniktech.maven.publish.AndroidMultiVariantLibrary + plugins { id("com.android.library") id("org.jetbrains.kotlin.android") id("kotlin-kapt") id("maven-publish") + id("signing") + id("com.vanniktech.maven.publish") version "0.34.0" +} + +mavenPublishing { + if (System.getenv("PUBLISH_STATE") == "Release") { + signAllPublications() + } +} + +mavenPublishing { + configure( + AndroidMultiVariantLibrary( + sourcesJar = true, + publishJavadocJar = true, + ) + ) + + if (System.getenv("PUBLISH_STATE") == "Release") { + coordinates("io.github.awxkee", "avif-coder-glide", System.getenv("VERSION_NAME") ?: "0.0.10") + } else { + coordinates("io.github.awxkee", "avif-coder-glide", "0.0.10") + } + + pom { + name.set("AVIF Coder") + description.set("AVIF encoder/decoder for Android") + inceptionYear.set("2025") + url.set("https://github.com/awxkee/avif-coder") + licenses { + license { + name.set("The Apache License, Version 2.0") + url.set("http://www.apache.org/licenses/LICENSE-2.0.txt") + distribution.set("http://www.apache.org/licenses/LICENSE-2.0.txt") + } + license { + name.set("The 3-Clause BSD License") + url.set("https://opensource.org/license/bsd-3-clause") + description.set("https://opensource.org/license/bsd-3-clause") + } + } + developers { + developer { + id.set("awxkee") + name.set("Radzivon Bartoshyk") + url.set("https://github.com/awxkee") + email.set("radzivon.bartoshyk@proton.me") + } + } + scm { + url.set("https://github.com/awxkee/avif-coder-glide") + connection.set("scm:git:git@github.com:awxkee/avif-coder-glide.git") + developerConnection.set("scm:git:ssh://git@github.com/awxkee/avif-coder-glide.git") + } + } } task("androidSourcesJar", Jar::class) {