Skip to content

Feature+Test: Add runtime-aware builder config and Config CI e2e tests.#3479

Merged
knative-prow[bot] merged 1 commit intoknative:mainfrom
twoGiants:issue-783-e2e-tests-with-act
Mar 16, 2026
Merged

Feature+Test: Add runtime-aware builder config and Config CI e2e tests.#3479
knative-prow[bot] merged 1 commit intoknative:mainfrom
twoGiants:issue-783-e2e-tests-with-act

Conversation

@twoGiants
Copy link
Contributor

@twoGiants twoGiants commented Mar 9, 2026

Changes

  • 🎁 Add runtime-aware builder selection to generated GitHub Actions workflows — func config ci now sets FUNC_BUILDER based on the function runtime (host for Go/Python local, pack for Node/TypeScript/Rust/Quarkus/Springboot, s2i for Python remote) and uses environment variables (FUNC_BUILDER, FUNC_REGISTRY, FUNC_REMOTE, FUNC_VERBOSE) instead of CLI flags
  • 🎁 Add e2e tests using nektos/act to deploy functions via generated workflows against a real cluster for Go, Node, TypeScript, Python, and Quarkus runtimes
  • 🎁 Add test-e2e-config-ci GitHub Actions job, Makefile target, and hack/test-full.sh entry
  • 🎁 Install act binary via hack/binaries.sh
  • 🧹 Add missing .PHONY declarations for test-e2e-matrix and test-full-logged
  • 🧹 Refactor CIConfig to load the function upfront, encapsulating runtime and root path instead of deferring to callers
  • 🧹 Improve platform validation: reject empty values and include supported platforms in error messages
  • 🐛 Fix typos in CI workflow comments (CluserCluster, runtimruntime)

/kind enhancement

Relates to #3256

Release Note

`func config ci` now generates workflows with runtime-aware builder selection (FUNC_BUILDER) and uses environment variables instead of CLI flags for deploy configuration.

Docs


@knative-prow
Copy link

knative-prow bot commented Mar 9, 2026

@twoGiants: The label(s) kind/<kind> cannot be applied, because the repository doesn't have them.

Details

In response to this:

Changes

/kind

Fixes #

Release Note


Docs


Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@knative-prow knative-prow bot added do-not-merge/work-in-progress 🤖 PR should not merge because it is a work in progress. size/XL 🤖 PR changes 500-999 lines, ignoring generated files. labels Mar 9, 2026
@knative-prow knative-prow bot requested review from dsimansk and jrangelramos March 9, 2026 18:30
@codecov
Copy link

codecov bot commented Mar 9, 2026

Codecov Report

❌ Patch coverage is 70.00000% with 21 lines in your changes missing coverage. Please review.
✅ Project coverage is 55.05%. Comparing base (a477262) to head (675cd38).
⚠️ Report is 8 commits behind head on main.

Files with missing lines Patch % Lines
cmd/ci/config.go 55.00% 13 Missing and 5 partials ⚠️
cmd/ci/workflow.go 90.90% 2 Missing ⚠️
cmd/ci/common.go 50.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3479      +/-   ##
==========================================
+ Coverage   54.79%   55.05%   +0.26%     
==========================================
  Files         181      181              
  Lines       20443    20476      +33     
==========================================
+ Hits        11202    11274      +72     
+ Misses       8064     8009      -55     
- Partials     1177     1193      +16     
Flag Coverage Δ
e2e 38.57% <0.00%> (-0.07%) ⬇️
e2e go 32.46% <0.00%> (-0.06%) ⬇️
e2e node 28.28% <0.00%> (-0.08%) ⬇️
e2e python 31.86% <0.00%> (-0.06%) ⬇️
e2e quarkus 28.42% <0.00%> (-0.04%) ⬇️
e2e rust 27.83% <0.00%> (-0.07%) ⬇️
e2e springboot 26.30% <0.00%> (+0.02%) ⬆️
e2e typescript 28.39% <0.00%> (-0.06%) ⬇️
e2e-config-ci 18.14% <72.13%> (?)
integration 17.41% <0.00%> (-0.02%) ⬇️
unit macos-14 42.87% <62.29%> (+0.22%) ⬆️
unit macos-latest 42.87% <62.29%> (+0.22%) ⬆️
unit ubuntu-24.04-arm 43.07% <60.00%> (+0.16%) ⬆️
unit ubuntu-latest 43.75% <62.29%> (+0.21%) ⬆️
unit windows-latest 42.89% <62.29%> (+0.22%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@twoGiants twoGiants changed the title WIP Feature: Add builder configuration and e2e tests for config ci. Feature: Add runtime-aware builder config and Config CI e2e tests. Mar 10, 2026
@knative-prow knative-prow bot removed the do-not-merge/work-in-progress 🤖 PR should not merge because it is a work in progress. label Mar 10, 2026
@twoGiants twoGiants changed the title Feature: Add runtime-aware builder config and Config CI e2e tests. Feature+Test: Add runtime-aware builder config and Config CI e2e tests. Mar 10, 2026
@twoGiants
Copy link
Contributor Author

/kind enhancement

/cc @gauron99 @creydr @lkingland

The e2e test are done with a few other features and refactorings. Check out the PR description for details.

Thank you for the review 😸 👍 .

@knative-prow knative-prow bot requested review from creydr, gauron99 and lkingland March 10, 2026 09:24
@knative-prow knative-prow bot added the kind/enhancement Feature additions or improvements to existing label Mar 10, 2026
@twoGiants twoGiants force-pushed the issue-783-e2e-tests-with-act branch 4 times, most recently from 31a683b to 3d93b57 Compare March 10, 2026 16:40
@twoGiants
Copy link
Contributor Author

/retest

@twoGiants twoGiants force-pushed the issue-783-e2e-tests-with-act branch from 3d93b57 to 92330f9 Compare March 11, 2026 13:18
Copy link
Contributor

@gauron99 gauron99 left a comment

Choose a reason for hiding this comment

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

Cool changes! thanks a lot for the improvements to user FUNC_ env vars instead of the flags. Thanks! Got one question about builder determination and one small note about the other changes 😄 .

Copy link
Contributor

@gauron99 gauron99 left a comment

Choose a reason for hiding this comment

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

/lgtm
/hold unhold when you please

@knative-prow knative-prow bot added the do-not-merge/hold 🤖 PR should not merge because someone has issued a /hold command. label Mar 12, 2026
@knative-prow knative-prow bot added the lgtm 🤖 PR is ready to be merged. label Mar 12, 2026
Generated GitHub Actions workflows from `func config ci` previously
used CLI flags for deploy configuration and had no builder selection
logic. The deploy step now uses environment variables (FUNC_BUILDER,
FUNC_REGISTRY, FUNC_REMOTE, FUNC_VERBOSE) and selects the builder
based on the function runtime: host for Go/Python local builds,
pack for Node/TypeScript/Rust/Quarkus/Springboot, and s2i for
Python remote builds.

CIConfig loads the function upfront, encapsulating runtime and root
path, removing the need for callers to load separately. Platform
validation now rejects empty values and error messages include
supported platforms.

Adds e2e tests using nektos/act to run generated workflows against
a real cluster for each supported runtime, with a corresponding
GitHub Actions job, Makefile target, and hack/test-full.sh entry.
act is installed via hack/binaries.sh.

Fixes typos in CI workflow comments (Cluser → Cluster, runtim →
runtime). Adds missing .PHONY declarations.

Issue knative#3256

Signed-off-by: Stanislav Jakuschevskij <sjakusch@redhat.com>
@twoGiants twoGiants force-pushed the issue-783-e2e-tests-with-act branch from 266830b to 675cd38 Compare March 12, 2026 15:14
@knative-prow knative-prow bot removed the lgtm 🤖 PR is ready to be merged. label Mar 12, 2026
@gauron99
Copy link
Contributor

/lgtm
/approve

@knative-prow knative-prow bot added the lgtm 🤖 PR is ready to be merged. label Mar 12, 2026
@knative-prow
Copy link

knative-prow bot commented Mar 12, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: gauron99, twoGiants

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@knative-prow knative-prow bot added the approved 🤖 PR has been approved by an approver from all required OWNERS files. label Mar 12, 2026
@twoGiants twoGiants requested a review from gauron99 March 12, 2026 16:48
@gauron99
Copy link
Contributor

All looks good to me! feel free to unhold whenever you please. @twoGiants

@twoGiants
Copy link
Contributor Author

/unhold

@knative-prow knative-prow bot removed the do-not-merge/hold 🤖 PR should not merge because someone has issued a /hold command. label Mar 16, 2026
@knative-prow knative-prow bot merged commit 17ad5e9 into knative:main Mar 16, 2026
44 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved 🤖 PR has been approved by an approver from all required OWNERS files. kind/enhancement Feature additions or improvements to existing lgtm 🤖 PR is ready to be merged. size/XL 🤖 PR changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants