diff --git a/.github/workflows/generate-and-publish-sdk-sources.yaml b/.github/workflows/generate-and-publish-sdk-sources.yaml index 697d13298..e6140e3a2 100644 --- a/.github/workflows/generate-and-publish-sdk-sources.yaml +++ b/.github/workflows/generate-and-publish-sdk-sources.yaml @@ -1,23 +1,44 @@ -name: Generate and Publish SDK Sources - on: workflow_dispatch: inputs: version: - description: | - SDK Version. - E.g., 1.0.0, 1.0.1, 1.0.0-SNAPSHOT, etc. - required: true type: string + description: "Version to publish. For snapshot releases, add `-SNAPSHOT` suffix to the version. For example, `1.0.0-SNAPSHOT`." + required: true jobs: - generate-and-publish-sources: - uses: ExpediaGroup/expediagroup-java-sdk/.github/workflows/selfserve-full-workflow.yaml@v20250304 - secrets: inherit - with: - name: xap - ref: ${{ github.head_ref || github.ref_name }} - repository: 'ExpediaGroup/xap-java-sdk' - sdk_repo_ref: 'v20250304' - transformations: '--headers key --operationIdsToTags' - version: ${{ inputs.version }} + generate-and-publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-java@v3 + with: + distribution: 'corretto' + java-version: '21' + + - uses: gradle/actions/setup-gradle@v4 + with: + gradle-version: "8.13" + + - name: Install Post Processor + working-directory: generator/src/main/resources/post-processor + run: npm ci && npm run clean && npm run compile + + - run: gradle build + + - name: Generate SDK + working-directory: generator + run: | + export KOTLIN_POST_PROCESS_FILE="npm run --prefix src/main/resources/post-processor process" + gradle openApiGenerate + + - name: Open PR + uses: peter-evans/create-pull-request@v7 + working-directory: xap-sdk + with: + token: ${{ secrets.GITHUB_PAT }} + commit-message: "chore: publishing code for sdk release $(date +'%Y%m%d%H%M%S')" + title: "chore: code update on $(date +'%Y%m%d%H%M%S')" + branch: "xap-sdk-code-update-$(date +'%Y%m%d%H%M%S')" + add-paths: . diff --git a/.github/workflows/generate-docs-site.yml b/.github/workflows/generate-docs-site.yml index 99492167a..734309dbc 100644 --- a/.github/workflows/generate-docs-site.yml +++ b/.github/workflows/generate-docs-site.yml @@ -14,9 +14,9 @@ permissions: jobs: deploy-reference-docs: - uses: "ExpediaGroup/expediagroup-java-sdk/.github/workflows/generate-ref-docs.yaml@main" + uses: "ExpediaGroup/expediagroup-java-sdk/.github/workflows/generate-ref-docs.yaml@feature/new-sdk-core" with: - buildsystem: 'maven' ref: ${{ inputs.ref != '' && inputs.ref || github.ref }} + sources_dir: 'xap-sdk' secrets: GITHUB_PAT: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} diff --git a/.github/workflows/release-sdk.yaml b/.github/workflows/release-sdk.yaml index 6323bc327..0ba121524 100644 --- a/.github/workflows/release-sdk.yaml +++ b/.github/workflows/release-sdk.yaml @@ -11,19 +11,27 @@ on: default: '' jobs: - integration-tests: - strategy: - matrix: - jdk: [ 8, 11, 17, 21 ] - uses: ./.github/workflows/integration-tests.yaml - secrets: inherit - with: - branch: ${{ inputs.branch }} - jdk: ${{ matrix.jdk }} + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.ref_name }} - release-sdk: - uses: ExpediaGroup/expediagroup-java-sdk/.github/workflows/selfserve-release-sdk.yaml@v20250304 - needs: [ integration-tests ] - secrets: inherit - with: - branch: ${{ inputs.branch }} + - name: Publish SDK + working-directory: xap-sdk + env: + GPG_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }} + GPG_SECRET: ${{ secrets.GPG_PRIVATE_KEY }} + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + run: | + version="${{ github.event.inputs.version }}" + version="${version// /}" + if [[ "$version" == *"-SNAPSHOT" ]]; then + gradle publishSnapshot -PVERSION="${version}" + else + gradle publishToSonatype closeAndReleaseSonatypeStagingRepository -PVERSION="${version}" + fi diff --git a/xap-sdk/build.gradle.kts b/xap-sdk/build.gradle.kts index 6d0d89899..aa516d463 100644 --- a/xap-sdk/build.gradle.kts +++ b/xap-sdk/build.gradle.kts @@ -1,6 +1,7 @@ plugins { id("signing") id("maven-publish") + id("org.jetbrains.dokka") version "2.0.0" id("com.github.hierynomus.license") version "0.16.1" } @@ -20,10 +21,35 @@ version = property("VERSION") as String dependencies { api("com.expediagroup:expediagroup-sdk-rest:0.0.6-alpha") + implementation("com.fasterxml.jackson.core:jackson-databind:2.18.2") implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.18.2") runtimeOnly("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.2") + implementation("org.slf4j:slf4j-api:2.0.17") + + dokkaHtmlPlugin("org.jetbrains.dokka:versioning-plugin:2.0.0") +} + +dokka { + moduleName = "XAP SDK" + + pluginsConfiguration { + html { + val dokkaAssets = File(project.findProperty("dokka-assets.location").toString()) + + customAssets.from(File(dokkaAssets, "logo-icon.svg")) + customStyleSheets.from(File(dokkaAssets, "custom-styles.css")) + } + + versioning { + version = project.property("VERSION") as String + + olderVersionsDir.set(File(project.findProperty("dokka-old-versions.location").toString())) + + renderVersionsNavigationOnAllPages = true + } + } } apply("$rootDir/gradle-tasks/publish.gradle.kts") diff --git a/xap-sdk/gradle.properties b/xap-sdk/gradle.properties index 28dd895c5..5e1efac10 100644 --- a/xap-sdk/gradle.properties +++ b/xap-sdk/gradle.properties @@ -2,3 +2,4 @@ ARTIFACT_NAME=xap-sdk DESCRIPTION=The Expedia API Platform (XAP) SDK VERSION=2.0.0-SNAPSHOT +org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled