Skip to content

feat: release 5.6.0 - #527

Merged
mkolasinski-splunk merged 14 commits into
developfrom
release/5.6.0
Jul 23, 2026
Merged

feat: release 5.6.0#527
mkolasinski-splunk merged 14 commits into
developfrom
release/5.6.0

Conversation

@mkolasinski-splunk

@mkolasinski-splunk mkolasinski-splunk commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Description

Release 5.6.0 of the reusable workflow.

  • ADDON-87662 / ADDON-88928 — Modinput tests now support running against multiple python.version server.conf variants (python3, force_python3) per Splunk version, driven by addonfactory-test-matrix-action@v3.3's supportedSplunkModinput output and forwarded via wfe-test-runner-action@v5.3's new server-conf-python-version input. Applies to run-modinput-tests and run-ucc-modinput-tests.
  • ADDON-89094 — Ensures the full supported Splunk matrix (not just latest) runs on PRs to and pushes on release/*/main branches.
  • ADDON-88923 — Restores the check-run URL in test report steps.
  • Unit tests now run separately on Python 3.9 and 3.13 (run-unit-tests-py39, run-unit-tests-py313), with a new build-py313 job depending on the matching unit test job; build remains gated on the 3.9 run. Poetry pinned to a version compatible with both.
  • Action pin bumps (k8s-manifests-branchv4.3, gs-image-version1.2, poetry 2.2.1, poetry-plugin-export 1.9.0) and python-version default reverted to 3.9.

Tests:
https://github.com/splunk/splunk-add-on-for-box/pull/819
https://github.com/splunk/splunk-add-on-for-crowdstrike-fdr/pull/988
https://github.com/splunk/splunk-add-on-for-salesforce/pull/899
https://github.com/splunk/splunk-add-on-for-amazon-web-services/pull/1710

Checklist

  • README.md has been updated or is not required
  • push trigger tests
  • manual release test
  • automated releases test
  • pull request trigger tests
  • schedule trigger tests
  • workflow errors/warnings reviewed and addressed

Testing done

(pending)

mkolasinski-splunk and others added 4 commits July 18, 2026 08:46
…8928) (#523)

## Summary

ADDON-88928: PR/push targeting `release/*` branches was running Splunk
tests against latest-Splunk-only instead of the full supported matrix.
The `meta` job's `determine_splunk` step only special-cased
`main`/`develop`, so `release/*` fell into the latest-only `else` branch
— exactly where full-matrix coverage matters most before cutting a
release.

## Change

- `reusable-build-test-release.yml`: extend the `determine_splunk`
condition to also treat `release/*` as full-matrix — for PR (`base_ref`)
and for push (`ref_name`, gated by `execute-tests-on-push-to-release` to
match the existing push gate).
- `README.md`: document the `release/*` full-matrix behavior.

## Validated (test-addonfactory-repo)

- PR into a `release/*` base (test-addonfactory-repo#376): `meta` job
succeeded; the job-summary consumed the **full 5-version matrix**
`[10.2.5, 10.0.8, 9.4.13, 9.3.14, 10.4.1]` instead of latest-only
`[10.4.1]`. AC confirmed.
- A control PR against unmodified `@develop` reproduced a pre-existing
`startup_failure` (missing `GH_TOKEN_ADMIN` passthrough in the caller),
proving the failure was environmental and independent of this change;
adding the passthrough unblocked the run.

JIRA: https://splunk.atlassian.net/browse/ADDON-88928

---------

Co-authored-by: Claude <noreply@anthropic.com>
…DDON-89094) (#524)

## Summary
- Bump GitHub Action pins: `actions/checkout@v7`,
`actions/upload-artifact@v7`, `actions/download-artifact@v8`,
`actions/cache@v6.1.0`, `fsfe/reuse-action@v6.0.0`,
`trufflesecurity/trufflehog@v3.95.9`,
`splunk/appinspect-cli-action@v2.13.0`; normalize `matrix-action@v3.1` →
`@v3.2`.
- Bump `POETRY_VERSION` to `2.4.1` and `POETRY_EXPORT_PLUGIN_VERSION` to
`1.10.0` (latest on PyPI as of this bump).
- Bump the `python-version` input default from `3.9` to `3.13`, since
poetry 2.4.1 requires Python >=3.10. README updated to match.

## Validation
Two-tier validation against `splunk/test-addonfactory-repo`, branched
off the PR that repoints test-repo `main` at `@release/5.6.0`
(splunk/test-addonfactory-repo#378) to inherit `GH_TOKEN_ADMIN` and the
release-pinned reusable workflow.

- Control run (python-version 3.9, all other bumps applied): all jobs
green, including `quality-appinspect-cloud` —
https://github.com/splunk/test-addonfactory-repo/actions/runs/29605639162
- Validation run (python-version 3.13):
https://github.com/splunk/test-addonfactory-repo/actions/runs/29637138898
- `run-unit-tests`: **PASS** — confirms the poetry/Python version fix
(poetry 2.4.1 requires >=3.10; the prior default of 3.9 broke `pip
install poetry==2.4.1`).
- `quality-appinspect-cloud`: fails on
`check_all_python_files_are_well_formed`, flagging vendored third-party
files (`lib/pkg_resources/_vendor/...`) in the test-repo's fixture TA.
This is expected: with `PYTHON_VERSION=3.13` appinspect now validates
against the 3.13 interpreter, and the fixture TA's vendored libs aren't
3.13-clean. The workflow is behaving correctly (validating against the
interpreter the TA will actually run on); this is a property of the
fixture TA, not a workflow defect. Real consumer TAs address this via
`.appinspect.expect.yaml`.
- `run-ui-tests (10.4.1, ...)`: fails on a Selenium `TimeoutException:
Could not log in to the Splunk instance` after retries — an infra flake
unrelated to this change.
- `Validate PR title`: fails on both this run and the control run —
pre-existing, unrelated (semantic-PR check on the throwaway validation
PR's title).

## Test plan
- [x] Control run confirms all other bumps validated clean
- [x] Validation run confirms `run-unit-tests` green under
python-version 3.13
- [x] appinspect-cloud failure root-caused to fixture-TA vendored libs,
not a workflow defect
- [x] UI test failure confirmed to be Splunk-login-timeout infra flake,
unrelated
## Summary
- `dorny/test-reporter@v3.0.0` (bumped in #512) defaults
`use-actions-summary` to `true`, which skips check-run creation entirely
— the code path that sets the `url`/`url_html` outputs never runs.
That's why the Test Report stage's rendering changed and why
`job_summary.txt`'s report-link column went empty.
- Sets `use-actions-summary: false` on all 8 `Test Report` steps to
restore v1.9.1 behavior: check run created, `url_html` populated,
`job_summary.txt` -> artifact -> aggregated Report Link table works as
before.

## Test plan
- [x] YAML validated (`yaml.safe_load`)
- [ ] Confirm a downstream TA run shows a populated Report Link in the
aggregated summary table
…526)

## Summary
- Sibling validation for ADDON-87662 (Splunk 9.4 `python.version`
support in `server.conf`) passed against real TAs via throwaway sibling
PRs (not for merge):
[salesforce#897](splunk/splunk-add-on-for-salesforce#897),
[aws#1707](splunk/splunk-add-on-for-amazon-web-services#1707),
[sysmon#369](splunk/splunk-add-on-for-microsoft-sysmon#369).
- Bumps default pins so `release/5.6.0` actually picks up the
capability:
- `k8s-manifests-branch` default `v4.2` -> `v4.3` (postStart hook sets
`python.version` in `server.conf` for Splunk 9.4 variants) —
[ta-automation-k8s-manifests#148](splunk/ta-automation-k8s-manifests#148)
- `wfe-test-runner-action@v5.2` -> `@main` (`server-conf-python-version`
input) —
[wfe-test-runner-action#50](splunk/wfe-test-runner-action#50)
(no release tag yet, pinning to `main` for now)
- `addonfactory-test-matrix-action@v3.2` -> `@v3.3`
(`supportedSplunkModinput` output with `python.version` variants) —
[addonfactory-test-matrix-action#213](splunk/addonfactory-test-matrix-action#213)

## Test plan
- [x] YAML validated (`yaml.safe_load`)
- [ ] Confirm downstream TA CI run picks up python.version variants
correctly
@mkolasinski-splunk
mkolasinski-splunk requested a review from a team as a code owner July 20, 2026 08:49

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 99f547196b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/reusable-build-test-release.yml
Comment thread .github/workflows/reusable-build-test-release.yml Outdated
mkolasinski-splunk and others added 8 commits July 20, 2026 11:39
Splits run-unit-tests into run-unit-tests-py39 and run-unit-tests-py313
so TAs are validated against both supported interpreters in CI, since
release/5.6.0 had bumped the python-version input default to 3.13,
which silently skipped installing dependencies for TAs still
constrained to <3.10 in poetry. Reverts the input default back to 3.9.
POETRY_VERSION 2.4.1 and POETRY_EXPORT_PLUGIN_VERSION 1.10.0 require
Python >=3.10, which breaks every job now that python-version defaults
back to 3.9 (and breaks the new run-unit-tests-py39 job outright).
Poetry dropped 3.9 support starting at 2.3.0; 2.2.1 is the latest
release still supporting both 3.9 and 3.13, paired with
poetry-plugin-export 1.9.0 (last version requiring poetry>=3.9).
run-unit-tests-py39/py313 should gate publishing, not the build job
itself, so build can proceed in parallel with unit tests instead of
waiting on them.
…g build

Adds build-py313 mirroring the build job's compile/package steps under
Python 3.13, without uploading artifacts or publishing anywhere
downstream - it only verifies the package builds successfully.

run-unit-tests-py39 is now a required upstream of build, and
run-unit-tests-py313 is now a required upstream of build-py313, so
each Python version's unit tests gate its own build job. Both build
and build-py313 gate pre-publish.
…508)

- `run-modinput-tests` and `run-ucc-modinput-tests` jobs use new
`matrix_splunkModinput` output (from `addonfactory-test-matrix-action`)
which contains two entries for Splunk 9.4: `serverConfPythonVersion:
python3` and `serverConfPythonVersion: force_python3` — resulting in two
separate test runs per modinput job
- All other test types (btool, knowledge, ui, upgrade, scripted inputs,
spl2) use `matrix_Splunk` (standard output, no variants) — single run
per Splunk version as before
- `server-conf-python-version` is passed to `wfe-test-runner-action`
only for modinput and ucc-modinput jobs; all other jobs pass empty
string
- Default values restored: `k8s-manifests-branch` → `v4.2`,
`addonfactory-test-matrix-action` → `@v3.1`, `wfe-test-runner-action` →
`@v5.2`

## Why

Splunk 9.4 requires explicit `python.version` configuration in
`server.conf [general]`. Only modinput tests are affected — they execute
scripted inputs whose Python version is controlled by this setting.
Running two variants (`python3` and `force_python3`) ensures the add-on
works under both configurations.

Other test types (btool, knowledge, UI) do not interact with the Python
runtime selection and do not benefit from duplicate runs.

## Dependencies

Requires the following PRs to be merged and tagged first:
- `splunk/addonfactory-test-matrix-action` — provides
`supportedSplunkModinput` output
- `splunk/wfe-test-runner-action` — provides
`server-conf-python-version` input forwarding
- `splunk/ta-automation-k8s-manifests` — applies `python.version` in the
Splunk pod

## Test plan

- [x] Verify PR to `main` triggers 2 modinput runs for Splunk 9.4
(`python3` and `force_python3`)
- [x] Verify all other test types have 1 run per Splunk version (no
duplicate 9.4 runs)
- [x] Verify `btool server list general | grep python` returns correct
value in each modinput run
- [x] Verify non-9.4 Splunk versions are unaffected

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Marcin Kolasinski <mkolasinski@splunk.com>
Co-authored-by: mkolasinski-splunk <105011638+mkolasinski-splunk@users.noreply.github.com>
Fixes stale defaults (k8s-manifests-branch, python-version, gs-image-version), documents spl2-generate and fossa-ignore-vulnerabilities inputs, and notes the modinput python.version matrix variants and split unit-test jobs.
@nayanak-896

Copy link
Copy Markdown
Contributor

Artifact name collisions for expanded modinput matrix:
The run-modinput-tests and run-ucc-modinput-tests artifact names (lines 2066, 2072, 2105, 2115, 2341, 2347, 2380, 2390) use only matrix.splunk.version, vendor, and marker — serverConfPythonVersion is absent throughout. When supportedSplunkModinput expands Splunk 9.4 into python3 and force_python3 entries, two jobs produce identical artifact names. upload-artifact@v7 rejects duplicate names across jobs with a conflict error.

@nayanak-896

Copy link
Copy Markdown
Contributor

Release PRs select the full matrix but do not enable the tests
The PR adds startsWith(github.base_ref, 'release/') to determine_splunk to select the full matrix for release/* PRs, but leaves the pull_request branch of the execution-flag logic unchanged — meaning execute-modinput,
execute-knowledge, execute-ui, etc. all stay false for any release/* PR without the execute_all_tests label. The full matrix is selected but never consumed.

@nayanak-896 nayanak-896 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Reviewed the PR changes and provided comments.

Comment thread .github/workflows/reusable-publish-to-splunkbase.yml Outdated
Comment thread .github/workflows/reusable-build-test-release.yml
@mkolasinski-splunk
mkolasinski-splunk merged commit ccf5863 into develop Jul 23, 2026
6 checks passed
@mkolasinski-splunk
mkolasinski-splunk deleted the release/5.6.0 branch July 23, 2026 07:59
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 23, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants