From 1d78cf874c3b7591b1d4353732339ac66fe5a2c7 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 11:15:07 +0200 Subject: [PATCH 01/16] add Python package creation --- .github/workflows/create-release.yaml | 2 +- .github/workflows/pr-build.yaml | 18 ++++++------------ .github/workflows/publish-libraries.yaml | 2 +- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/.github/workflows/create-release.yaml b/.github/workflows/create-release.yaml index 0bc5af5..611c6e2 100644 --- a/.github/workflows/create-release.yaml +++ b/.github/workflows/create-release.yaml @@ -1,4 +1,4 @@ -name: Generate code and create release +name: Generate code, create release and tag repo on: workflow_dispatch: diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 2d0e0e9..fa30d85 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -49,17 +49,6 @@ jobs: with: python-version: '3.12' - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: 21 - - - name: Set up Node - uses: actions/setup-node@v4 - with: - node-version: lts/* - - name: Set up openapi-generator-cli run: | npm install @openapitools/openapi-generator-cli -g @@ -75,4 +64,9 @@ jobs: - name: Set Python lib version working-directory: ./python/generated-library run: | - poetry version ${{ env.RELEASE_VERSION }} \ No newline at end of file + poetry version ${{ env.RELEASE_VERSION }} + + - name: build wheel + working-directory: ./python/generated-library + run: | + poetry build \ No newline at end of file diff --git a/.github/workflows/publish-libraries.yaml b/.github/workflows/publish-libraries.yaml index 2180aa3..0d4cbd8 100644 --- a/.github/workflows/publish-libraries.yaml +++ b/.github/workflows/publish-libraries.yaml @@ -14,7 +14,7 @@ env: RELEASE_VERSION: ${{ github.event.inputs.RELEASE_VERSION }} jobs: - publish_libs: + publish_java_lib: name: "Publish libraries" runs-on: [self-hosted, linux, X64] From b49347b608376f1b358334e03ee40373d8542ec7 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 11:17:48 +0200 Subject: [PATCH 02/16] pr build creates packages --- .github/workflows/pr-build.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index fa30d85..c712077 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -33,7 +33,13 @@ jobs: - name: Generate Java lib working-directory: ./java run: | - ./generate.sh + ./generate.sh + + - name: Try to build Java lib + working-directory: ./java/aicockpit-jar + run: | + mvn package --settings ${{ github.workspace }}/.github/workflows/settings.xml + ls -al ./target build-python: name: "Build Python" @@ -69,4 +75,5 @@ jobs: - name: build wheel working-directory: ./python/generated-library run: | - poetry build \ No newline at end of file + poetry build + ls ./dist \ No newline at end of file From 3ce6ad588371005e82b678dec04b81a377395948 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 11:19:16 +0200 Subject: [PATCH 03/16] pr build creates packages --- .github/workflows/pr-build.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index c712077..dd8ea6c 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -40,6 +40,10 @@ jobs: run: | mvn package --settings ${{ github.workspace }}/.github/workflows/settings.xml ls -al ./target + env: + CI: false + MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} + MAVEN_GPG_KEY: ${{ secrets.OSSRH_GPG_SECRET_KEY }} build-python: name: "Build Python" From b1d8b115e9e938318c7cfd749d055b571b1f18d6 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 11:20:31 +0200 Subject: [PATCH 04/16] pr build creates packages --- .github/workflows/pr-build.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index dd8ea6c..1a0b1a2 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -59,6 +59,11 @@ jobs: with: python-version: '3.12' + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Set up openapi-generator-cli run: | npm install @openapitools/openapi-generator-cli -g From c046b803a445262deac15d754755d8088a6f1b53 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 11:26:23 +0200 Subject: [PATCH 05/16] pr build creates packages --- .github/workflows/pr-build.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 1a0b1a2..ad6a7e8 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -59,6 +59,12 @@ jobs: with: python-version: '3.12' + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 21 + - name: Set up Node uses: actions/setup-node@v4 with: From c2490a25f104b6e3f88c6a9221f22ba9adade0a7 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 11:40:11 +0200 Subject: [PATCH 06/16] release uploads artifacts --- .github/workflows/create-release.yaml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-release.yaml b/.github/workflows/create-release.yaml index 611c6e2..171f198 100644 --- a/.github/workflows/create-release.yaml +++ b/.github/workflows/create-release.yaml @@ -62,24 +62,38 @@ jobs: working-directory: ./python/generated-library run: | poetry version ${{ env.RELEASE_VERSION }} + + - name: build wheel + working-directory: ./python/generated-library + run: | + poetry build - name: Generate Java lib working-directory: ./java run: | ./generate.sh - - name: Set Java lib version and build + - name: Set Java lib version working-directory: ./java/aicockpit-jar run: | echo "new version manually set to ${{ env.RELEASE_VERSION }}" mvn -B build-helper:parse-version versions:set -DnewVersion=${{ env.RELEASE_VERSION }} versions:commit --settings ${{ github.workspace }}/.github/workflows/settings.xml + - name: Build Java lib + working-directory: ./java/aicockpit-jar + run: | + mvn package --settings ${{ github.workspace }}/.github/workflows/settings.xml + env: + CI: false + MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} + MAVEN_GPG_KEY: ${{ secrets.OSSRH_GPG_SECRET_KEY }} + - name: Get tag name run: | echo "TAG=${{ env.RELEASE_VERSION }}" >> $GITHUB_ENV - name: Create github release - run: gh release create ${{ env.TAG }} -F CHANGELOG.md + run: gh release create ${{ env.TAG }} -F CHANGELOG.md ./java/aicockpit-jar/target/*.jar ./java/aicockpit-jar/target/*.asc ./python/generated-library/dist/*.whl ./python/generated-library/dist/*.tar.gz env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 82f42a9a4597e85ed9283eb030148de8ee980c72 Mon Sep 17 00:00:00 2001 From: Starwit Date: Thu, 21 Aug 2025 09:43:22 +0000 Subject: [PATCH 07/16] Bumping version to 0.1.6 --- java/aicockpit-jar/pom.xml | 2 +- .../main/java/de/starwit/aic/ApiException.java | 2 +- .../main/java/de/starwit/aic/model/AIModel.java | 2 +- .../aic/model/AbstractOpenApiSchema.java | 2 +- .../main/java/de/starwit/aic/model/Action.java | 2 +- .../java/de/starwit/aic/model/ActionType.java | 2 +- .../java/de/starwit/aic/model/Decision.java | 2 +- .../java/de/starwit/aic/model/DecisionType.java | 2 +- .../main/java/de/starwit/aic/model/Info.java | 2 +- .../main/java/de/starwit/aic/model/Module.java | 2 +- .../aic/model/ModuleSBOMLocationValue.java | 2 +- .../dist/starwit_aic_api-0.1.6-py3-none-any.whl | Bin 0 -> 45424 bytes .../dist/starwit_aic_api-0.1.6.tar.gz | Bin 0 -> 24506 bytes python/generated-library/pyproject.toml | 2 +- 14 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 python/generated-library/dist/starwit_aic_api-0.1.6-py3-none-any.whl create mode 100644 python/generated-library/dist/starwit_aic_api-0.1.6.tar.gz diff --git a/java/aicockpit-jar/pom.xml b/java/aicockpit-jar/pom.xml index 542b3cf..bf169b7 100644 --- a/java/aicockpit-jar/pom.xml +++ b/java/aicockpit-jar/pom.xml @@ -4,7 +4,7 @@ de.starwit.aic aicockpit-api - 0.1.5 + 0.1.6 AI Cockpit interface API Data model for AI Cockpit interfaces http://starwit.de diff --git a/java/aicockpit-jar/src/main/java/de/starwit/aic/ApiException.java b/java/aicockpit-jar/src/main/java/de/starwit/aic/ApiException.java index 1b1b12d..fd6e2f1 100644 --- a/java/aicockpit-jar/src/main/java/de/starwit/aic/ApiException.java +++ b/java/aicockpit-jar/src/main/java/de/starwit/aic/ApiException.java @@ -21,7 +21,7 @@ *

ApiException class.

*/ @SuppressWarnings("serial") -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-07-04T12:43:11.182602420Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-21T09:43:09.059871871Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ApiException extends Exception { private static final long serialVersionUID = 1L; diff --git a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/AIModel.java b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/AIModel.java index c067f92..8bdcb8b 100644 --- a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/AIModel.java +++ b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/AIModel.java @@ -51,7 +51,7 @@ /** * AIModel */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-07-04T12:43:11.182602420Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-21T09:43:09.059871871Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AIModel { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/AbstractOpenApiSchema.java b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/AbstractOpenApiSchema.java index 669d2e6..01ccc68 100644 --- a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/AbstractOpenApiSchema.java +++ b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/AbstractOpenApiSchema.java @@ -21,7 +21,7 @@ /** * Abstract class for oneOf,anyOf schemas defined in OpenAPI spec */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-07-04T12:43:11.182602420Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-21T09:43:09.059871871Z[Etc/UTC]", comments = "Generator version: 7.13.0") public abstract class AbstractOpenApiSchema { // store the actual instance of the schema/object diff --git a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Action.java b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Action.java index 3963f43..69cdc5a 100644 --- a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Action.java +++ b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Action.java @@ -50,7 +50,7 @@ /** * An actual action that a system executes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-07-04T12:43:11.182602420Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-21T09:43:09.059871871Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Action { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/ActionType.java b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/ActionType.java index deba570..b566e6c 100644 --- a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/ActionType.java +++ b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/ActionType.java @@ -49,7 +49,7 @@ /** * A type of action that a system can execute */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-07-04T12:43:11.182602420Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-21T09:43:09.059871871Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ActionType { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Decision.java b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Decision.java index 78f586b..06b3c92 100644 --- a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Decision.java +++ b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Decision.java @@ -55,7 +55,7 @@ /** * An actual decision that a system made */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-07-04T12:43:11.182602420Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-21T09:43:09.059871871Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Decision { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/DecisionType.java b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/DecisionType.java index fb4eb8d..a05cfcc 100644 --- a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/DecisionType.java +++ b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/DecisionType.java @@ -52,7 +52,7 @@ /** * A type of decision that a system can derive */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-07-04T12:43:11.182602420Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-21T09:43:09.059871871Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DecisionType { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Info.java b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Info.java index 5dee04f..2095e8a 100644 --- a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Info.java +++ b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Info.java @@ -49,7 +49,7 @@ /** * Info */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-07-04T12:43:11.182602420Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-21T09:43:09.059871871Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Info { public static final String SERIALIZED_NAME_GENERATION_DATE = "generation-date"; @SerializedName(SERIALIZED_NAME_GENERATION_DATE) diff --git a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Module.java b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Module.java index 36411e1..1a73b15 100644 --- a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Module.java +++ b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/Module.java @@ -56,7 +56,7 @@ /** * Module */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-07-04T12:43:11.182602420Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-21T09:43:09.059871871Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Module { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/ModuleSBOMLocationValue.java b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/ModuleSBOMLocationValue.java index 321dc27..b08729a 100644 --- a/java/aicockpit-jar/src/main/java/de/starwit/aic/model/ModuleSBOMLocationValue.java +++ b/java/aicockpit-jar/src/main/java/de/starwit/aic/model/ModuleSBOMLocationValue.java @@ -48,7 +48,7 @@ /** * ModuleSBOMLocationValue */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-07-04T12:43:11.182602420Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-21T09:43:09.059871871Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ModuleSBOMLocationValue { public static final String SERIALIZED_NAME_URL = "url"; @SerializedName(SERIALIZED_NAME_URL) diff --git a/python/generated-library/dist/starwit_aic_api-0.1.6-py3-none-any.whl b/python/generated-library/dist/starwit_aic_api-0.1.6-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..f67725f12bbe5a29f764975612736f787e8336b6 GIT binary patch literal 45424 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�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"] readme = "README.md" From f3645b3f2a79a75544fd056a95cc1f6aeca77a2f Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 14:03:34 +0200 Subject: [PATCH 08/16] update publish workflow --- .github/workflows/publish-libraries.yaml | 27 ++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-libraries.yaml b/.github/workflows/publish-libraries.yaml index 0d4cbd8..dd9a1bb 100644 --- a/.github/workflows/publish-libraries.yaml +++ b/.github/workflows/publish-libraries.yaml @@ -14,13 +14,27 @@ env: RELEASE_VERSION: ${{ github.event.inputs.RELEASE_VERSION }} jobs: + publish_python_lib: + name: "Publish Java library" + runs-on: [self-hosted, linux, X64] + + steps: + - name: checkout + uses: actions/checkout@v5 + with: + fetch-depth: '0' + ref: ${{ env.RELEASE_VERSION }} + + - name: TODO + run: echo "TODO" + publish_java_lib: - name: "Publish libraries" + name: "Publish Java library" runs-on: [self-hosted, linux, X64] steps: - name: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: '0' ref: ${{ env.RELEASE_VERSION }} @@ -35,6 +49,15 @@ jobs: uses: stCarolas/setup-maven@v5 with: maven-version: 3.9.2 + + - name: check git tag + run: git status + + - name: Set Java lib version + working-directory: ./java/aicockpit-jar + run: | + echo "new version manually set to ${{ env.RELEASE_VERSION }}" + mvn -B build-helper:parse-version versions:set -DnewVersion=${{ env.RELEASE_VERSION }} versions:commit --settings ${{ github.workspace }}/.github/workflows/settings.xml - name: Build Maven project working-directory: ./java/aicockpit-jar From e60a8f531d0d1524068f8599f76f5082054413e3 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 15:38:11 +0200 Subject: [PATCH 09/16] update publish workflow --- .github/workflows/publish-libraries.yaml | 41 ++++++++++++++++++++++-- README.md | 2 ++ 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-libraries.yaml b/.github/workflows/publish-libraries.yaml index dd9a1bb..a4afe2c 100644 --- a/.github/workflows/publish-libraries.yaml +++ b/.github/workflows/publish-libraries.yaml @@ -9,14 +9,19 @@ on: permissions: contents: write + id-token: write env: RELEASE_VERSION: ${{ github.event.inputs.RELEASE_VERSION }} + PYTHON_PACKAGE_NAME: starwit_aic_api jobs: publish_python_lib: - name: "Publish Java library" + name: "Publish Python library" runs-on: [self-hosted, linux, X64] + environment: + name: pypi + url: https://pypi.org/p/${{ env.PYTHON_PACKAGE_NAME }} steps: - name: checkout @@ -25,8 +30,38 @@ jobs: fetch-depth: '0' ref: ${{ env.RELEASE_VERSION }} - - name: TODO - run: echo "TODO" + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 21 + + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: lts/* + + - name: Set up openapi-generator-cli + run: | + npm install @openapitools/openapi-generator-cli -g + + - name: Install Poetry + uses: snok/install-poetry@v1 + + - name: build wheel + working-directory: ./python/generated-library + run: | + poetry build + ls ./dist + + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + packages-dir: ./python/generated-library/dist publish_java_lib: name: "Publish Java library" diff --git a/README.md b/README.md index 2598904..f07c5a6 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,8 @@ For other Java build tools, please refer to their respective documentation, to u Add the following to your `pyproject.toml` dependencies section:\ `starwit_aic_api = { git = "https://github.com/starwit/starwit-aic-api.git", subdirectory = "python/generated-library", tag = "0.0.9" }` +TODO publishing to PyPi. + ## Dev ### Run/Debug Github Actions locally `act -W .github/workflows/create-release.yaml --input-file local.inputs --secret-file local.secrets -P self-hosted=-self-hosted` From 3d708c7e5a5d02cda14700b0529a3e883314c5f8 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 15:51:44 +0200 Subject: [PATCH 10/16] update publish workflow --- .github/workflows/publish-libraries.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish-libraries.yaml b/.github/workflows/publish-libraries.yaml index a4afe2c..8f96f00 100644 --- a/.github/workflows/publish-libraries.yaml +++ b/.github/workflows/publish-libraries.yaml @@ -62,6 +62,8 @@ jobs: uses: pypa/gh-action-pypi-publish@release/v1 with: packages-dir: ./python/generated-library/dist + env: + DOCKER_HOST: /run/user/1000/docker.sock publish_java_lib: name: "Publish Java library" From ca6d6fdca5389be52ed49000c8044a9cde2713d1 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 15:57:38 +0200 Subject: [PATCH 11/16] update publish workflow --- .github/workflows/publish-libraries.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-libraries.yaml b/.github/workflows/publish-libraries.yaml index 8f96f00..8f71ec7 100644 --- a/.github/workflows/publish-libraries.yaml +++ b/.github/workflows/publish-libraries.yaml @@ -63,7 +63,7 @@ jobs: with: packages-dir: ./python/generated-library/dist env: - DOCKER_HOST: /run/user/1000/docker.sock + DOCKER_HOST: unix:///run/user/1000/docker.sock publish_java_lib: name: "Publish Java library" From 944f26c227f218c72fda61a698fe3da1fbc4b066 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 16:12:54 +0200 Subject: [PATCH 12/16] update publish workflow --- .github/workflows/publish-libraries.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/publish-libraries.yaml b/.github/workflows/publish-libraries.yaml index 8f71ec7..a4afe2c 100644 --- a/.github/workflows/publish-libraries.yaml +++ b/.github/workflows/publish-libraries.yaml @@ -62,8 +62,6 @@ jobs: uses: pypa/gh-action-pypi-publish@release/v1 with: packages-dir: ./python/generated-library/dist - env: - DOCKER_HOST: unix:///run/user/1000/docker.sock publish_java_lib: name: "Publish Java library" From 16198bf7ed8bf608067c3495a112b91696290754 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 16:16:42 +0200 Subject: [PATCH 13/16] bump java deps --- java/aicockpit-jar/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/aicockpit-jar/pom.xml b/java/aicockpit-jar/pom.xml index bf169b7..cb1a51f 100644 --- a/java/aicockpit-jar/pom.xml +++ b/java/aicockpit-jar/pom.xml @@ -75,7 +75,7 @@ com.google.code.gson gson - 2.10.1 + 2.13.1 io.gsonfire @@ -90,7 +90,7 @@ com.squareup.okio okio - 3.9.0 + 3.12.0 From 4388ecf38347011d90a34fea88b898951a064764 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 16:19:28 +0200 Subject: [PATCH 14/16] update publish workflow --- .github/workflows/publish-libraries.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/publish-libraries.yaml b/.github/workflows/publish-libraries.yaml index a4afe2c..b87a752 100644 --- a/.github/workflows/publish-libraries.yaml +++ b/.github/workflows/publish-libraries.yaml @@ -52,6 +52,11 @@ jobs: - name: Install Poetry uses: snok/install-poetry@v1 + - name: Set Python lib version + working-directory: ./python/generated-library + run: | + poetry version ${{ env.RELEASE_VERSION }} + - name: build wheel working-directory: ./python/generated-library run: | From ddfba76437fcfbf3d48b804bba513856ef120dd2 Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 16:25:12 +0200 Subject: [PATCH 15/16] adapt python publishing --- python/generated-library/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/generated-library/pyproject.toml b/python/generated-library/pyproject.toml index 3b8978c..f1b22d4 100644 --- a/python/generated-library/pyproject.toml +++ b/python/generated-library/pyproject.toml @@ -1,5 +1,5 @@ [tool.poetry] -name = "starwit_aic_api" +name = "aic_api" version = "0.1.6" description = "" authors = ["flonix8 "] From 635dd8b39750c60332c45041813f71ba9f9f577f Mon Sep 17 00:00:00 2001 From: ztarbug Date: Thu, 21 Aug 2025 16:33:45 +0200 Subject: [PATCH 16/16] deactivated Python publishing, add docs --- .github/workflows/publish-libraries.yaml | 8 ++++---- README.md | 9 +++++++++ python/generated-library/pyproject.toml | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish-libraries.yaml b/.github/workflows/publish-libraries.yaml index b87a752..4e5e33a 100644 --- a/.github/workflows/publish-libraries.yaml +++ b/.github/workflows/publish-libraries.yaml @@ -63,10 +63,10 @@ jobs: poetry build ls ./dist - - name: Publish package distributions to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - packages-dir: ./python/generated-library/dist + #- name: Publish package distributions to PyPI + # uses: pypa/gh-action-pypi-publish@release/v1 + # with: + # packages-dir: ./python/generated-library/dist publish_java_lib: name: "Publish Java library" diff --git a/README.md b/README.md index f07c5a6..facd021 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,15 @@ Add the following to your `pyproject.toml` dependencies section:\ TODO publishing to PyPi. ## Dev + +This repo is not supposed to see actual development activity. Ir shall only contain generated code for various languages and is being used to publish libraries for each supported programming languages. + +### Publish + +Workflow [publish](.github/workflows/publish-libraries.yaml) is supposed to release Java lib to Maven Central and Python package to PyPi. You have to provide release version number, to publish artifact. + +In Maven central an uploaded library still has to be manually approved for publication. You have to use proper login at https://central.sonatype.com/. + ### Run/Debug Github Actions locally `act -W .github/workflows/create-release.yaml --input-file local.inputs --secret-file local.secrets -P self-hosted=-self-hosted` diff --git a/python/generated-library/pyproject.toml b/python/generated-library/pyproject.toml index f1b22d4..3b8978c 100644 --- a/python/generated-library/pyproject.toml +++ b/python/generated-library/pyproject.toml @@ -1,5 +1,5 @@ [tool.poetry] -name = "aic_api" +name = "starwit_aic_api" version = "0.1.6" description = "" authors = ["flonix8 "]