feat(verification): add Docker-based codegen verification for TypeScript and JSON Schema#246
Open
apoorv7g wants to merge 5 commits into
Open
feat(verification): add Docker-based codegen verification for TypeScript and JSON Schema#246apoorv7g wants to merge 5 commits into
apoorv7g wants to merge 5 commits into
Conversation
2e71d8e to
9bad6db
Compare
ekarademir
reviewed
Jun 10, 2026
ekarademir
left a comment
Contributor
There was a problem hiding this comment.
I think overall very good progress, few comments.
| @@ -0,0 +1,86 @@ | |||
| name: Publish Verification Images | |||
Contributor
There was a problem hiding this comment.
Why is this action needed? The other action build and verifies the build no?
Contributor
There was a problem hiding this comment.
I'm not sure if we'd ever need t publish these images. What would be the use of it?
Contributor
Author
There was a problem hiding this comment.
Okay, I suggested in my proposal to publish these images, for future reference. If its not necessary , I can omit this, please let me know @ekarademir .
…JSON Schema generation - Introduced Docker workflows for publishing verification images and verifying code generation. - Added .dockerignore to exclude unnecessary files from Docker context. - Created Dockerfiles and entrypoint scripts for TypeScript and JSON Schema verification. - Implemented verification cases and corresponding tests for TypeScript and JSON Schema generation. - Added a manifest for verification cases and a template for TypeScript configuration. This commit enhances the verification process by leveraging Docker, ensuring consistent environments for testing and validation. Signed-off-by: Apoorv <130035517+APOORV7G@users.noreply.github.com>
- Added entries to .gitignore to exclude verification output directories. - Introduced new npm scripts for verification testing and Docker-based verification for TypeScript and JSON Schema. These changes streamline the verification process and ensure unnecessary files are not tracked. Signed-off-by: Apoorv <130035517+APOORV7G@users.noreply.github.com>
- Added detailed JSDoc comments to functions in docker-run.js for better understanding and maintainability. - Implemented new functions to streamline the process of building and running Docker images for verification targets. - Updated test cases to include skip reasons and environment variable settings for verification runs. These changes improve the clarity and usability of the verification scripts, facilitating easier contributions and modifications in the future. Signed-off-by: Apoorv <130035517+APOORV7G@users.noreply.github.com>
- Removed GitHub Container Registry login steps and simplified the image build process. - Introduced a new BASE_IMAGE_TAG environment variable for better image tagging. - Updated the Docker build commands to use local image references instead of registry URLs, enhancing build efficiency. These changes streamline the Docker verification workflow and improve maintainability. Signed-off-by: Apoorv <130035517+APOORV7G@users.noreply.github.com>
- Added a step to harden the runner by auditing outbound calls. - Updated Docker actions to their latest versions for improved functionality and security. Signed-off-by: Apoorv <130035517+APOORV7G@users.noreply.github.com>
f4c7579 to
3bfefca
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR introduces a verification pipeline that validates generated TypeScript and JSON Schema output using real toolchains (
tsc,ajv). It adds local Mocha verification tests, per-target Docker images with the Concerto CLI, and GitHub Actions workflows to run verification on every pull request.Changes
test/verification/with shared fixtures incases.jsand compile/validate tests for TypeScript (tsc) and JSON Schema (ajv)verification/corpus/with a manifest-driven test corpus (Docker corpus is metamodel-only for now; local tests cover the full fixture set undertest/codegen/fromcto/data/model/)verification/docker/base/- Node 20, Concerto CLI, branch-linked@accordproject/concerto-codegenverification/docker/typescript/- generate via CLI +tsc --noEmitverification/docker/jsonschema/- generate via CLI +ajv compilescripts/verification/docker-run.jsand npm scripts:verify:docker,verify:docker:typescript,verify:docker:jsonschema.github/workflows/verify-codegen.yml- matrix workflow (typescript,jsonschema) on PR/push tomain.github/workflows/publish-verify-images.yml- publish verification images to GHCR on merge tomain/ version tags.dockerignore,verification/templates/tsconfig.json, andverification/docker/targets.json(registry for future targets)Flags
verification/corpus/in follow-up PRspublish-verify-images.ymldoes not run on PRs - GHCR publishing happens after merge tomain; PR verification usesverify-codegen.ymlonlyconcerto compileuses this repo's codegen (not the CLI's bundled npm copy)Screenshots or Video
Local Docker verification (metamodel):
JSONSchema

TypeScript

Local Mocha verification:
Author Checklist
--signoffoption of git commit.mainfromfork:CI-Implementation