Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
38950f52
Unverified
Commit
38950f52
authored
Jan 08, 2025
by
Yann Hodique
Committed by
GitHub
Jan 08, 2025
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(kurtosis-devnet): add basic support for smoke tests (#13625)
parent
bc02e90e
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
96 additions
and
1 deletion
+96
-1
.gitignore
kurtosis-devnet/.gitignore
+1
-0
justfile
kurtosis-devnet/justfile
+16
-1
boilerplate.sh
kurtosis-devnet/tests/boilerplate.sh
+36
-0
interop-smoke-test.sh
kurtosis-devnet/tests/interop-smoke-test.sh
+16
-0
kurtosis.yml
kurtosis-devnet/tests/kurtosis.yml
+4
-0
main.star
kurtosis-devnet/tests/main.star
+23
-0
No files found.
kurtosis-devnet/.gitignore
0 → 100644
View file @
38950f52
*.json
kurtosis-devnet/justfile
View file @
38950f52
...
...
@@ -42,7 +42,21 @@ KURTOSIS_PACKAGE := "github.com/ethpandaops/optimism-package"
# Devnet template recipe
devnet TEMPLATE_FILE DATA_FILE="":
go run cmd/main.go -kurtosis-package {{KURTOSIS_PACKAGE}} -template "{{TEMPLATE_FILE}}" -data "{{DATA_FILE}}" -enclave `basename {{TEMPLATE_FILE}} .yaml`-devnet
go run cmd/main.go -kurtosis-package {{KURTOSIS_PACKAGE}} \
-environment tests/`basename {{TEMPLATE_FILE}} .yaml`-devnet.json \
-template "{{TEMPLATE_FILE}}" \
-data "{{DATA_FILE}}" \
-enclave `basename {{TEMPLATE_FILE}} .yaml`-devnet
cat tests/`basename {{TEMPLATE_FILE}} .yaml`-devnet.json
devnet-test DEVNET *TEST:
#!/usr/bin/env bash
export TESTS=({{TEST}})
# we need a timestamp in there to force kurtosis to not cache the test solely based on its name!
export ARGS=$(printf '%s\n' "${TESTS[@]}" | jq -R . | jq -s . | jq -s '{devnet: "{{DEVNET}}", timestamp: "{{datetime("%s")}}", tests: add}')
kurtosis run --enclave {{DEVNET}} \
--show-enclave-inspect=false \
./tests/ "$ARGS"
# Devnet recipes
...
...
@@ -54,3 +68,4 @@ simple-devnet: (devnet "simple.yaml")
# Interop devnet
interop-devnet: (devnet "interop.yaml")
interop-devnet-test: (devnet-test "interop-devnet" "interop-smoke-test.sh")
kurtosis-devnet/tests/boilerplate.sh
0 → 100644
View file @
38950f52
#!/usr/bin/env bash
set
-euo
pipefail
# Default values
DEVNET
=
""
ENVIRONMENT
=
""
# Parse command line arguments
while
[[
$#
-gt
0
]]
;
do
case
"
$1
"
in
--devnet
)
DEVNET
=
"
$2
"
shift
2
;;
--environment
)
ENVIRONMENT
=
"
$2
"
shift
2
;;
*
)
echo
"Invalid option:
$1
"
>
&2
exit
1
;;
esac
done
# Validate required arguments
if
[
-z
"
$DEVNET
"
]
;
then
echo
"Error: --devnet argument is required"
>
&2
exit
1
fi
if
[
-z
"
$ENVIRONMENT
"
]
;
then
echo
"Error: --environment argument is required"
>
&2
exit
1
fi
kurtosis-devnet/tests/interop-smoke-test.sh
0 → 100644
View file @
38950f52
#!/usr/bin/env bash
# TODO: actually test something. Right now it just gives an idea of what's
# possible.
# shellcheck disable=SC1091
source
"
$(
dirname
"
$0
"
)
/boilerplate.sh"
echo
"DEVNET:
$DEVNET
"
echo
"ENVIRONMENT:"
cat
"
$ENVIRONMENT
"
l1_name
=
$(
cat
"
$ENVIRONMENT
"
| jq
-r
'.l1.name'
)
echo
"L1 NAME:
$l1_name
"
cast
--version
\ No newline at end of file
kurtosis-devnet/tests/kurtosis.yml
0 → 100644
View file @
38950f52
name
:
github.com/ethereum-optimism/optimism/kurtosis-devnet/tests
description
:
|-
Kurtosis package for running tests within the enclave
replace
:
{}
kurtosis-devnet/tests/main.star
0 → 100644
View file @
38950f52
"""
This is the main script for the kurtosis test runner.
"""
def run(plan, devnet, timestamp, tests):
tests_artifact = plan.upload_files(
src = "./",
name = "tests",
description = "uploading tests"
)
for test in tests:
plan.run_sh(
run = "/bin/bash /tests/{} --devnet {} --environment /tests/{}.json".format(test, devnet, devnet),
name = "{}-{}".format(test, timestamp),
image = "mslipper/deployment-utils:latest",
wait="180s",
files = {
"/tests": tests_artifact,
},
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment