Skip to content

feat: add CI/CD workflow with multi-version matrix testing#2

Merged
vobu merged 11 commits intomainfrom
copilot/vscode-mkyfj6gl-gi1r
Jan 28, 2026
Merged

feat: add CI/CD workflow with multi-version matrix testing#2
vobu merged 11 commits intomainfrom
copilot/vscode-mkyfj6gl-gi1r

Conversation

Copy link
Contributor

Copilot AI commented Jan 28, 2026

Implementation Plan - COMPLETE

  • Create environment files for docker-compose (DATABASE=elasticsearch)
    • Create envs/.env.database.elasticsearch for 8.8
    • Create envs/.env.database.elasticsearch for 8.9
    • Update .gitignore to allow .env.database.* files
  • Create GitHub Actions workflow for CI/CD
    • Set up matrix for Node.js versions (22, 24)
    • Set up matrix for Camunda versions (8.8, 8.9)
    • Configure fail-fast strategy
    • Boot Camunda from assets/c8 folder
    • Run unit tests
    • Run integration tests
    • Ensure proper test isolation
    • Add extended wait time for broker initialization
    • Add explicit permissions for security
  • Fix docker-compose configuration
    • Update Keycloak image to official quay.io version
    • Add profiles to separate elasticsearch and opensearch
    • Fix Kibana version mismatch with Elasticsearch
    • Add missing environment variable to 8.8 for consistency
  • Add basic authentication support
    • Update Profile and ClusterConfig interfaces
    • Update resolveClusterConfig to handle username/password
    • Update createClient to use basic auth with SDK
    • Default to demo/demo for localhost
    • Add explicit NONE auth strategy
    • Add comments for default credentials
  • Address code review feedback
  • Address security findings
  • Fix unit test isolation issues
    • Update config test to expect correct localhost URL with /v2
    • Add comprehensive environment variable cleanup in config tests
    • Add proper beforeEach/afterEach to deployment-validation tests
    • Use npm run cli instead of direct node execution for subprocess tests
    • Pass isolated environment to subprocess tests
  • Fix GitHub Actions failures
    • Increase Elasticsearch consistency wait time from 0ms to 5000ms
    • Extract magic number into ELASTICSEARCH_CONSISTENCY_WAIT_MS constant

Summary

All implementation tasks complete. Integration tests now use a named constant (ELASTICSEARCH_CONSISTENCY_WAIT_MS = 5000) for Elasticsearch indexing wait time, improving maintainability.

Original prompt

Start implementation

The user has attached the following file paths as relevant context:

  • .github/copilot-instructions.md
[Chronological Review: The conversation began with the user requesting to find and unskip all skipped tests in the file `run.test.ts`, assuming a local Camunda instance is present. The user then asked to add GitHub Actions to run tests, booting up the Camunda instance from the `/assets/c8` folder, specifying versions 8.8 and 8.9, and requiring a fail-fast strategy for the pipeline. The user further requested to test with the LTS Node versions as a matrix, isolating test suites and runs when necessary. The user specified to use Node versions 22 and 24, avoiding version 23. Finally, the user indicated to start the implementation.]

[Intent Mapping:

  1. "find all skipped tests - unskip them, implement if necessary, always assuming localhost:8080 is present" - User wants to ensure all tests are runnable.
  2. "add gh actions that boot run the tests. boot up the camunda instance from the /assets/c8 folder. first, use 8.8. then 8.9. fail fast if tests fail, don't continue pipeline." - User aims to automate testing with specific configurations.
  3. "test with lts node version as matrix. also, isolate test suites properly. even test runs, when necessary." - User wants to ensure compatibility and isolation in testing.
  4. "use node 22 + 24, not 23" - User specifies the Node versions for testing.
  5. "Start implementation" - User indicates readiness to begin coding.]

[Technical Inventory:

  • Tools: GitHub Actions for CI/CD.
  • Technologies: Node.js (versions 22 and 24), Camunda (versions 8.8 and 8.9).
  • Testing Framework: Presumably using a JavaScript testing framework compatible with Node.js.]

[Code Archaeology:

  • File: /Users/volker.buzek/git/camunda/c8ctl/tests/integration/run.test.ts
  • Purpose: Contains integration tests for the Camunda instance.
  • Recent Changes: User requested to unskip tests and implement necessary changes, add GitHub Actions, and configure Node.js versions.]

[Progress Assessment:

  • Completed Tasks: User has outlined the requirements for unskipping tests and setting up CI/CD.
  • Partially Complete Work: Implementation of the GitHub Actions and test configurations is pending.]

[Context Validation: All necessary context for continuing work on the test configurations and GitHub Actions setup is captured.]

[Recent Commands Analysis:

  • Last Agent Commands: User requested to "Start implementation."
  • Tool Results Summary: No specific tool results were returned as the conversation focused on user requests.
  • Pre-Summary State: The agent was preparing to begin the implementation of the outlined tasks.
  • Operation Context: The commands executed were directly related to the user's goal of ensuring all tests are runnable and automating the testing process.]
1. Conversation Overview: - Primary Objectives: - "find all skipped tests - unskip them, implement if necessary, always assuming localhost:8080 is present" - "add gh actions that boot run the tests. boot up the camunda instance from the /assets/c8 folder. first, use 8.8. then 8.9. fail fast if tests fail, don't continue pipeline." - "test with lts node version as matrix. also, isolate test suites properly. even test runs, when necessary." - "use node 22 + 24, not 23" - "Start implementation" - Session Context: The conversation has focused on configuring and implementing tests for a Camunda instance, with specific requirements for automation and Node.js versions. - User Intent Evolution: The user has progressively detailed their requirements, moving from unskipping tests to setting up CI/CD processes.
  1. Technical Foundation:
  • Node.js: Versions 22 and 24 specified for testing.
  • Camunda: Versions 8.8 and 8.9 to be used in the GitHub Actions setup.
  • GitHub Actions: To automate the testing process.
  1. Codebase Status:
  • File Name: run.test.ts
  • Purpose: Contains integration tests for the Camunda instance.
  • Current State: User has requested to unskip tests and implement necessary changes.
  • Key Code Segments: Specific tests to be identified and modified as per user requests.
  • Dependencies: Relies on the Camunda instance and Node.js environment.
  1. Problem Resolution:
  • Issues Encountered: Skipped tests need to be addressed.
  • Solutions Implemented: User has outlined a plan for unskipping and implementing tests.
  • Debugging Context: No specific debugging issues were mentioned, but the user is focused on ensuring tests run correctly.
  • Lessons Learned: Importance of automation and proper environment setup for testing.
  1. Progress Tracking:
  • Completed Tasks: User has outlined requirements for unskipping tests and setting up CI/CD.
  • Partially Complete Work: Implementation of the GitHub Actions and test configurations is pending.
  1. Active Work State:
  • Current Focus: User is ready to start implementing the outlined tasks.
  • Recent Context: User has been detailing requirem...

Created from VS Code.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 7 commits January 28, 2026 19:42
Co-authored-by: vobu <6573426+vobu@users.noreply.github.com>
Co-authored-by: vobu <6573426+vobu@users.noreply.github.com>
Co-authored-by: vobu <6573426+vobu@users.noreply.github.com>
Co-authored-by: vobu <6573426+vobu@users.noreply.github.com>
Co-authored-by: vobu <6573426+vobu@users.noreply.github.com>
Co-authored-by: vobu <6573426+vobu@users.noreply.github.com>
Co-authored-by: vobu <6573426+vobu@users.noreply.github.com>
Copilot AI changed the title [WIP] Implement unskipping of tests and setting up GitHub Actions feat: add CI/CD workflow with multi-version matrix testing Jan 28, 2026
Copilot AI requested a review from vobu January 28, 2026 20:01
@vobu
Copy link
Collaborator

vobu commented Jan 28, 2026

@copilot fix the unit tests to run properly isolated

Co-authored-by: vobu <6573426+vobu@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 28, 2026

@copilot fix the unit tests to run properly isolated

Fixed in 7c009c2. Added proper test isolation with:

  • Comprehensive environment variable cleanup (all CAMUNDA_* vars)
  • beforeEach/afterEach for deployment-validation tests
  • Updated config test expectations for /v2 URL suffix
  • Switched subprocess tests to use npm run cli with isolated environment

All 69 unit tests now passing consistently.

@vobu
Copy link
Collaborator

vobu commented Jan 28, 2026

@copilot look at the gh action errors and fix

Co-authored-by: vobu <6573426+vobu@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 28, 2026

@copilot look at the gh action errors and fix

Fixed in 0a6922e. The integration tests were failing because they used waitUpToMs: 0 when searching for process instances. This caused a race condition where Elasticsearch hadn't indexed the newly created instances yet.

Changed waitUpToMs: 0 to waitUpToMs: 5000 in:

  • tests/integration/run.test.ts (2 tests)
  • tests/integration/process-instances.test.ts (1 test)

The tests now wait up to 5 seconds for Elasticsearch to index data before making assertions.

Co-authored-by: vobu <6573426+vobu@users.noreply.github.com>
@vobu vobu marked this pull request as ready for review January 28, 2026 20:42
@vobu vobu merged commit 19c043d into main Jan 28, 2026
4 checks passed
@vobu vobu deleted the copilot/vscode-mkyfj6gl-gi1r branch January 28, 2026 20:42
@github-actions
Copy link

This has been released in 1.0.0.

@vobu
Copy link
Collaborator

vobu commented Feb 17, 2026

@github-actions
Copy link

This has been released in 2.0.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants