From efd3ae2bb419b72d5236f5ca2ddc44569d7f26ce Mon Sep 17 00:00:00 2001 From: Momo Kornher Date: Mon, 17 Jun 2024 11:16:18 +0100 Subject: [PATCH 1/3] feat: publish for java --- .github/workflows/build.yml | 29 +++++++++++++++++++++++ .github/workflows/release-v4.yml | 40 ++++++++++++++++++++++++++++++++ .github/workflows/release.yml | 40 ++++++++++++++++++++++++++++++++ .mergify.yml | 2 ++ .projen/tasks.json | 12 ++++++++++ .projenrc.ts | 5 ++++ package.json | 8 +++++++ tsconfig.json | 2 +- 8 files changed, 137 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 19c00899..7d52bd1b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -134,6 +134,35 @@ jobs: run: cd .repo && npx projen package:js - name: Collect js Artifact run: mv .repo/dist dist + package-java: + needs: build + runs-on: ubuntu-latest + permissions: {} + if: "! needs.build.outputs.self_mutation_happened" + steps: + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 11.x + - uses: actions/setup-node@v4 + with: + node-version: 18.x + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Prepare Repository + run: mv dist .repo + - name: Install Dependencies + run: cd .repo && npm ci + - name: Create java artifact + run: cd .repo && npx projen package:java + - name: Collect java Artifact + run: mv .repo/dist dist package-python: needs: build runs-on: ubuntu-latest diff --git a/.github/workflows/release-v4.yml b/.github/workflows/release-v4.yml index 081936c3..10123324 100644 --- a/.github/workflows/release-v4.yml +++ b/.github/workflows/release-v4.yml @@ -69,6 +69,7 @@ jobs: needs: - release - release_npm + - release_maven - release_pypi - release_nuget - release_golang @@ -134,6 +135,45 @@ jobs: run: npx -p publib@latest publib-npm env: NPM_CONFIG_PROVENANCE: "true" + release_maven: + name: Publish to Maven Central + needs: release + runs-on: ubuntu-latest + permissions: + contents: read + if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha + steps: + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 11.x + - uses: actions/setup-node@v4 + with: + node-version: 18.x + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Prepare Repository + run: mv dist .repo + - name: Install Dependencies + run: cd .repo && npm ci + - name: Create java artifact + run: cd .repo && npx projen package:java + - name: Collect java Artifact + run: mv .repo/dist dist + - name: Release + env: + MAVEN_GPG_PRIVATE_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} + MAVEN_GPG_PRIVATE_KEY_PASSPHRASE: ${{ secrets.MAVEN_GPG_PRIVATE_KEY_PASSPHRASE }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_STAGING_PROFILE_ID: ${{ secrets.MAVEN_STAGING_PROFILE_ID }} + run: npx -p publib@latest publib-maven release_pypi: name: Publish to PyPI needs: release diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b831aab9..d5fa45b4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -69,6 +69,7 @@ jobs: needs: - release - release_npm + - release_maven - release_pypi - release_nuget - release_golang @@ -142,6 +143,45 @@ jobs: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} env: NPM_CONFIG_PROVENANCE: "true" + release_maven: + name: Publish to Maven Central + needs: release + runs-on: ubuntu-latest + permissions: + contents: read + if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha + steps: + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 11.x + - uses: actions/setup-node@v4 + with: + node-version: 18.x + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Prepare Repository + run: mv dist .repo + - name: Install Dependencies + run: cd .repo && npm ci + - name: Create java artifact + run: cd .repo && npx projen package:java + - name: Collect java Artifact + run: mv .repo/dist dist + - name: Release + env: + MAVEN_GPG_PRIVATE_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} + MAVEN_GPG_PRIVATE_KEY_PASSPHRASE: ${{ secrets.MAVEN_GPG_PRIVATE_KEY_PASSPHRASE }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_STAGING_PROFILE_ID: ${{ secrets.MAVEN_STAGING_PROFILE_ID }} + run: npx -p publib@latest publib-maven release_pypi: name: Publish to PyPI needs: release diff --git a/.mergify.yml b/.mergify.yml index ba81c402..74800adc 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -8,6 +8,7 @@ queue_rules: - -label~=(do-not-merge) - status-success=build - status-success=package-js + - status-success=package-java - status-success=package-python - status-success=package-dotnet - status-success=package-go @@ -30,6 +31,7 @@ pull_request_rules: - -label~=(do-not-merge) - status-success=build - status-success=package-js + - status-success=package-java - status-success=package-python - status-success=package-dotnet - status-success=package-go diff --git a/.projen/tasks.json b/.projen/tasks.json index 5c9d4230..a2f59b6f 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -192,6 +192,9 @@ { "spawn": "package:js" }, + { + "spawn": "package:java" + }, { "spawn": "package:python" }, @@ -221,6 +224,15 @@ } ] }, + "package:java": { + "name": "package:java", + "description": "Create java language bindings", + "steps": [ + { + "exec": "jsii-pacmak -v --target java" + } + ] + }, "package:js": { "name": "package:js", "description": "Create js language bindings", diff --git a/.projenrc.ts b/.projenrc.ts index 23e92d96..878652af 100644 --- a/.projenrc.ts +++ b/.projenrc.ts @@ -108,6 +108,11 @@ const project = new awscdk.AwsCdkConstructLibrary({ githubUseSsh: true, githubDeployKeySecret: 'GO_DEPLOY_KEY', }, + publishToMaven: { + mavenGroupId: 'io.github.mrgrain', + mavenArtifactId: 'cdk-esbuild', + javaPackage: 'io.github.mrgrain.cdk-esbuild', + }, catalog: { twitter: '@mrgrain', }, diff --git a/package.json b/package.json index 4d87e4ff..e3c9b352 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "package-all": "npx projen package-all", "package:dotnet": "npx projen package:dotnet", "package:go": "npx projen package:go", + "package:java": "npx projen package:java", "package:js": "npx projen package:js", "package:python": "npx projen package:python", "post-compile": "npx projen post-compile", @@ -143,6 +144,13 @@ "jsii": { "outdir": "dist", "targets": { + "java": { + "package": "io.github.mrgrain.cdk-esbuild", + "maven": { + "groupId": "io.github.mrgrain", + "artifactId": "cdk-esbuild" + } + }, "python": { "distName": "mrgrain.cdk-esbuild", "module": "mrgrain.cdk_esbuild" diff --git a/tsconfig.json b/tsconfig.json index 1c84326a..32598809 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -35,7 +35,7 @@ ], "exclude": [ "node_modules", - "/home/runner/work/cdk-esbuild/cdk-esbuild/lib/.types-compat" + "/Users/kornherm/code/mrgrain/cdk-esbuild/lib/.types-compat" ], "_generated_by_jsii_": "Generated by jsii - safe to delete, and ideally should be in .gitignore" } \ No newline at end of file From 3cc69cf96388727a61b1dc513987d9abbf0698c2 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 17 Jun 2024 10:25:51 +0000 Subject: [PATCH 2/3] chore: self mutation Signed-off-by: github-actions --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 32598809..1c84326a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -35,7 +35,7 @@ ], "exclude": [ "node_modules", - "/Users/kornherm/code/mrgrain/cdk-esbuild/lib/.types-compat" + "/home/runner/work/cdk-esbuild/cdk-esbuild/lib/.types-compat" ], "_generated_by_jsii_": "Generated by jsii - safe to delete, and ideally should be in .gitignore" } \ No newline at end of file From a91913bba0a5021422ff7c3c79601c4879e781f4 Mon Sep 17 00:00:00 2001 From: Momo Kornher Date: Mon, 17 Jun 2024 11:36:37 +0100 Subject: [PATCH 3/3] fix package name --- .projenrc.ts | 4 ++-- package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.projenrc.ts b/.projenrc.ts index 878652af..df6502dd 100644 --- a/.projenrc.ts +++ b/.projenrc.ts @@ -110,8 +110,8 @@ const project = new awscdk.AwsCdkConstructLibrary({ }, publishToMaven: { mavenGroupId: 'io.github.mrgrain', - mavenArtifactId: 'cdk-esbuild', - javaPackage: 'io.github.mrgrain.cdk-esbuild', + mavenArtifactId: 'cdkesbuild', + javaPackage: 'io.github.mrgrain.cdkesbuild', }, catalog: { twitter: '@mrgrain', diff --git a/package.json b/package.json index e3c9b352..881dd048 100644 --- a/package.json +++ b/package.json @@ -145,10 +145,10 @@ "outdir": "dist", "targets": { "java": { - "package": "io.github.mrgrain.cdk-esbuild", + "package": "io.github.mrgrain.cdkesbuild", "maven": { "groupId": "io.github.mrgrain", - "artifactId": "cdk-esbuild" + "artifactId": "cdkesbuild" } }, "python": {