Skip to content

Commit

Permalink
NO-ISSUE: Use maven-m2-repo-via-http to build sonataflow-builder/devm…
Browse files Browse the repository at this point in the history
…ode-images (apache#2617)
  • Loading branch information
thiagoelg authored Sep 27, 2024
1 parent b4e3804 commit 275c07d
Show file tree
Hide file tree
Showing 14 changed files with 183 additions and 12 deletions.
2 changes: 1 addition & 1 deletion devbox.lock
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@
},
"[email protected]": {
"last_modified": "2024-03-22T11:26:23Z",
"plugin_version": "0.0.3",
"plugin_version": "0.0.4",
"resolved": "github:NixOS/nixpkgs/a3ed7406349a9335cb4c2a71369b697cecd9d351#python312",
"source": "devbox-search",
"version": "3.12.2",
Expand Down
8 changes: 8 additions & 0 deletions packages/sonataflow-builder-image/env/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@

const { varsWithName, composeEnv, getOrDefault } = require("@kie-tools-scripts/build-env");

const {
env: { mavenM2RepoViaHttpImage: mavenM2RepoViaHttpImageEnv },
} = require("@kie-tools/maven-m2-repo-via-http-image/env");

const rootEnv = require("@kie-tools/root-env/env");

module.exports = composeEnv([rootEnv], {
Expand Down Expand Up @@ -47,6 +51,10 @@ module.exports = composeEnv([rootEnv], {
account: getOrDefault(this.vars.SONATAFLOW_BUILDER_IMAGE__account),
name: getOrDefault(this.vars.SONATAFLOW_BUILDER_IMAGE__name),
buildTag: getOrDefault(this.vars.SONATAFLOW_BUILDER_IMAGE__buildTag),
version: require("../package.json").version,
dev: {
mavenM2RepoViaHttpImage: `${mavenM2RepoViaHttpImageEnv.registry}/${mavenM2RepoViaHttpImageEnv.account}/${mavenM2RepoViaHttpImageEnv.name}:${mavenM2RepoViaHttpImageEnv.buildTag}`,
},
},
};
},
Expand Down
14 changes: 11 additions & 3 deletions packages/sonataflow-builder-image/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,14 @@
"url": "https://github.com/apache/incubator-kie-tools/issues"
},
"scripts": {
"build:dev": "run-script-if --bool \"$(build-env containerImages.build)\" --then \"pnpm test\" \"pnpm image:build\"",
"build:prod": "pnpm build:dev && pnpm image:test",
"build": "run-script-if --bool \"$(build-env containerImages.build)\" --then \"pnpm m2-repo-via-http:container:run\" \"pnpm test\" \"pnpm image:build\" --finally \"pnpm m2-repo-via-http:container:kill\"",
"build:dev": "pnpm build",
"build:prod": "pnpm build && pnpm image:test",
"copy:maven-m2-repo-via-http-image--settings-xml": "run-script-os",
"copy:maven-m2-repo-via-http-image--settings-xml:linux:darwin": "M2_REPO_VIA_HTTP_URL_WITHOUT_PROTOCOL=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' m2-repo-via-http) envsubst < build/modules/kogito-maven/common/maven/maven-m2-repo-via-http-settings.xml.envsubst > build/modules/kogito-maven/common/maven/maven-m2-repo-via-http-settings.xml && rm build/modules/kogito-maven/common/maven/maven-m2-repo-via-http-settings.xml.envsubst",
"copy:maven-m2-repo-via-http-image--settings-xml:win32": "echo \"Build skipped on macOS and Windows\"",
"copy-assets": "run-script-os",
"copy-assets:linux:darwin": "rimraf build && rsync -av --exclude '*.bats' ./node_modules/@kie-tools/sonataflow-image-common/resources/ build && cp -R resources/* build",
"copy-assets:linux:darwin": "rimraf build && rsync -av --exclude '*.bats' ./node_modules/@kie-tools/sonataflow-image-common/resources/ build && cp -R resources/* build && pnpm copy:maven-m2-repo-via-http-image--settings-xml",
"copy-test-assets": "run-script-os",
"copy-test-assets:linux:darwin": "cp -R test-resources/* build",
"format": "prettier --write . --ignore-path=../../.prettierignore --ignore-path=../../.gitignore",
Expand All @@ -27,6 +31,8 @@
"image:test:darwin:win32": "echo \"Tests skipped on macOS and Windows\"",
"image:test:linux": "pnpm copy-test-assets && pnpm setup:env make -C ./build test-image",
"install": "node install.js && pnpm format",
"m2-repo-via-http:container:kill": "(docker container kill m2-repo-via-http || true) && (docker container rm m2-repo-via-http || true)",
"m2-repo-via-http:container:run": "(pnpm m2-repo-via-http:container:kill || true) && docker run --name m2-repo-via-http -v \"$(mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout):/var/www/html\" -dit $(build-env sonataflowBuilderImage.dev.mavenM2RepoViaHttpImage)",
"setup:env": ". ./node_modules/@kie-tools/python-venv/venv/bin/activate && cross-env KOGITO_IMAGE_REGISTRY=$(build-env sonataflowBuilderImage.registry) KOGITO_IMAGE_REGISTRY_ACCOUNT=$(build-env sonataflowBuilderImage.account) KOGITO_IMAGE_NAME=$(build-env sonataflowBuilderImage.name) KOGITO_IMAGE_TAG=$(build-env sonataflowBuilderImage.buildTag) QUARKUS_PLATFORM_VERSION=$(build-env quarkusPlatform.version) KOGITO_VERSION=$(build-env kogitoRuntime.version)",
"test": "run-script-os",
"test:cleanup": "mv dist-tests/report.xml dist-tests/junit-report.xml || true",
Expand All @@ -36,6 +42,8 @@
"test:win32": "echo \"Tests are skipped in Windows\""
},
"devDependencies": {
"@kie-tools/image-builder": "workspace:*",
"@kie-tools/maven-m2-repo-via-http-image": "workspace:*",
"@kie-tools/python-venv": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"@kie-tools/sonataflow-image-common": "workspace:*",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,6 @@ tar xf "${SOURCES_DIR}"/kogito-swf-maven-repo.tar -C "${KOGITO_HOME}"/.m2/reposi

chown -R 1001:0 "${KOGITO_HOME}"
chmod -R ug+rwX "${KOGITO_HOME}"

# Cleanup Maven M2 Repo Via HTTP Settings XML
rm ${MAVEN_CONTAINER_BUILD_SETTINGS_PATH}
7 changes: 7 additions & 0 deletions packages/sonataflow-devmode-image/env/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@
const { varsWithName, composeEnv, getOrDefault } = require("@kie-tools-scripts/build-env");
const sonataFlowQuarkusDevUiEnv = require("@kie-tools/sonataflow-quarkus-devui/env");

const {
env: { mavenM2RepoViaHttpImage: mavenM2RepoViaHttpImageEnv },
} = require("@kie-tools/maven-m2-repo-via-http-image/env");

const rootEnv = require("@kie-tools/root-env/env");

module.exports = composeEnv([rootEnv], {
Expand Down Expand Up @@ -53,6 +57,9 @@ module.exports = composeEnv([rootEnv], {
name: getOrDefault(this.vars.SONATAFLOW_DEVMODE_IMAGE__name),
buildTag: getOrDefault(this.vars.SONATAFLOW_DEVMODE_IMAGE__buildTag),
sonataflowQuarkusDevUiVersion: getOrDefault(this.vars.SONATAFLOW_DEVMODE_IMAGE__sonataflowQuarkusDevUiVersion),
dev: {
mavenM2RepoViaHttpImage: `${mavenM2RepoViaHttpImageEnv.registry}/${mavenM2RepoViaHttpImageEnv.account}/${mavenM2RepoViaHttpImageEnv.name}:${mavenM2RepoViaHttpImageEnv.buildTag}`,
},
},
};
},
Expand Down
14 changes: 11 additions & 3 deletions packages/sonataflow-devmode-image/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,14 @@
"url": "https://github.com/apache/incubator-kie-tools/issues"
},
"scripts": {
"build:dev": "run-script-if --bool \"$(build-env containerImages.build)\" --then \"pnpm copy-assets\" \"pnpm image:build\"",
"build:prod": "pnpm build:dev && pnpm image:test",
"build": "run-script-if --bool \"$(build-env containerImages.build)\" --then \"pnpm m2-repo-via-http:container:run\" \"pnpm copy-assets\" \"pnpm image:build\" --finally \"pnpm m2-repo-via-http:container:kill\"",
"build:dev": "pnpm build",
"build:prod": "pnpm build && pnpm image:test",
"copy:maven-m2-repo-via-http-image--settings-xml": "run-script-os",
"copy:maven-m2-repo-via-http-image--settings-xml:linux:darwin": "M2_REPO_VIA_HTTP_URL_WITHOUT_PROTOCOL=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' m2-repo-via-http) envsubst < build/modules/kogito-maven/common/maven/maven-m2-repo-via-http-settings.xml.envsubst > build/modules/kogito-maven/common/maven/maven-m2-repo-via-http-settings.xml && rm build/modules/kogito-maven/common/maven/maven-m2-repo-via-http-settings.xml.envsubst",
"copy:maven-m2-repo-via-http-image--settings-xml:win32": "echo \"Build skipped on macOS and Windows\"",
"copy-assets": "run-script-os",
"copy-assets:linux:darwin": "rimraf build && cp -R ./node_modules/@kie-tools/sonataflow-image-common/resources build && cp -R resources/* build && pnpm copy-devui-repo",
"copy-assets:linux:darwin": "rimraf build && cp -R ./node_modules/@kie-tools/sonataflow-image-common/resources build && cp -R resources/* build && pnpm copy-devui-repo && pnpm copy:maven-m2-repo-via-http-image--settings-xml",
"copy-devui-repo": "tar -C ~/.m2/repository/org/apache/kie/ -cvf build/modules/sonataflow/devmode/build-config/sonataflow-quarkus-devui-maven-repo.tar sonataflow && tar -C ~/.m2/repository/org/kie/ -cvf build/modules/sonataflow/devmode/build-config/kie-tools-maven-base-maven-repo.tar kie-tools-maven-base",
"copy-test-assets": "run-script-os",
"copy-test-assets:linux:darwin": "cp -R test-resources/* build",
Expand All @@ -28,9 +32,13 @@
"image:test:linux": "pnpm copy-test-assets && pnpm setup:env make -C ./build test-image",
"image:test:win32": "echo \"Tests skipped on Windows\"",
"install": "node install.js && pnpm format",
"m2-repo-via-http:container:kill": "(docker container kill m2-repo-via-http || true) && (docker container rm m2-repo-via-http || true)",
"m2-repo-via-http:container:run": "(pnpm m2-repo-via-http:container:kill || true) && docker run --name m2-repo-via-http -v \"$(mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout):/var/www/html\" -dit $(build-env sonataflowDevModeImage.dev.mavenM2RepoViaHttpImage)",
"setup:env": ". ./node_modules/@kie-tools/python-venv/venv/bin/activate && cross-env KOGITO_IMAGE_REGISTRY=$(build-env sonataflowDevModeImage.registry) KOGITO_IMAGE_REGISTRY_ACCOUNT=$(build-env sonataflowDevModeImage.account) KOGITO_IMAGE_NAME=$(build-env sonataflowDevModeImage.name) KOGITO_IMAGE_TAG=$(build-env sonataflowDevModeImage.buildTag) QUARKUS_PLATFORM_VERSION=$(build-env quarkusPlatform.version) KOGITO_VERSION=$(build-env kogitoRuntime.version) SONATAFLOW_QUARKUS_DEVUI_VERSION=$(build-env sonataflowDevModeImage.sonataflowQuarkusDevUiVersion)"
},
"devDependencies": {
"@kie-tools/image-builder": "workspace:*",
"@kie-tools/maven-m2-repo-via-http-image": "workspace:*",
"@kie-tools/python-venv": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"@kie-tools/sonataflow-image-common": "workspace:*",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,6 @@ tar xf "${SOURCES_DIR}"/kogito-swf-maven-repo.tar -C "${KOGITO_HOME}"/.m2/reposi

chown -R 1001:0 "${KOGITO_HOME}"
chmod -R ug+rwX "${KOGITO_HOME}"

# Cleanup Maven M2 Repo Via HTTP Settings XML
rm ${MAVEN_CONTAINER_BUILD_SETTINGS_PATH}
2 changes: 1 addition & 1 deletion packages/sonataflow-image-common/resources/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

# Image build envs
CEKIT_BUILD_OPTIONS ?=
CEKIT_CMD := cekit ${CEKIT_BUILD_OPTIONS}
CEKIT_CMD := cekit
BUILD_ENGINE ?= docker
BUILD_ENGINE_OPTIONS ?=

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
<settings
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd"
>
<mirrors>
<mirror>
<id>kie-tools--maven-m2-repo-via-http-allowed</id>
<mirrorOf>kie-tools--maven-m2-repo-via-http</mirrorOf>
<name>Mirror to override default blocking mirror that blocks http.</name>
<url>http://$M2_REPO_VIA_HTTP_URL_WITHOUT_PROTOCOL</url>
</mirror>
</mirrors>

<proxies>
<!-- ### configured http proxy ### -->
</proxies>

<profiles>
<!-- ### extra maven repositories ### -->

<profile>
<id>kie-tools--maven-m2-repo-via-http-allowed-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>kie-tools--maven-m2-repo-via-http</id>
<name>KIE Tools :: Maven M2 Repo via HTTP</name>
<url>http://$M2_REPO_VIA_HTTP_URL_WITHOUT_PROTOCOL/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>kie-tools--maven-m2-repo-via-http</id>
<name>KIE Tools :: Maven M2 Repo via HTTP</name>
<url>http://$M2_REPO_VIA_HTTP_URL_WITHOUT_PROTOCOL/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>

<profile>
<id>kogito-images</id>
<repositories>
<repository>
<id>apache-public-repository-group</id>
<name>Apache Public Repository Group</name>
<url>https://repository.apache.org/content/groups/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
<!-- ### configured repositories ### -->
</repositories>

<pluginRepositories>
<pluginRepository>
<id>apache-public-repository-group</id>
<name>Apache Public Repository Group</name>
<url>https://repository.apache.org/content/groups/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</pluginRepository>
<!-- ### configured plugin repositories ### -->
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!-- ### extra maven profile ### -->
<activeProfile>kogito-images</activeProfile>
<activeProfile>kie-tools--maven-m2-repo-via-http-allowed-profile</activeProfile>
</activeProfiles>
</settings>
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ envs:
- name: "MAVEN_SETTINGS_PATH"
description: "The location of the settings.xml file"
value: "${KOGITO_HOME}/.m2/settings.xml"
- name: "MAVEN_CONTAINER_BUILD_SETTINGS_PATH"
description: "The location of the settings.xml file during container image build"
value: "${KOGITO_HOME}/.m2/maven-m2-repo-via-http-settings.xml"
- name: "HTTP_PROXY"
description: "The location of the http proxy, will be used for both Maven builds and Java runtime."
example: "http://127.0.0.1:8080"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ chmod -R ug+rwX "${KOGITO_HOME}"

cd "${KOGITO_HOME}"

# Create app
"${LAUNCH_DIR}"/create-app.sh
# Create app (settings.xml path is replaced only for these commands and automatically restored when they end)
env MAVEN_SETTINGS_PATH=${MAVEN_CONTAINER_BUILD_SETTINGS_PATH} "${LAUNCH_DIR}"/create-app.sh

"${BUILD_DIR}"/cleanup_project.sh
"${BUILD_DIR}"/zip_files.sh
env MAVEN_SETTINGS_PATH=${MAVEN_CONTAINER_BUILD_SETTINGS_PATH} "${BUILD_DIR}"/cleanup_project.sh
env MAVEN_SETTINGS_PATH=${MAVEN_CONTAINER_BUILD_SETTINGS_PATH} "${BUILD_DIR}"/zip_files.sh

chown -R 1001:0 "${KOGITO_HOME}"
chmod -R ug+rwX "${KOGITO_HOME}"
12 changes: 12 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions repo/graph.dot
Original file line number Diff line number Diff line change
Expand Up @@ -576,13 +576,15 @@ digraph G {
"swf-vscode-extension" -> "@kie-tools-core/webpack-base" [ style = "dashed", color = "blue" ];
"swf-vscode-extension" -> "@kie-tools/serverless-workflow-diagram-editor-assets" [ style = "dashed", color = "blue" ];
"swf-vscode-extension" -> "@kie-tools/vscode-extension-common-test-helpers" [ style = "dashed", color = "blue" ];
"@kie-tools/sonataflow-builder-image" -> "@kie-tools/maven-m2-repo-via-http-image" [ style = "dashed", color = "black" ];
"@kie-tools/sonataflow-builder-image" -> "@kie-tools/sonataflow-image-common" [ style = "dashed", color = "black" ];
"sonataflow-deployment-webapp" -> "@kie-tools-core/react-hooks" [ style = "solid", color = "blue" ];
"sonataflow-deployment-webapp" -> "@kie-tools/runtime-tools-shared-webapp-components" [ style = "solid", color = "blue" ];
"sonataflow-deployment-webapp" -> "@kie-tools/runtime-tools-swf-webapp-components" [ style = "solid", color = "blue" ];
"sonataflow-deployment-webapp" -> "@kie-tools/sonataflow-dev-app" [ style = "dashed", color = "blue" ];
"@kie-tools/sonataflow-dev-app" -> "@kie-tools/eslint" [ style = "dashed", color = "black" ];
"@kie-tools/sonataflow-dev-app" -> "@kie-tools/root-env" [ style = "dashed", color = "black" ];
"@kie-tools/sonataflow-devmode-image" -> "@kie-tools/maven-m2-repo-via-http-image" [ style = "dashed", color = "black" ];
"@kie-tools/sonataflow-devmode-image" -> "@kie-tools/sonataflow-image-common" [ style = "dashed", color = "black" ];
"@kie-tools/sonataflow-devmode-image" -> "@kie-tools/sonataflow-quarkus-devui" [ style = "dashed", color = "black" ];
"@kie-tools/sonataflow-image-common" -> "@kie-tools/python-venv" [ style = "dashed", color = "black" ];
Expand Down
10 changes: 10 additions & 0 deletions repo/graph.json
Original file line number Diff line number Diff line change
Expand Up @@ -1940,11 +1940,21 @@
"target": "@kie/kogito-jobs-service-postgresql-image",
"weight": 1
},
{
"source": "@kie-tools/sonataflow-builder-image",
"target": "@kie-tools/maven-m2-repo-via-http-image",
"weight": 1
},
{
"source": "@kie-tools/sonataflow-builder-image",
"target": "@kie-tools/sonataflow-image-common",
"weight": 1
},
{
"source": "@kie-tools/sonataflow-devmode-image",
"target": "@kie-tools/maven-m2-repo-via-http-image",
"weight": 1
},
{
"source": "@kie-tools/sonataflow-devmode-image",
"target": "@kie-tools/sonataflow-image-common",
Expand Down

0 comments on commit 275c07d

Please sign in to comment.