-
Notifications
You must be signed in to change notification settings - Fork 54
OCPBUGS-95281: Synchronize From Upstream Repositories #762
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
d0252d4
6a28728
8013292
6655994
395bb86
7461774
a918ca8
60f2706
b7926dc
abd8c4a
dd78f2f
be16a0a
dbc9b4a
e5bac06
c63b183
e5877d7
8877ba0
ca2945a
507310b
61c439f
7909550
07e6312
74d27b2
4562584
e56dcc8
f0ff530
3618a17
83c3ce0
cf04372
1e7d75d
b5e0160
d1053aa
4f0c709
9b98e10
5bbbb2a
9343577
2facc44
3ad7a6e
505af3e
33393d0
fe435ef
45e3275
1fe3b12
5dc0ddc
4c67ca5
b30011d
828e0c9
9123670
847dcfb
adbca2a
236b941
fbcca63
9736374
9867d6a
4d409eb
335becf
1a805e4
7b9131c
7958d17
783abef
b9bfd65
1483887
219ac87
fa95446
8549f83
294b152
d3c2471
c2f58c4
dfafe0f
eff10fc
2603c34
7bb043e
6984a7a
9a29cb6
26de82d
eaa1b17
24e5ee8
803182f
b5be4b4
57f2abe
aad6acc
0ee225e
0d5883d
be1aea9
a2f817e
905a0d8
1ecfc9e
2e23095
6f7d958
3bc9151
8bdbc48
8bd0094
9b5e96a
1c3e3ac
33cdc89
d22c99e
f1e44f1
616713c
f538de7
30bb8d0
77771b3
5b73765
9120a1c
d757656
ff0a5a9
412a5eb
6addeed
112c5b2
403cbc6
d9cc6d1
d69f6f9
8493350
5eac7b1
f8de21c
dad08db
7fe245d
3a6f702
2565670
7eed2e2
57bd310
f076a48
94e8035
7813c8f
e78e280
f8ffca5
df7a78b
59aeb79
2e94aed
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -404,7 +404,6 @@ else | |||||||||||||||||||||||||||||||||||||||||||||||||
| endif | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: e2e-run-% | ||||||||||||||||||||||||||||||||||||||||||||||||||
| e2e-run-%: E2E_TIMEOUT ?= 20m | ||||||||||||||||||||||||||||||||||||||||||||||||||
| e2e-run-%: GODOG_ARGS ?= | ||||||||||||||||||||||||||||||||||||||||||||||||||
| e2e-run-%: prometheus-% | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ifeq ($(strip $(GODOG_ARGS)),) | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -414,11 +413,11 @@ ifeq ($(strip $(GODOG_ARGS)),) | |||||||||||||||||||||||||||||||||||||||||||||||||
| set +e; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| KUBECONFIG=$(E2E_KUBECONFIG) \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| PROMETHEUS_URL=http://localhost:$$E2E_PROMETHEUS_PORT \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout $(E2E_TIMEOUT) -args --godog.tags="~@Serial" --godog.concurrency=100; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout $(or $(E2E_TIMEOUT),20m) -args --godog.tags="~@Serial && ~@demo" --godog.concurrency=100; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| parallelExit=$$?; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| KUBECONFIG=$(E2E_KUBECONFIG) \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| PROMETHEUS_URL=http://localhost:$$E2E_PROMETHEUS_PORT \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout $(E2E_TIMEOUT) -args --godog.tags="@Serial" --godog.concurrency=1; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout $(or $(E2E_TIMEOUT),20m) -args --godog.tags="@Serial && ~@demo" --godog.concurrency=1; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| serialExit=$$?; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| if [[ $$parallelExit -ne 0 ]] || [[ $$serialExit -ne 0 ]]; then \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "e2e tests failed: parallel=$$parallelExit serial=$$serialExit"; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -429,7 +428,7 @@ else | |||||||||||||||||||||||||||||||||||||||||||||||||
| if [[ -z "$$E2E_PROMETHEUS_PORT" ]]; then echo "error: failed to extract prometheus hostPort from $(KIND_CONFIG)" >&2; exit 1; fi; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| KUBECONFIG=$(E2E_KUBECONFIG) \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| PROMETHEUS_URL=http://localhost:$$E2E_PROMETHEUS_PORT \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout=$(E2E_TIMEOUT) -args $(GODOG_ARGS) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| go test -count=1 -v ./test/e2e/features_test.go -timeout=$(or $(E2E_TIMEOUT),20m) -args $(GODOG_ARGS) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| endif | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: e2e-coverage-% | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -697,13 +696,33 @@ deploy-docs: venv | |||||||||||||||||||||||||||||||||||||||||||||||||
| . $(VENV)/activate; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| mkdocs gh-deploy --force --strict | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| # The demo script requires to install asciinema with: brew install asciinema to run on mac os envs. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| # Please ensure that all demos are named with the demo name and the suffix -demo-script.sh | ||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: update-demos #EXHELP Validate demo recordings. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @for script in hack/demo/*-demo-script.sh; do \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| nm=$$(basename $$script -script.sh); \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ./hack/demo/generate-asciidemo.sh -n $$nm $$(basename $$script); \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| DEMO_OUTPUT_DIR ?= $(ROOT_DIR)/docs/demos | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: update-demos | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: SOURCE_MANIFEST := $(EXPERIMENTAL_E2E_MANIFEST) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: export MANIFEST := $(EXPERIMENTAL_RELEASE_MANIFEST) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: export DEFAULT_CATALOG := $(CATALOGS_MANIFEST) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: export INSTALL_DEFAULT_CATALOGS := true | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: export CATALOG_WAIT_TIMEOUT := 5m | ||||||||||||||||||||||||||||||||||||||||||||||||||
| update-demos: wait-operator-controller-experimental-e2e demo-e2e demo-svg experimental-e2e-teardown #EXHELP Record demo scenarios as asciicast and SVG files. | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: demo-e2e | ||||||||||||||||||||||||||||||||||||||||||||||||||
| demo-e2e: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @command -v curl >/dev/null 2>&1 || { echo "Error: curl not found in PATH."; exit 1; } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @command -v jq >/dev/null 2>&1 || { echo "Error: jq not found in PATH."; exit 1; } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @mkdir -p $(DEMO_OUTPUT_DIR) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| KUBECONFIG=$(KUBECONFIG_DIR)/operator-controller-experimental-e2e.kubeconfig \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| DEMO_OUTPUT_DIR=$(DEMO_OUTPUT_DIR) go test -count=1 -v ./test/e2e/features_test.go -timeout 30m \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| -args --godog.tags="@demo" --godog.concurrency=1 | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| .PHONY: demo-svg | ||||||||||||||||||||||||||||||||||||||||||||||||||
| demo-svg: #EXHELP Convert asciicast recordings to SVG. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @command -v docker >/dev/null 2>&1 || { echo "Error: docker not found in PATH."; exit 1; } | ||||||||||||||||||||||||||||||||||||||||||||||||||
| @for cast in $(DEMO_OUTPUT_DIR)/*.cast; do \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| svg=$${cast%.cast}.svg; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "Converting $$(basename $$cast) -> $$(basename $$svg)"; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| docker run --rm -v $(DEMO_OUTPUT_DIR):/data node:alpine \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| npx --yes svg-term-cli --in /data/$$(basename $$cast) --out /data/$$(basename $$svg) --window; \ | ||||||||||||||||||||||||||||||||||||||||||||||||||
| done | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+718
to
726
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. π©Ί Stability & Availability | π‘ Minor | β‘ Quick win Unquoted glob can fail when no If π Proposed fix using nullglob guard demo-svg: `#EXHELP` Convert asciicast recordings to SVG.
`@command` -v docker >/dev/null 2>&1 || { echo "Error: docker not found in PATH."; exit 1; }
- `@for` cast in $(DEMO_OUTPUT_DIR)/*.cast; do \
+ `@shopt` -s nullglob; \
+ casts=($(DEMO_OUTPUT_DIR)/*.cast); \
+ if [ $${`#casts`[@]} -eq 0 ]; then \
+ echo "No .cast files found in $(DEMO_OUTPUT_DIR)"; \
+ exit 0; \
+ fi; \
+ for cast in "$${casts[@]}"; do \
svg=$${cast%.cast}.svg; \
echo "Converting $$(basename $$cast) -> $$(basename $$svg)"; \
docker run --rm -v $(DEMO_OUTPUT_DIR):/data node:alpine \
npx --yes svg-term-cli --in /data/$$(basename $$cast) --out /data/$$(basename $$svg) --window; \
doneRequires bash as the recipe shell (for π Committable suggestion
Suggested change
π§° Toolsπͺ checkmake (0.3.2)[warning] 719-719: Target body for "demo-svg" exceeds allowed length of 5 lines (7). (maxbodylength) [warning] 719-719: Required target "all" is missing from the Makefile. (minphony) [warning] 719-719: Required target "clean" is missing from the Makefile. (minphony) π€ Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| include Makefile.venv | ||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
π©Ί Stability & Availability | π‘ Minor | β‘ Quick win
π§© Analysis chain
π Script executed:
Repository: openshift/operator-framework-operator-controller
Length of output: 4445
π Script executed:
Repository: openshift/operator-framework-operator-controller
Length of output: 277
Make
update-demosrun sequentiallyupdate-demoslists independent prerequisites, somake -jcan startdemo-svgorexperimental-e2e-teardownbeforedemo-e2efinishes writing the.castfiles. Convert this to a recipe, or mark the target.NOTPARALLEL, so recording, conversion, and teardown happen in order.π§° Tools
πͺ checkmake (0.3.2)
[warning] 703-703: Target "update-demos" defined multiple times (lines 702 and 703).
(uniquetargets)
[warning] 704-704: Target "update-demos" defined multiple times (lines 702 and 704).
(uniquetargets)
[warning] 705-705: Target "update-demos" defined multiple times (lines 702 and 705).
(uniquetargets)
[warning] 706-706: Target "update-demos" defined multiple times (lines 702 and 706).
(uniquetargets)
[warning] 707-707: Target "update-demos" defined multiple times (lines 702 and 707).
(uniquetargets)
π€ Prompt for AI Agents