Skip to content

Feature/release pipeline v2#418

Merged
cx-anurag-dalke merged 15 commits intomainfrom
feature/release-pipeline-v2
Mar 2, 2026
Merged

Feature/release pipeline v2#418
cx-anurag-dalke merged 15 commits intomainfrom
feature/release-pipeline-v2

Conversation

@cx-amol-mane
Copy link
Contributor

This branch introduces automations and enhancements related to the release pipeline for the JetBrains plugin, focusing primarily on CI/CD workflow improvements, scripting for changelog automation, and more flexible release configuration.

🔧 Key Improvements / Changes

Automated Changelog Generation

Added a new script (generateChangelog.sh) to produce formatted plugin changelogs from Git history.

Script refinements: improved commit hash extraction, formatting clean-up, whitespace trimming, emoji headings for readability, and simplified usage flags.

Release Workflow Enhancements (GitHub Actions)

Updated release.yml workflow to:

Support dynamic version tagging and version inputs (ast_version, devassist_version) for plugin releases.

Output version metadata during nightly and release runs for better traceability.

Conditionally generate changelogs only for plugins marked as NEW releases.

Introduce a skip_tests option to optionally skip integration tests during release.

Strengthened conditional logic so the release will only run once tests pass (or are intentionally skipped).

More flexible workflow logic for naming releases and handling product type differences.

Test Task Fixes

Adjusted test commands to ensure the correct test tasks run for the Checkmarx plugin within the CI workflow.

Nightly Workflow Alignment

Changes to the nightly pipeline reference this feature branch appropriately, ensuring that releases are coordinated with the latest development iteration.

…rations

- Added a new script `generateChangelog.sh` to automate changelog generation for plugins based on git logs.
- Updated `build.gradle` files across multiple modules to disable specific tasks related to plugin verification and building searchable options.
- Modified GitHub Actions workflows to improve version tagging and release management, including new inputs for release type and versioning.
- Enhanced the `release.yml` workflow to resolve versions and tags dynamically based on input parameters.
- Changed the test command in the release.yml workflow to explicitly run tests for the Checkmarx plugin using the `:plugin-checkmarx-ast:test` task instead of the generic test command.
- Modified the test command in the release.yml workflow to target the correct test class path for the Checkmarx plugin integration tests.
- Updated the `generateChangelog.sh` script to use `awk` for extracting the commit hash, enhancing readability and maintainability of the code.
- Modified `generateChangelog.sh` to improve markdown formatting and streamline the output process for changelogs.
- Updated `release.yml` to write the release body to a temporary file, enhancing clarity and organization of the release notes.
…et points from commit messages in `generateChangelog.sh`
- Updated `generateChangelog.sh` to include emojis in section headers for better visual distinction.
- Modified `release.yml` to dynamically build the release name based on the tag and timestamp, improving clarity in release identification.
…ugins

- Updated `release.yml` to generate changelogs only for plugins being released as NEW, based on the specified release type.
- Improved organization of the changelog sections by adding conditional checks and formatting adjustments.
…dev flag

- Updated `generateChangelog.sh` to simplify usage by removing the `--dev` argument from the usage instructions and argument parsing.
- Modified `release.yml` to eliminate the conditional `--dev` flag when generating changelogs for both Checkmarx and devassist plugins, streamlining the workflow.
…ase type

- Modified `release.yml` to conditionally set the `product_name` based on the `releaseType` input, allowing for more flexible naming for Checkmarx and DevAssist plugins.
…t execution

- Updated `release.yml` to include a new `skip_tests` input, allowing users to optionally skip integration tests during the release process.
- Adjusted conditions in the `testIntegration` and `release` jobs to accommodate the new input, enhancing workflow flexibility.
…ests before proceeding

- Modified the `release.yml` file to enhance the conditional logic for the `release` job, ensuring it only runs if integration tests are successful or skipped, in addition to checking for valid `rchannels` input. This improves the reliability of the release process.
…plugins

- Updated `nightly.yml` to generate and output `ast_version` and `devassist_version` alongside `tag_version`, improving version tracking for plugin releases.
- Modified `release.yml` to require `ast_version` and `devassist_version` as inputs, ensuring that versioning is explicitly defined for the Checkmarx and DevAssist plugins during the release process.
- Changed the nightly job in `nightly.yml` to reference the `feature/release-pipeline-v2` branch of the release workflow, ensuring alignment with the latest development efforts for the Checkmarx plugin.
- Changed the nightly job in `nightly.yml` to reference the `main` branch of the release workflow, aligning with the latest stable version for the Checkmarx plugin.
@github-actions
Copy link

github-actions bot commented Mar 2, 2026

Logo
Checkmarx One – Scan Summary & Details14ee6794-e597-4a77-ad76-77d6a59a9747

Great job! No new security vulnerabilities introduced in this pull request

Copy link
Collaborator

@cx-anurag-dalke cx-anurag-dalke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok

@cx-anurag-dalke cx-anurag-dalke merged commit 2017b68 into main Mar 2, 2026
7 of 8 checks passed
@cx-anurag-dalke cx-anurag-dalke deleted the feature/release-pipeline-v2 branch March 2, 2026 13:16
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