Skip to content

Commit

Permalink
feat: merge develop -> main (#5469)
Browse files Browse the repository at this point in the history
* feat: avoid root privileges for TestWorkflow pods (#5169)

* feat: load default user/group for Docker images
* feat: use common FS Group for TestWorkflow's pod to avoid needed root permissions

* feat: expose Test Workflow name for scheduled tests (#5170)

* feat: expose Test Workflow name for scheduled tests
* feat: use running context instead for marking scheduled tests

* chore: removed duplicated cloud-pro code

* update docs

* update Enterprise

* updated content

* fix title for enterprise docs

* feat: remove dashboard oss command (#5174)

* fix: include TestWorkflow labels in the /labels list (#5177)

* fix: gracefully handle critical pod errors (like OOM) in TestWorkflows (#5178)

* fix: gracefully handle critical pod errors (like OOM) in TestWorkflows

* chore: add error logs on error saving TestWorkflow result

* fix: use proper application version constant (#5181)

* fix: add `workingDir` support for TestWorkflow artifacts step (#5180)

* fix: container executor negative test (#5175)

* fix: container executor negative test

* fix: minor improvement

* fix: handle gracefully OOMKilled errors on GKE (#5190)

- for some reason (bug?) GKE sends the SIGKILL when the container is already done successfully, and the Pod becomes stuck

* fix: git fetcher tests

* fix: change test content

* fix: test file context

* feat: display abort reason for TestWorkflow execution (#5191)

* feat: [TKC-1740] remove dashboard from connect and disconnect commands (#5188)

* feat: remove dashboard from connect and disconnect commands

* feat: pro disconnect fixes

* feat: update docs; remove helm params from installation

* fix: logs grpc uris without path (#5192)

* fix: logs grpc uris without path

* fix: panic close of closed channel

* feat: workflow tests - negative cases (#5176)

* workflow tests - negative cases

* workflow tests - negative cases - cypress example fixed

* workflow tests - negative cases - cypress example fixed

* Update test/cypress/executor-tests/crd-workflow/smoke.yaml

Co-authored-by: Dawid Rusnak <[email protected]>

---------

Co-authored-by: Dawid Rusnak <[email protected]>

* docs: Test Workflow docs (#5187)

* docs: Test Workflows, Test Workflow Templates

* docs: sidebar updated (Test Workflows)

* docs: workflows - files example fixed

* workflow docs - Artifacts condition: always

* docs: added more high-level text on workflows and templates..

* docs: fixed header

* workflow docs - artifacts - condition always

* Update docs/docs/articles/test-workflow-templates.md

Co-authored-by: Julianne Fermi <[email protected]>

* Update docs/docs/articles/test-workflow-templates.md

Co-authored-by: Julianne Fermi <[email protected]>

* Update docs/docs/articles/test-workflow-templates.md

Co-authored-by: Julianne Fermi <[email protected]>

* Update docs/docs/articles/test-workflow-templates.md

Co-authored-by: Julianne Fermi <[email protected]>

* Update docs/docs/articles/test-workflow-templates.md

Co-authored-by: Julianne Fermi <[email protected]>

* Update docs/docs/articles/test-workflow-templates.md

Co-authored-by: Julianne Fermi <[email protected]>

* typo fixed

---------

Co-authored-by: Ole Lensmar <[email protected]>
Co-authored-by: Julianne Fermi <[email protected]>

* fix: clean pvc volume

* docs: Enterprise - Include Custom certificates documentation (#5200)

* hotfix: support Retry Policies in TestWorkflows (#5199)

* fix: use `retry` policy for TestWorkflow stages
* fix: process Retry Policy in TestWorkflows init process

(cherry picked from commit 8319648)

* docs: testkube upgrading

* docs: added more upgrade info

* feat: added logs service params for cloud (#5208)

* feat: added logs service params for cloud

* fix added feature flag for logs v2

* feat: implement basic workflow telemetry (#5209)

* feat: add more sophisticated telemetry for workflows (#5211)

* fix: increase available memory for building docs (#5212)

* fix: use cluster/environment ids for cli telemetry (#5215)

* ci: signing issue (#5219)

* ci: upgrade cosign

* ci: upgrade cosign-installer dependency

* ci: upgrade scorecard (#5222)

* fix: removed doubled flag (#5223)

* fix: removed doubled flag

* fix: imported not used

* feat: slave pod logs

* fix: typo in field name

* fix: typo field name

* fix: remove unused fields

* fix: add nil cccheck

* fix: logs source

* fix: disable secret var cli

* fix: add telemetry cli context (#5226)

* Update Open Source or Pro Table (#5205)

* feat: disable secret creation

* fix: pass config param

* fix: dep update

* fix: manual abort (improve deletion detection) (#5227)

(cherry picked from commit 86ad572)

* fixL list secret parameters

* fix: return execution namespaces

* fix: spec field typo

* fix: change selectorrrrr

* docs: [TKC-1758] update Enterprise to Pro On-Prem (#5235)

* docs: initial make docs

* docs: name updates in CLI

* docs: update Enterprise to Pro On-Prem in docs

* docs: fix newline issue on environment variables

* docs: updates

* docs: updates

* docs: apply suggestions from code review

Co-authored-by: Julianne Fermi <[email protected]>

* docs: Update docs/docs/articles/running-tests.md

Co-authored-by: Julianne Fermi <[email protected]>

* docs: fix redirects

---------

Co-authored-by: Julianne Fermi <[email protected]>

* fix: use registry for inspection

* feat: histogram metrics

* fix: rename metric interface

* fix: use summary metric

* feat: use in cluster config

* fix: build test image

* fix: remove test

* fix: new client type

* docs: cli

* docs: article

* docs: [TKC-1758] doc review (#5249)

* docs: fix images

* docs: update screenshots

* docs: update list of data collected

* docs: update architecture diagrams for OSS

* docs: update OSS to Core OSS

* docs: update docs that only contain dashboard instructions to also have cli references

* docs: update reference

* feat: Workflow tests - suites, run script - `run` for workflows (suites) (#5225)

* WIP - run script updated for workflows, not finished (specific workflow names need to be passed on run

* test workflows - suites

* test workflows - suites - edge-cases

* test workflows - run script updated - workflows run (suites)

* run script updated, workflow special cases

* workflow suites - labels updated

* ci: disable dev releases to the apt server (#5252)

* fix: add minio error details

* docs: shared /data volume across all pods docs (#5255)

* fix: docs for sharing volume

* docs: added info about possibility to override data volume

* fix: docs for sharing volume

* fix: docs for sharing volume

* fix: docs for sharing volume

* fix: typos and added info about slow NFS volumes

* fix: logging improvements for logs server (#5257)

* fix: logging improvements for logs server

* fix: duplicated log

* fix: error handling

* fix: added logging of consumers instances

* fix: logging of bufferInfos

* fix: added message tracing param in minio adapter

* fix: added message tracing param in minio adapter

* fix: new MinIO adapter file based (#5258)

* fix: new MinIO adapter file based

* chore: less verbose gotestsum

* chore: messages trace

* fix: added new line for files

* fix: new alpine image

* fix: dont attach logs to result output (#5260)

* add logs services to release flow

* remove testing branch

* docs: [TKC-1798] Include redirect(s) from Enterprise to Pro On-Prem (#5265)

* fix subscription checker not being propagated to scheduler (#5266)

* docs: Reduce the image size of add-additional-test-or-delay.png (#5270)

* Reduce Image Size

add-additional-test-or-delay.png was too large - replace with add-additional-test-or-delay-04.24

* Reduce Image Size

Replace add-additional-test-or-delay.png with add-additional-test-or-delay-04.24.png.

* feat: inject custom ca (#5269) (#5273)

* feat: add runner custom ca variable

* feat: add runner ca certificate to default job template

* feat: add runner ca certificate to job template

* feat: add runner ca certificate to job scraper template

* feat: add runner ca certificate to slave pod template

* feat(TKC-1808): allow to pass `run.shell` for TestWorkflow commands (#5272)

* feat(TKC-1808): allow to pass `run.shell` for TestWorkflow commands
* chore(TKC-1808): use latest testkube-operator

* feat(TKC-1809): allow running shell in distroless environments (#5274)

- copy the shell binaries to internal directory
- add internal directory to PATH
- use that shell as a default one

* feat(expressions): add more functionalities (#5234)

* feat(expressions): add `len()` standard function for expressions
* feat(expressions): add floor/ceil/round functions to stdlib
* feat(expressions): add chunk function to stdlib
* feat(expressions): add map() function to stdlib
* feat(expressions): add filter() function to stdlib
* feat(expressions): add jq() function to stdlib
* feat(expressions): add at() function to stdlib
* feat(expressions): add eval() function to stdlib
* feat(expressions): add support for wildcards and nested property accessors
* feat(expressions): prepare common FS library
* feat(expressions): support spread operator for Call arguments
* feat(expressions): add simple option to simplify expression
* fix(expressions): ternary operator
* feat(expressions): add shellargs method to parse shell arguments

* fix: enable secret endpoint flag

* fix: ignore getting log error

* fix: check for negative test

* fix: doc typo

* fix: remove output message

* feat: Executor tests - k6 container - using ENVs in args (#5281)

* executor tests - using ENV in args

* executor tests - container k6 - suite extended

* Refine Test Workflows Pages (#5284)

* fix: nil check main (#5276)

* fix: nil pointer error

* style: address code review comment

* style: extracted duplicated code into methods

* fix: add deeper calculations

* test: add tests for metrics

* ci: fix linter

* chore: improve TestWorkflow metrics (telemetry)

* fix: image pull secrets registry always being empty when checking regi… (#5289)

* fix image pull secrets registry always being empty when checking registry map and nil pointer dereference in cli

* revert changes to testworkflowmetrics

* fix: remove args formatting

* fix: clean error message for negative tests

* fix: don't return error for missed pod

* feat: default storage class (#5263)

* feat: default storage class model

* fix: dep update

* fix: add condition to template

* fix: change condition operator

* fix: unit test

* docs: cli reference

* docs: default storage class name

* fix: dep update

* Remove Pricing Image (#5293)

* fix: logs handling with Istio (#5295)

* fix: istio - logs are get concurrently in container executor

* fix: istio - logs are get concurrently in container executor for job executor

* fix: istio - removed count 1 for job executor

* fix: error handling nil eq nil warning

* fix: wait for goroutines to complete

* fix: debug logs for log stream

* fix: rollback count

* fix: more logs

* fix: unlock logs

* fix: added comments

* fix: debug

* fix: rollback context background

* fix: no minio and mongodb for agent

* fix: logs for retry

* fix: moved tailPodLogs as method

* fix: nil in log

* fix: removed count from tail

* fix: golangci

* fix: removed count from tail

* fix: GetLogEntry simplified

* fix: simplified logs

* fix: allow to fully override URIs in CLI (#5288)

* feat(testworkflows): expose IP and images for the Toolkit containers (#5302)

* feat(testworkflows): expose real-time status from `execute` step (#5301)

* fix(expressions): simplifying math and enums, expose common expressions machine for steps (#5299)

* feat(testworkflows): configure global expressions machine for steps
* fix(expressions): setting enum string values via expressions
* fix(expressions): simplifying complex math operations

* feat(testworkflows): expose tool to save internal artifacts (#5300)

* feat: allow reading dynamically output of TestWorkflows (#5298)

* feat(testworkflows): allow setting and accessing output from TestWorkflow steps
* feat(testworkflows): improve output from initializer
* fix(testworkflows): speed up TestWorkflows cleanup
* fix(testworkflows): simplify the expressions in TestWorkflow beforehand

* feat(testworkflows): extract logic for building files into ConfigMap, optimize it (#5297)

* feat(testworkflows): add matrix/shards/executionRequest to execute (test-suite-like) step (#5304)

* feat(testworkflows): expose utilities for sharding/matrix in TestWorkflows
* feat(testworkflows): add matrix/shards to `execute` step / add `executionRequest` to `execute.tests`
* feat(testworkflows): expose `executionName` in `execute.workflows`
* feat(testworkflows): expose description for TestWorkflow's `execute` items
* feat(testworkflows): add matrix/shards support for `execute` step
* chore: update testkube-operator

* fix(testworkflows): various adjustments (#5307)

- fix processing output from steps
- fix reading group from image by Skopeo
- fix reading images in Toolkit
- unify code for merging maps
- expose ReadCount helper
- rename shellargs function

* fix(testworkflows): pass dynamic machine for the matrix & shards in execute step (#5308)

* feat: [TKC-1841] test workflow cron job (#5296)

* feat: test workflow event model

* fix: dep update

* feat: mapping fo workflow con job

* docs: workflow schedule

* fix: [TKC-1851]use init image instead of busy-box (#5306)

* fix: use init image instead of usy-box

* fix: use defaultImage

* fix: use DefaultInitImage instead of DefaultImage

* feat(testworkflows): add support for global TestWorkflowTemplate that is automatically included in all executions (#5311)

* feat(testworkflows): add support for global template that is automatically included in all executions
* feat(testworkflows): avoid loading global template twice when it was specifically requested

* docs: disable secret creation & enable secrets endpoint (#5313)

* docs: disable secret creation & enable secrets endpoint

* fix: docs links

* chore: bump docusaurus patch version

* chore: update memory allocation for docs build

* docs: fix secrets pages

* feat: fetch pro context from cloud-api (#5312)

* feat: fetch pro context from cloud-api

* fix: fix grpc authentication

* chore: address review remarks

* feat: [TKC-1817] document on prem bootstrap configuration (#5305)

* feat: [TKC-1817] document on prem bootstrap configuration

* Apply suggestions from code review

Co-authored-by: Julianne Fermi <[email protected]>

---------

Co-authored-by: Julianne Fermi <[email protected]>

* fix: print dashboard links last and blue

* fix(testworkflows): handle edge case of nullish event sent (#5323)

* fix: update JMeter to version which binary is provided by Apache (#5324)

* feat(testworkflows): allow unpacking tarballs, add option to pack tarballs for test-suite-like execute (#5322)

* feat(testworkflows): add transfer server utility to expose data for parallel steps
* feat(testworkflows): add API interface for execute.*.tarball
* feat(testworkflows): add API interface for content.tarball
* feat(testworkflows): add default transfer storage dir path in the constants
* feat(testworkflows): expose both ID and URL while adding entry to transfer.Server
* feat(testworkflows): add support for execute.*.tarball
* feat(testworkflows): add support for content.tarball / fixes and improvements for execute.*.tarball
* feat(expressions): add relpath and abspath functions for expressions in stdlib
* feat(expressions): add range([start = 0, ]end) function

* feat: workflows wizard docs (#5315)

* refactor: workflow create selection

* feat: add wizard steps

* Update docs/docs/articles/test-workflows-creating.md

Co-authored-by: Julianne Fermi <[email protected]>

---------

Co-authored-by: Julianne Fermi <[email protected]>

* feat: ability to test set client in executor tests (#5329)

* feat(testworkflows): add support for pausing steps (#5338)

* feat: add support for step's `pause` configuration in the API
* feat: debug - expose pause config to init script
* feat: change the Pause configuration format
* feat: add initial support for pause/resume in the Init Process
* feat: add control server for the Init Process to resume/pause
* feat: improve pause/resume for steps
* feat: expose endpoints to pause/resume steps
* feat: set "paused" status correctly for workflow and workflow step
* fix: avoid displaying empty line for consecutive hints/outputs
* fix: compute properly "paused" status
* chore: avoid sending output for pause/resume
* feat: compute and persist pause periods for TestWorkflow steps
* feat: add pause timestamp
* feat: ignore pause period in the `timeout`
* feat: add more details to TestWorkflowResultSummary
* chore: compute paused expression to detect if it is static
* chore: use http constant instead
* fix: order of pause mutex
* feat: extract common instruction names to constants
* chore: fall back pause/resume to Kubernetes timestamp in case of invalid date
* fix: building pause step for group stage
* chore: compute paused immediately whenever it is possible
* chore: add 'end' instruction to constants
* feat(testworkflows): change `paused` to be boolean instead of expression
* chore: avoid "-" in pause container name
* chore: use latest testkube-operator

* fix: new location for zap image (#5341)

* feat(testworkflows): support more advanced Pod configuration (#5340)

* feat: add OpenAPI support for more Pod configuration fields
* feat(testworkflows): merge new pod configuration correctly
* fix(testworkflows): update testkube-operator, adjust pod.resourceClaims
* feat(testworkflows): append new pod configuration properties to the TestWorkflow
* chore: update testkube-operator

* fix: label value duplication

* fix: use make

* feat: refactor test workflow execute (#5333)

* feat: refactor test workflow execute

* fix: run workflow async

* fix: add test workflow to workpool

* feat: support test workflow in tirggers

* fix: status and scraper unit tests

* fix: trigger executor unit test

* fix: nil check

* fix: skip error

* fix: return api error

* fix: check for paused

* fix: change const

* fix: import

* fix: nil check

* doc: testworkflow trigger

* fix: dep update

* fix: invalid option for --output flag (#5337)

The help text for the --output flag in the CLI suggest that there is type "go-template", when in fact it is just "go".

* feat: cloud demo examples with cron triggers, workflow tests -  triggers, junit example (#5330)

* cloud demo examples with cron triggers

* workflow tests - cron triggers

* workflow tests - workflow suites extended, postman cron trigger test

* add support for searching and sending junit reports to cloud (#5328)

* fix: test trigger mapping

* fix: move pkg

* chore(deps): bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /docs (#5240)

Bumps [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) from 5.3.3 to 5.3.4.
- [Release notes](https://github.com/webpack/webpack-dev-middleware/releases)
- [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/v5.3.4/CHANGELOG.md)
- [Commits](webpack/webpack-dev-middleware@v5.3.3...v5.3.4)

---
updated-dependencies:
- dependency-name: webpack-dev-middleware
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: [TKC-1887]add on prem installer as the testkube command (#5345)

* feat: add on prem installer as the testkube command

* fix: add breaks and uncomment context confirmation

* fix: add telemetry

* feat(installer): polish init demo

* Update lint.yaml

* fix: fix linter

* fix(installer): Testkube OSS should be the default init

---------

Co-authored-by: Delnat Wito <[email protected]>
Co-authored-by: Wito <[email protected]>

* chore: draft installing docs (#5346)

* chore: draft installing docs

* fix(docs): address remarks

* fix(docs): inconsistencies between doc and cli

* docs: Add Examples to Test Workflows (#5334)

* Add Examples to Test Workflows

Using Dawid Rusnak's presentation.

* Update docs/docs/articles/test-workflows-examples-basics.md

Co-authored-by: Dawid Rusnak <[email protected]>

* Update docs/docs/articles/test-workflows-examples-basics.md

Co-authored-by: Dawid Rusnak <[email protected]>

* Update docs/docs/articles/test-workflows-examples-expressions

Co-authored-by: Dawid Rusnak <[email protected]>

* Update docs/docs/articles/test-workflows-examples-expressions

Co-authored-by: Dawid Rusnak <[email protected]>

* Update docs/docs/articles/test-workflows-examples-configuration.md

Co-authored-by: Dawid Rusnak <[email protected]>

* Correct Expression page errors

* Update test-workflows-examples-basics.md

* Update docs/docs/articles/test-workflows-examples-expressions.md

Co-authored-by: Dawid Rusnak <[email protected]>

* Update docs/docs/articles/test-workflows-examples-basics.md

Co-authored-by: Dawid Rusnak <[email protected]>

* Update docs/docs/articles/test-workflows-examples-basics.md

Co-authored-by: Dawid Rusnak <[email protected]>

---------

Co-authored-by: Dawid Rusnak <[email protected]>

* fix(init): fix licenses with spaces and special characters (#5354)

* docs: Reverse order of CLI init profiles (OSS last) (#5359)

* docs: Reverse order of CLI init profiles (OSS last)

* docs: Add URL to download

* docs: Reverse order of CLI init profiles (OSS last)

* fix: hotfix license key (#5360)

* Add GitHub Actions to depedndabot

* fix: salve pod template ca secret

* chore(deps): bump actions/cache from 2 to 4

Bumps [actions/cache](https://github.com/actions/cache) from 2 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v2...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump golangci/golangci-lint-action from 4 to 5

Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 4 to 5.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](golangci/golangci-lint-action@v4...v5)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump codecov/codecov-action from 3 to 4

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](codecov/codecov-action@v3...v4)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump actions/setup-node from 3 to 4

Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump docker/setup-buildx-action from 1 to 3

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@v1...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* docs: added quickstart without k8s info and some faq entries (#5370)

* docs: added quickstart without k8s info and some faq entries

* docs: fixed broken link

* docs: typos..

* docs: Change HTTP to HTTPS on URLs (SEO requirement) (#5371)

* chore(deps): bump pnpm/action-setup from 2 to 3

Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 2 to 3.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](pnpm/action-setup@v2...v3)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump anchore/sbom-action from 0.14.2 to 0.15.11

Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.14.2 to 0.15.11.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](anchore/sbom-action@v0.14.2...v0.15.11)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump docker/setup-qemu-action from 1 to 3

Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 1 to 3.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](docker/setup-qemu-action@v1...v3)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump peaceiris/actions-gh-pages from 3 to 4

Bumps [peaceiris/actions-gh-pages](https://github.com/peaceiris/actions-gh-pages) from 3 to 4.
- [Release notes](https://github.com/peaceiris/actions-gh-pages/releases)
- [Changelog](https://github.com/peaceiris/actions-gh-pages/blob/main/CHANGELOG.md)
- [Commits](peaceiris/actions-gh-pages@v3...v4)

---
updated-dependencies:
- dependency-name: peaceiris/actions-gh-pages
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump goreleaser/goreleaser-action from 2 to 5

Bumps [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) from 2 to 5.
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](goreleaser/goreleaser-action@v2...v5)

---
updated-dependencies:
- dependency-name: goreleaser/goreleaser-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* feat: test workflow events

* fix: test workflow slack messages

* docs: slack and webhooks

* fix: slack config

* fix: update slack template

* fix: change slack workflow name

* fix: dep update

* chore(deps): bump actions/setup-go from 2 to 5

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2 to 5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](actions/setup-go@v2...v5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump golangci/golangci-lint-action from 5 to 6

Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 5 to 6.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](golangci/golangci-lint-action@v5...v6)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump github/codeql-action from 2 to 3

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Commits](github/codeql-action@v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump amannn/action-semantic-pull-request

Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 3.4.6 to 5.5.2.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md)
- [Commits](amannn/action-semantic-pull-request@v3.4.6...v5.5.2)

---
updated-dependencies:
- dependency-name: amannn/action-semantic-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump bruceadams/get-release from 1.2.3 to 1.3.2

Bumps [bruceadams/get-release](https://github.com/bruceadams/get-release) from 1.2.3 to 1.3.2.
- [Release notes](https://github.com/bruceadams/get-release/releases)
- [Commits](bruceadams/get-release@v1.2.3...v1.3.2)

---
updated-dependencies:
- dependency-name: bruceadams/get-release
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* fix(testworkflows): upgrade testkube-operator to support expressions in "run" step (#5385)

(cherry picked from commit 022dcd0)

* fix issue with image pull secrets for workflows (#5378)

* feat(installer): minor improvements (#5387)

* chore(deps): bump guyarb/golang-test-annotations from 0.6.0 to 0.8.0

Bumps [guyarb/golang-test-annotations](https://github.com/guyarb/golang-test-annotations) from 0.6.0 to 0.8.0.
- [Release notes](https://github.com/guyarb/golang-test-annotations/releases)
- [Commits](guyarb/golang-test-annotations@v0.6.0...v0.8.0)

---
updated-dependencies:
- dependency-name: guyarb/golang-test-annotations
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* fix issue with image pull secrets for workflows due to invalid registry append (#5397)

* chore(deps): bump timheuer/base64-to-file from 1.1 to 1.2

Bumps [timheuer/base64-to-file](https://github.com/timheuer/base64-to-file) from 1.1 to 1.2.
- [Release notes](https://github.com/timheuer/base64-to-file/releases)
- [Commits](timheuer/base64-to-file@v1.1...v1.2)

---
updated-dependencies:
- dependency-name: timheuer/base64-to-file
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump actions/setup-java from 3 to 4

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump peter-evans/repository-dispatch from 2 to 3

Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 2 to 3.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](peter-evans/repository-dispatch@v2...v3)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump pnpm/action-setup from 3 to 4

Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 3 to 4.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](pnpm/action-setup@v3...v4)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* feat: TKC-1956 log message retention time (#5399)

* add support for cloud capabilities (#5398)

* chore(deps): bump sigstore/cosign-installer from 3.4.0 to 3.5.0

Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](sigstore/cosign-installer@v3.4.0...v3.5.0)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump docker/login-action from 1 to 3

Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@v1...v3)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump actions/checkout from 2 to 4

Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](actions/checkout@v2...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump actions/upload-artifact from 3 to 4

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Replace Image (#5402)

An image was affecting performance of the docs.

* feat: [TKC-1856] test workflow execution namespace (#5388)

* feat: test workflow namespace field

* feat: model for test workflow execution namespace

* feat: test workflow execution namespace

* fix: use execution namespace

* fix: render execution namespace

* fix: shoow namespace

* fix: pass service account names to test workflow executor

* fix: internal namespace

* docs: example for test workflow namespace

* fix: dep update

* feat: headers for direct client

* docs: cli

* fix(testworkflows): improve stability of orchestration (#5408)

* fix(testworkflows): expose proper error for internal cluster problem with networking
* fix(testworkflows): fix problems with artifacts walker
* fix(testworkflows): clean up global template
* fix(testworkflows): fix streaming error messages
* fix(testworkflows): delete unneeded file
* fix(testworkflows): improve stability of TestWorkflow orchestration
* fix(testworkflows): ensure no memory leaks while controlling TestWorkflow
* fix(testworkflows): CR fixes

* feat(testworkflows): add activeDeadlineSeconds for the job (#5410)

* chore(deps): bump ossf/scorecard-action from 2.3.1 to 2.3.3

Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.3.1 to 2.3.3.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](ossf/scorecard-action@0864cf1...dc50aa9)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* docs: link openapi definition (#5413)

* fix(testworkflows): orchestration fixes (#5414)

* fix(testworkflows): make the orchestration channel peeking async
* fix(testworkflows): increase init controller timeout
* fix(testworkflows): fallback execution namespace to the default one

* fix: add more telemetry for on prem installer (#5412)

* docs: add test executions durations to metrics (#5418)

* fix: complete repository empty check (#4889)

* fix: complete repository empty check

* fix: extract method for empty check

* docs: add test executions duration to metrics

---------

Co-authored-by: Vladislav Sukhin <[email protected]>
Co-authored-by: nicufk <[email protected]>

* fix: relax license format to include old offline licenses (#5422)

* docs: Remove references to old installer (#5427)

* feat: [TKC-1854] add read only flag for test workflows (#5429)

* fix: pulling from git servers using private ca (#5432)

* feat: event mapper

* feat: k8s event loader

* fix: switch value

* fix: rename testkube event

* fix: dep update

* fix: get causes for testkube event

* fix: enable k8s events flag

* fix: rename const

* fix: use const

* docs: k8s events

* fix: rename method

* fix: dep update

* feat(testworkflows): TKC-1765 - parallel execution (K6/Playwright/Cypress) (#5420)

* feat(testworkflows): TKC-1765 - add support for `parallel` syntax
* chore(testworkflows): use single instance of TestWorkflowExecutor
* feat(testworkflows): TKC-1765 - expose configured images inspector for Toolkit
* fix(testworkflows): delete global template from env map
* feat(testworkflows): decouple workflow resource IDs with execution IDs / support root/direct resource IDs
* feat(testworkflows): TKC-1763 - initial version of `parallel` step support
* feat(testworkflows): perform workflow clean up operations in parallel
* feat(testworkflows): TKC-1763 - support parallelism and description for parallel steps
* feat(testworkflows): TKC-1763 - expose Dashboard/API URLs to the Toolkit
* feat(testworkflows): TKC-1763 - set default parallelism of 1000 in `parallel` steps
* fix(testworkflows): avoid timeouts in parallel execution
* feat(testworkflows): TKC-1763 - expose parallel steps signature and results
* chore(testworkflows): delete debug prints
* feat(testworkflows): isolate parallel steps artifacts
* feat(testworkflows): expose information about current inner step in parallel step
* feat(testworkflows): TKC-1763 - expose information about current inner step in parallel step
* feat(testworkflows): TKC-1763 - store logs for parallel steps
* feat(testworkflows): inform about the node where the parallel step is running
* feat(testworkflows): TKC-1765 - add distributed K6 examples
* chore(testworkflows): rename fetch tarball operation
* chore(testworkflows): extract tarball unpacking logic
* feat(testworkflows): TKC-1766 - add option to fetch files from parallel steps
* feat(testworkflows): TKC-1766 - add example for distributed Playwright test
* fix(testworkflows): avoid problems with not existing working directory permissions
* fix(testworkflows): working directory expressions
* feat(testworkflows): add example of automatically distributed Cypress tests
* chore(testworkflows): restructure TestWorkflow operator objects
* feat(testworkflows): add shorter syntax for parallel steps (do not require `steps` when it's a single one)
* feat(testworkflows): inherit container defaults in the parallel step
* feat(testworkflows): handle `template` alias in `parallel` step properly
* feat(testworkflows): dedupe env vars in the ContainerConfig
* feat(testworkflows): use inheritance in distributed Cypress/Playwright examples
* chore(testworkflows): simplify distributed K6 example
* chore(testworkflows): display worker description in general parallel logs
* chore(testworkflows): extract building params information text
* chore(testworkflows): extract processing `transfer` instruction
* chore(testworkflows): extract processing `fetch` instruction
* chore(testworkflows): code review fixes
* chore(testworkflows): fix circular dependency
* chore(testworkflows): extract code for deploying TestWorkflow bundle
* chore(testworkflows): extract code for fetching the TestWorkflow logs
* chore(testworkflows): extract code for fetching the TestWorkflow logs
* chore(testworkflows): use job namespace in parallel execution
* chore(testworkflows): unify logger for the parallel workers notifications
* chore(testworkflows): extract building execution machine
* chore(testworkflows): little code movement
* chore(testworkflows): extract code for executing parallel operations
* chore(testworkflows): unify parallel log
* chore(testworkflows): build controller registry for parallel workers
* chore(testworkflows): simplify watcher in the parallel workers
* chore(testworkflows): clean up client set for parallel workers
* feat(testworkflows): add support for conditional logs save in parallel steps
* chore(testworkflows): extract logic for creating machine for spawning
* chore(testworkflows): update testkube-operator

* feat: added debug info in case of pod disaster (#5433)

* fix(testworkflows): orchestration fixes (#5435)

* fix: cloud uploader should set correct content type (#5437)

* feat(testworkflows): TKC-1764 - support accompanying services (#5436)

* feat(testworkflows): support `services` in the TestWorkflow objects
* feat(testworkflows): support `use` in `services`
* fix(testworkflows): orchestration fixes
* feat(testworkflows): TKC-1764 - add support for accompanying services
* chore: update integration tests to use provided URLs
* chore: update integration tests to use provided Minio URLs
* chore: fix NATS URIs in tests
* chore: hardcode again Minio buckets for tests
* fix: add missing environment variables for integration tests
* fix(testworkflows): cloning the repository
* fix(testworkflows): merging securityContext
* fix(testworkflows): sort out proper group/fsGroup/user for the services
* feat(testworkflows): add example integration tests for Testkube
* fix: adjust make integration-tests to fill the access/secret keys
* chore: update testkube-operator
* feat: expose PWD environment variable for the processing

* fix(testworkflows): CRD for integration tests (#5440)

* feat: Control Plane debug command (#5438)

* fix: dashboard panic when opening from init (#5425)

* feat: added control plane debug

* feat: tuning the command

* fix: added spinner to stderr

* fix: e2e test

---------

Co-authored-by: nicufk <[email protected]>

* add action to cleanup space before building executors (#5442)

* fix: include TestWorkflowTemplate events in the TestWorkflow (#5446)

* fix: moved NATS tests to integration test suite

* fix: moved some noisy logs to debug added TRACE level (#5448)

* fix: moved some noisy logs to debug

* fix: added TRACE level wrapper

* feat: add support for default service account for TestWorkflows (#5453)

* feat: add support for default service account for TestWorkflows
* feat: combine default service account for Tests and TestWorkflows

* fix: cherry-pick init/telemetry fixes (#5426)

* fix: dashboard panic when opening from init (#5425)

* fix: telemetry mappings (#5417)

* fix: telemetry mappings

* fix: send false postive

* fix: cloud uploader should match content type (#5456)

* feat: scraper sidecar option

* fix: sidecar scraper template

* fix: sidecar scraper env

* fix: support sidecar in scraper

* fix: check job label

* fix: unit test

* fix: remove env var

* docs: sidecar scraper example

* fix: move is container terminated to k8s client

* docs: cli

* fix: cloud uploader should match content type by name (#5458)

* fix: presigned url needs to send contentType (#5461)

* feat: log status of the parallel steps / exposes TestWorkflow pauses in result (#5460)

* feat: log status of the parallel steps
* fix: clone pauses while cloning result

* fix: displaying log parallel status (#5464)

* add building of postam image for nodejs

* update manifest for image

* fix typo

* test flow for dev and stage

* remove testing branches

* fix ident

* update node image

* fix typo

* update docs for TK Installer

* fix: use /tmp host dir for integration tests Go cache (#5466)

* fix: bugs from TestWorkflow examples / artifacts error (#5471)

* fix: k6-workflow-smoke-preofficial-trait

* fix: cypress-workflow-smoke-13-junit-report

* fix: checkout example in TestWorkflowTemplates

* fix: JUnit post-processor with relative paths

* fixup junit integration tests

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Dawid Rusnak <[email protected]>
Co-authored-by: Jacek Wysocki <[email protected]>
Co-authored-by: ypoplavs <[email protected]>
Co-authored-by: Lilla Vass <[email protected]>
Co-authored-by: nicufk <[email protected]>
Co-authored-by: Tomasz Konieczny <[email protected]>
Co-authored-by: Ole Lensmar <[email protected]>
Co-authored-by: Julianne Fermi <[email protected]>
Co-authored-by: Javier Morante <[email protected]>
Co-authored-by: Dejan Zele Pejchev <[email protected]>
Co-authored-by: Emil Davtyan <[email protected]>
Co-authored-by: Lilla Vass <[email protected]>
Co-authored-by: Catalin <[email protected]>
Co-authored-by: Wito <[email protected]>
Co-authored-by: Povilas Versockas <[email protected]>
Co-authored-by: Razvan Topliceanu <[email protected]>
Co-authored-by: frederikb <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Delnat Wito <[email protected]>
Co-authored-by: Luca Comellini <[email protected]>
Co-authored-by: Nelson Silva <[email protected]>
  • Loading branch information
1 parent c16ae5c commit 0611af9
Show file tree
Hide file tree
Showing 18 changed files with 350 additions and 31 deletions.
57 changes: 57 additions & 0 deletions .github/workflows/docker-build-api-executors-tag.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -702,6 +702,63 @@ jobs:
docker push kubeshop/testkube-cypress-executor:${{ steps.tag.outputs.tag }}-${{ matrix.version }}-amd64
docker push kubeshop/testkube-cypress-executor:${{ steps.tag.outputs.tag }}-${{ matrix.version }}-arm64v8
executor_postman_node21:
runs-on: ubuntu-latest
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false

- name: Checkout
uses: actions/checkout@v4

- uses: sigstore/[email protected]
- uses: anchore/sbom-action/[email protected]

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3

- name: Set-up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache: false

- name: Go Cache
uses: actions/cache@v4
with:
path: |
~/go/pkg/mod
~/.cache/go-build
key: postman-node-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Release
uses: goreleaser/goreleaser-action@v5
with:
distribution: goreleaser
version: latest
args: release -f goreleaser_files/.goreleaser-docker-build-executor-postman-node21.yml
env:
GITHUB_TOKEN: ${{ secrets.CI_BOT_TOKEN }}
DOCKER_BUILDX_BUILDER: "${{ steps.buildx.outputs.name }}"
DOCKER_BUILDX_CACHE_FROM: "type=gha"
DOCKER_BUILDX_CACHE_TO: "type=gha,mode=max"

executor_cypress_manifest:
needs: executor_cypress
strategy:
Expand Down
64 changes: 64 additions & 0 deletions .github/workflows/docker-build-develop.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -654,6 +654,70 @@ jobs:
run: |
docker push kubeshop/testkube-playwright-executor:${{ steps.commit.outputs.short }}
executor_postman_node21:
runs-on: ubuntu-latest
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false

- name: Checkout
uses: actions/checkout@v4

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3

- name: Set-up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache: false

- name: Go Cache
uses: actions/cache@v4
with:
path: |
~/go/pkg/mod
~/.cache/go-build
key: postman-node-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- id: commit
uses: prompt/actions-commit-hash@v3

- name: Release
uses: goreleaser/goreleaser-action@v5
with:
distribution: goreleaser
version: latest
args: release -f goreleaser_files/.goreleaser-docker-build-executor-postman-node21.yml --snapshot
env:
GITHUB_TOKEN: ${{ secrets.CI_BOT_TOKEN }}
DOCKER_BUILDX_BUILDER: "${{ steps.buildx.outputs.name }}"
DOCKER_BUILDX_CACHE_FROM: "type=gha"
DOCKER_BUILDX_CACHE_TO: "type=gha,mode=max"
IMAGE_TAG_SHA: true

- name: Push image to the Registry
run: |
docker push kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }}-arm64v8
docker push kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }}-amd64
docker manifest create kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }} --amend kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }}-arm64v8 --amend kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }}-amd64
docker manifest push -p kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }}
workflow_dispatch:
needs: [api, single_executor, executor_jmeter, executor_jmeterd, jmeterd_slave, executor_maven, executor_gradle, executor_cypress, executor_playwright]
runs-on: ubuntu-latest
Expand Down
63 changes: 63 additions & 0 deletions .github/workflows/docker-build-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -715,6 +715,69 @@ jobs:
run: |
docker push kubeshop/testkube-playwright-executor:${{ steps.commit.outputs.short }}
executor_postman_node21:
runs-on: ubuntu-latest
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false

- name: Checkout
uses: actions/checkout@v4

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3

- name: Set-up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache: false

- name: Go Cache
uses: actions/cache@v4
with:
path: |
~/go/pkg/mod
~/.cache/go-build
key: postman-node-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- id: commit
uses: prompt/actions-commit-hash@v3

- name: Release
uses: goreleaser/goreleaser-action@v5
with:
distribution: goreleaser
version: latest
args: release -f goreleaser_files/.goreleaser-docker-build-executor-postman-node21.yml --snapshot
env:
GITHUB_TOKEN: ${{ secrets.CI_BOT_TOKEN }}
DOCKER_BUILDX_BUILDER: "${{ steps.buildx.outputs.name }}"
DOCKER_BUILDX_CACHE_FROM: "type=gha"
DOCKER_BUILDX_CACHE_TO: "type=gha,mode=max"
IMAGE_TAG_SHA: true

- name: Push image to the Registry
run: |
docker push kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }}-arm64v8
docker push kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }}-amd64
docker manifest create kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }} --amend kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }}-arm64v8 --amend kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }}-amd64
docker manifest push -p kubeshop/testkube-postman-executor:node21-${{ steps.commit.outputs.short }}
workflow_dispatch:
needs: [ api, single_executor, executor_jmeter, executor_jmeterd, jmeterd_slave, executor_maven, executor_gradle, executor_cypress, executor_playwright ]
runs-on: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,5 +110,5 @@ Shout-out to our contributors 🎉 - you're great!
Go to [contribution document](CONTRIBUTING.md) to read more how can you help us 🔥

# Feedback
Whether it helps you or not - we'd LOVE to hear from you. Please let us know what you think and of course, how we can make it better
Whether it helps you or not - we'd LOVE to hear from you. Please let us know what you think and of course, how we can make it better.
Please join our growing community on [Slack](https://testkubeworkspace.slack.com/join/shared_invite/zt-2arhz5vmu-U2r3WZ69iPya5Fw0hMhRDg#/shared-invite/email)
6 changes: 3 additions & 3 deletions cmd/tcl/testworkflow-toolkit/artifacts/handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ func TestHandler_CloudUploader(t *testing.T) {
setFilesystemExpectations := func(fs *filesystem.MockFileSystem) {
fs.
EXPECT().
OpenFileRO("test.log").
OpenFileRO("/test.log").
Return(filesystem.NewMockFile("test.log", []byte("test")), nil)
fs.
EXPECT().
OpenFileRO("report/junit.xml").
OpenFileRO("/report/junit.xml").
Return(filesystem.NewMockFile("report/junit.xml", []byte(testdata.BasicJUnit)), nil)

}
Expand Down Expand Up @@ -138,7 +138,7 @@ func TestHandler_CloudUploader(t *testing.T) {
}
var handlerOpts []HandlerOpts
if tc.withJUnitPostProcessor {
pp := NewJUnitPostProcessor(mockFilesystem, mockExecutor)
pp := NewJUnitPostProcessor(mockFilesystem, mockExecutor, "/", "")
handlerOpts = append(handlerOpts, WithPostProcessor(pp))
}
handler := NewHandler(uploader, tc.processor, handlerOpts...)
Expand Down
29 changes: 22 additions & 7 deletions cmd/tcl/testworkflow-toolkit/artifacts/junit_post_processor.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"fmt"
"io"
"io/fs"
"path/filepath"
"strings"
"time"

Expand All @@ -22,12 +23,14 @@ import (

// JUnitPostProcessor is a post-processor that checks XML files for JUnit reports and sends them to the cloud.
type JUnitPostProcessor struct {
fs filesystem.FileSystem
client cloudexecutor.Executor
fs filesystem.FileSystem
client cloudexecutor.Executor
root string
pathPrefix string
}

func NewJUnitPostProcessor(fs filesystem.FileSystem, client cloudexecutor.Executor) *JUnitPostProcessor {
return &JUnitPostProcessor{fs: fs, client: client}
func NewJUnitPostProcessor(fs filesystem.FileSystem, client cloudexecutor.Executor, root, pathPrefix string) *JUnitPostProcessor {
return &JUnitPostProcessor{fs: fs, client: client, root: root, pathPrefix: pathPrefix}
}

func (p *JUnitPostProcessor) Start() error {
Expand All @@ -36,7 +39,15 @@ func (p *JUnitPostProcessor) Start() error {

// Add checks if the file is a JUnit report and sends it to the cloud.
func (p *JUnitPostProcessor) Add(path string) error {
file, err := p.fs.OpenFileRO(path)
uploadPath := path
if p.pathPrefix != "" {
uploadPath = filepath.Join(p.pathPrefix, uploadPath)
}
absPath := path
if !filepath.IsAbs(path) {
absPath = filepath.Join(p.root, absPath)
}
file, err := p.fs.OpenFileRO(absPath)
if err != nil {
return errors.Wrapf(err, "failed to open %s", path)
}
Expand All @@ -60,21 +71,25 @@ func (p *JUnitPostProcessor) Add(path string) error {
return nil
}
fmt.Printf("Processing JUnit report: %s\n", ui.LightCyan(path))
if err := p.sendJUnitReport(path, xmlData); err != nil {
if err := p.sendJUnitReport(uploadPath, xmlData); err != nil {
return errors.Wrapf(err, "failed to send JUnit report %s", stat.Name())
}
return nil
}

// sendJUnitReport sends the JUnit report to the Agent gRPC API.
func (p *JUnitPostProcessor) sendJUnitReport(path string, report []byte) error {
// Apply path prefix correctly
if p.pathPrefix != "" {
path = filepath.Join(p.pathPrefix, path)
}
ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)
defer cancel()
_, err := p.client.Execute(ctx, testworkflow.CmdTestWorkflowExecutionAddReport, &testworkflow.ExecutionsAddReportRequest{
ID: env.ExecutionId(),
WorkflowName: env.WorkflowName(),
WorkflowStep: env.Ref(), // TODO: think if it's valid for the parallel steps that have independent refs
Filepath: path, // TODO: adjust to support sub-paths from parallel execution?
Filepath: path,
Report: report,
})
return err
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,12 @@ func TestJUnitPostProcessor_Add(t *testing.T) {
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
mockFS := filesystem.NewMockFileSystem(mockCtrl)
mockFS.EXPECT().OpenFileRO(tc.path).Return(tc.file, nil)
mockFS.EXPECT().OpenFileRO("/"+tc.path).Return(tc.file, nil)
mockClient := executor.NewMockExecutor(mockCtrl)
if tc.setup != nil {
tc.setup(mockClient)
}
pp := NewJUnitPostProcessor(mockFS, mockClient)
pp := NewJUnitPostProcessor(mockFS, mockClient, "/", "")
err := pp.Add(tc.path)
assert.Equal(t, tc.want, err)
})
Expand Down
2 changes: 1 addition & 1 deletion cmd/tcl/testworkflow-toolkit/commands/artifacts.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ func NewArtifactsCmd() *cobra.Command {
defer executor.Close()

if env.JUnitParserEnabled() || capabilities.Enabled(supported, capabilities.CapabilityJUnitReports) {
junitProcessor := artifacts.NewJUnitPostProcessor(filesystem.NewOSFileSystem(), executor)
junitProcessor := artifacts.NewJUnitPostProcessor(filesystem.NewOSFileSystem(), executor, walker.Root(), env.Config().Execution.FSPrefix)
handlerOpts = append(handlerOpts, artifacts.WithPostProcessor(junitProcessor))
}
if compress != "" {
Expand Down
11 changes: 10 additions & 1 deletion cmd/tcl/testworkflow-toolkit/commands/artifacts_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package commands
import (
"embed"
"encoding/json"
"io/fs"
"net/http"
"net/http/httptest"
"testing"
Expand Down Expand Up @@ -57,7 +58,15 @@ func TestRun_Integration(t *testing.T) {
mockClient.EXPECT().Execute(gomock.Any(), artifact.CmdScraperPutObjectSignedURL, gomock.Any()).Return(mockResponseJson, nil).Times(2)
mockClient.EXPECT().Execute(gomock.Any(), testworkflow.CmdTestWorkflowExecutionAddReport, gomock.Any()).Return(nil, nil)
uploader := artifacts.NewCloudUploader(mockClient)
postProcessor := artifacts.NewJUnitPostProcessor(filesystem.NewOSFileSystem(), mockClient)
mockFs := filesystem.NewMockFileSystem(mockCtrl)
mockFs.EXPECT().OpenFileRO(gomock.Any()).AnyTimes().DoAndReturn(func(path string) (fs.File, error) {
b, err := testDataFixtures.ReadFile(path[1:])
if err != nil {
return nil, err
}
return filesystem.NewMockFile(path[1:], b), nil
})
postProcessor := artifacts.NewJUnitPostProcessor(mockFs, mockClient, "/", "")
handler := artifacts.NewHandler(uploader, processor, artifacts.WithPostProcessor(postProcessor))

run(handler, walker, testDataFixtures)
Expand Down
20 changes: 20 additions & 0 deletions contrib/executor/postman/build/agent/Dockerfile.node21
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# syntax=docker/dockerfile:1
FROM node:21-alpine3.19

COPY postman /bin/runner
RUN npm install -g newman
RUN apk --no-cache add ca-certificates git curl

# support npm report permissions
RUN mkdir -p /.npm
RUN chmod 777 /.npm
RUN chmod 777 /root/
RUN chmod 777 /usr/local/lib/node_modules
RUN chmod 777 /usr/local/bin

WORKDIR /root/
EXPOSE 8082

USER 1001

ENTRYPOINT ["/bin/runner"]
2 changes: 1 addition & 1 deletion docs/docs/articles/install/quickstart-install.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import TabItem from "@theme/TabItem";

# Testkube Quickstart

Following this quickstart tutorial provides you with a simplified On Prem installation that deploys both the control plane and agent within the same namespace. It comes with a preconfigured admin, organisation and environment.
Following this quickstart tutorial provides you with a simplified On Prem installation that deploys both the control plane and agent within the same namespace. It does not create Ingress configuration as its mainly designed for local installations that allow you to quickly try out and evaluate the solution. It comes with a preconfigured admin, organisation and environment.

## Prerequisites

Expand Down
Loading

0 comments on commit 0611af9

Please sign in to comment.