Integration test: reconfig app org - #285
Conversation
There was a problem hiding this comment.
Pull request overview
Adds an end-to-end integration test that spins up the orderer+committer Docker Compose network and submits a channel reconfiguration transaction to add an application org, verifying the config update is committed and delivered.
Changes:
- Added a new Go integration test covering reconfig (add
peer-org-1) and post-reconfig block delivery verification. - Added a dedicated Armageddon network config (
arma_config.yaml) for the integration test network topology. - Updated Docker Compose and Go module dependencies to support the new test setup (notably testcontainers compose usage).
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| integration/test/reconfig_app_org_test.go | New integration test that sets up the network, submits config update, and verifies delivery/commit behavior. |
| integration/test/ordererconfig/arma_config.yaml | New network configuration used by the integration test. |
| integration/test/docker-compose.yaml | Adjusted committer/loadgen/explorer commands/formatting to align with the test’s compose flow. |
| go.mod / go.sum | Dependency updates (incl. testcontainers-go upgrade) required by the new integration test dependencies. |
Suppressed comments (1)
integration/test/reconfig_app_org_test.go:258
- After removing the duplicate utils import, this call should use the remaining utils import name (ordererutils) so the code compiles.
knownCertPaths, err := utils.PemFilesFromDir(knowncertsDir)
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
c12d76e to
93aafe3
Compare
1443901 to
7aa0096
Compare
ab9cc19 to
67c9fdc
Compare
3359adf to
7c5e092
Compare
| EXPLORER_IMAGE: ${{ steps.images.outputs.explorer_image }} | ||
| FABRIC_X_BIN: ${{ github.workspace }}/integration/test/.build/fabric-x/bin | ||
| SKIP_CLEANUP_PROMPT: "1" | ||
| ENABLE_EXPLORER: "false" |
There was a problem hiding this comment.
why do we disable it? we need to ensure it's compatibility too.
There was a problem hiding this comment.
I inserted it by mistake and have restored it
| EXPLORER_DIR="${BUILD_DIR}/fabric-x-block-explorer/docker/images/release" | ||
| checkout_source "${EXPLORER_REPO}" "${EXPLORER_REF}" "${EXPLORER_DIR}" "${EXPLORER_LOCAL_PATH:-}" "fabric-x-block-explorer" | ||
|
|
||
| EXPLORER_IMAGE="localhost/${EXPLORER_IMAGE_NAME}:${EXPLORER_REF}" | ||
| echo "Building ${EXPLORER_IMAGE_NAME} image from ${EXPLORER_DIR}..." | ||
| docker build -t "${EXPLORER_IMAGE}" "${EXPLORER_DIR}" | ||
| docker build -t "${EXPLORER_IMAGE}" "${EXPLORER_DIR}" || { | ||
| echo "WARNING: ${EXPLORER_IMAGE_NAME} image build failed, continuing without it (setting ENABLE_EXPLORER=false)" | ||
| export ENABLE_EXPLORER=false | ||
| } |
There was a problem hiding this comment.
not sure why we are changing these?
There was a problem hiding this comment.
The Docker build for the Explorer image fails because there is no Dockerfile in the project root. This is the workaround
| - "4001:4001" # Sidecar deliver (loadgen connects here) | ||
| - "7001:7001" # Coordinator gRPC | ||
| - "2114:2114" # Sidecar Prometheus metrics | ||
| - "2115:2115" # Verifier Prometheus metrics | ||
| - "2116:2116" # VC Prometheus metrics (verified in Step 9) | ||
| - "2117:2117" # Query Prometheus metrics | ||
| - "2119:2119" # Coordinator Prometheus metrics |
There was a problem hiding this comment.
are these intendation changes necessary?
There was a problem hiding this comment.
restored the original version
| EXPLORER_IMAGE: ${{ steps.images.outputs.explorer_image }} | ||
| FABRIC_X_BIN: ${{ github.workspace }}/integration/test/.build/fabric-x/bin | ||
| SKIP_CLEANUP_PROMPT: "1" | ||
| ENABLE_EXPLORER: "false" |
There was a problem hiding this comment.
This needs to be in the other workflow
| ORDERER_IMAGE: ${{ steps.images.outputs.orderer_image }} | ||
| COMMITTER_IMAGE: ${{ steps.images.outputs.committer_image }} | ||
| SKIP_CLEANUP_PROMPT: "1" | ||
| run: ./integration/test/run-reconfig-test.sh |
There was a problem hiding this comment.
Lets first run a no-op command, like print the arguments and a message, to verify all steps up to here are ok. Then, we merge only the manual flow, and after it is in main, we point it to the actual test.
IE first a no-op ./integration/test/run-reconfig-test.sh
7c5e092 to
9604b6f
Compare
9604b6f to
d6fe6df
Compare
f64bed5 to
0fc57ba
Compare
Signed-off-by: Gurevich.Genady <genadyg@il.ibm.com>
0fc57ba to
b768fc1
Compare
Type of change
Integration test
Description
Submit a reconfig TX on the orderer+committer docker network.
Related issues
#280 (comment))