Skip to content

Commit

Permalink
doc: first full version
Browse files Browse the repository at this point in the history
  • Loading branch information
mrebiai committed Jan 23, 2025
1 parent 9eb51f1 commit 75776c8
Show file tree
Hide file tree
Showing 5 changed files with 109 additions and 36 deletions.
1 change: 1 addition & 0 deletions custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ body:after {
width: 10em;
height: 10em;
background-image: url("data:image/png;base64,${QRCODE_PNG_BASE64}");
background-size: 5em;
background-repeat: no-repeat;
background-position: left top;
}
Expand Down
26 changes: 17 additions & 9 deletions demo.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
#!/usr/bin/env bash

NB_THREADS=8
DBT_PROJECT="burger_factory"
IT_PATH="${DBT_PROJECT}/it"
REPORTS_PATH="target/karate-reports"

dbt_unit_tests() {
dbt test
}
Expand All @@ -9,20 +14,23 @@ dbt_run() {
}

karate_jar() {
echo "TODO"
# tag::karate_jar[]
java -cp karate-data-standalone.jar -Dextensions=snowflake \
com.intuit.karate.Main ${IT_PATH}/features --configdir ${IT_PATH} --reportdir ${REPORTS_PATH} --threads ${NB_THREADS}
# end::karate_jar[]
}

karate_docker() {
# tag::karate_docker[]
docker run --rm \
-v $(pwd)/burger_factory/it/features:/features \
-v $(pwd)/burger_factory/it/karate-config.js:/karate-config.js \
-v $(pwd)/target:/target \
-v $(pwd)/${IT_PATH}:/${IT_PATH} \
-v $(pwd)/${REPORTS_PATH}:/${REPORTS_PATH} \
-v ${SNOWFLAKE_PRIVATE_KEY_PATH}:/${SNOWFLAKE_PRIVATE_KEY_PATH} \
-v $(pwd)/burger_factory:/burger_factory \
--env-file ./demo.env \
-e KARATE_EXTENSIONS=snowflake \
karate-data:latest features --threads 8
-v $(pwd)/${DBT_PROJECT}:/${DBT_PROJECT} \
--env-file ./demo.env -e KARATE_EXTENSIONS=snowflake \
karate-data:latest ${IT_PATH}/features --configdir ${IT_PATH} --reportdir ${REPORTS_PATH} --threads ${NB_THREADS}
# end::karate_docker[]

# fix permissions
docker run --rm \
-v $(pwd)/target:/reports \
Expand Down
Binary file added images/qrcode-feedback.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/qrcode-slides.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
118 changes: 91 additions & 27 deletions presentation_en.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -126,43 +126,83 @@ image::diagrams/data-pipeline-elt.svg[width=500]
* `karate.exec(<any_command>)`
* 😃

== 💡Lectra `karate-data`+++<br/>+++💪😎👍
[.columns]
== 💡`karate-data`=extensions
[%step]
* Fat JAR (karate.jar + extensions) or Docker Image (with all you need)
* Retry / timeout configuration
* Clone / Drop schema for each Scenario
* Other advanced features
* 😃
[.column width="70%"]
* ☕`karate-data-standalone.jar`
** `karate-core.jar`
** `karate-data.jar`
*** `snowflake`, `kubernetes`
*** +++<p style="color: lightgrey">+++`rabbitmq`, `kafka`+++</p>+++

=== Karate/Snowflake - Example
[source, gherkin]
[%step]
[.column]
* 🐳 image `karate-data`
** `karate-data-standalone.jar`
** `dbt`, `snowflake-cli`, `kubectl`

=== How to run ?
[%step]
.Standalone JAR
[source, bash]
----
include::features/karate/select-v2.feature[]
java -cp karate-data-standalone.jar \
-Dextensions=<ext1,ext2...> \
com.intuit.karate.Main <features_path> <optional_params...>
----

+ `karate-config.js` for configuration
[%step]
.Docker image
[source, bash, indent=0]
----
docker run --rm \
-v $(pwd)/<features_path>:/features \
-v $(pwd)/<reports_path>:/target \
-e KARATE_EXTENSIONS=<ext1,ext2...> -e ... \
karate-data:latest <optional_params...>
----

=== `snowflake` DSL
.`cli`
[source, javascript]
=== `snowflake` extension config
[%step]
.`cli-config`
[source, bash]
----
snowflake.cli.generateJwtToken({ account: "...", user: "...", privateKeyPath: "...", privateKeyPassphrase: "..." })
snowflake.cli.runSql({ statement: "...", cliConfig: { ... }, snowflakeConfig: { ... } })
...
include::demo-template.env[lines=1..4]
----

.`rest`
[source, javascript]
[%step]
.`snowflake-config`
[source, bash]
----
snowflake.rest.runSql({ statement: "...", cliConfig: {... }, snowflakeConfig: { ... }, jwtToken: "... Optional" })
...
include::demo-template.env[lines=6..10]
----

=== `kubernetes` DSL
TODO
=== `snowflake` extension
* Config with env vars or JS files
* JWT generation
* SQL execution
* Retry / timeout configuration
* Clone / Drop schema
* And more...😃

=== Karate/Snowflake - Example
[source, gherkin]
----
include::features/karate/select-v2.feature[]
----

=== `rabbitmq` DSL
TODO
=== `karate-config.js` for more configurations
[source, javascript]
----
function fn() {
const mySuperFunction = (input) => input.toUpperCase();
return {
"projectName": "mySuperProject",
"myFunction": mySuperFunction
};
}
----

[.columns]
== Demo Time 🎬
Expand All @@ -177,6 +217,21 @@ Snowflake version+++<br/>+++image:diagrams/burger-factory.svg[width=400]
=== DDL
image::diagrams/ddl.svg[width=600]

=== How to run ?
[%step]
.Standalone JAR
[source, bash, indent=0]
----
include::demo.sh[tags=karate_jar]
----

[%step]
.Docker image
[source, bash, indent=0]
----
include::demo.sh[tags=karate_docker]
----

=== `burger-factory.feature`
[source, gherkin]
----
Expand All @@ -191,8 +246,17 @@ include::burger_factory/it/features/burger-factory-clone-schemas.feature[]

== Next Steps 🚀
* Open Source
** https://github.com/lectra-tech/karate-data
** ☕ & 🐳
* Extension `rabbitmq` & `kafka`

== 🎉 Thank you 🙏
Questions ?
[background-color="white"]
[.columns]
== 🎉 Thank you - Questions?
[.column]
Slides 🖥️::
image:images/qrcode-slides.png[width=300]

Feedback TODO
[.column]
Feedback🙏::
image:images/qrcode-feedback.png[width=300]

0 comments on commit 75776c8

Please sign in to comment.