Skip to content

Feature/runner e2e test#201

Open
Jelledb wants to merge 2 commits into
mainfrom
feature/runner-e2e-test
Open

Feature/runner e2e test#201
Jelledb wants to merge 2 commits into
mainfrom
feature/runner-e2e-test

Conversation

@Jelledb

@Jelledb Jelledb commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

@github-actions

Copy link
Copy Markdown
Contributor

Scorecard Check

Scorecard run on commit e9c847cdec0de6fcb56c904326b426ecb2663c58 relative to origin/main

📊 meshstack-hub Module Scorecard

Generated: 2026-06-10 | Modules scanned: 1 | Categories: 5

📋 Per-Module Category Summary

Score per category per building block. n/a = category does not apply to this module.

Module Overall Core Structure Integration Azure Backplane STACKIT Backplane Testing
meshstack/noop 🟢 100% 🟢 100% 🟢 100% n/a n/a 🟢 100%

All checks passing! This module meets all scorecard criteria.

Core Structure — ✅ all passing

Basic module file structure and documentation — applies to 1 modules

Module Score 📦 🔗 📋 📝 🖼️ 📌 🔒
meshstack/noop 🟢 100%

Core Structure — Summary

Emoji Criterion Coverage Status
📦 buildingblock/ directory exists 1/1 🟢 100%
🔗 meshstack_integration.tf present 1/1 🟢 100%
📋 buildingblock/APP_TEAM_README.md present (no-integration fallback) n/a
📝 buildingblock/README.md with YAML front-matter 1/1 🟢 100%
🖼️ buildingblock/logo.png included 1/1 🟢 100%
📌 buildingblock/versions.tf present 1/1 🟢 100%
🔒 Provider versions use minimum constraint (>=) 1/1 🟢 100%
Integration — ✅ all passing

meshstack_integration.tf conventions — applies to 1 modules

Module Score 🏷️ 🏢 📤 🔌 📎 🔀 📋 🏷️ 📖 📝 📊 🚫
meshstack/noop 🟢 100%

Integration — Summary

Emoji Criterion Coverage Status
🏷️ variable "hub" in integration 1/1 🟢 100%
🏢 variable "meshstack" in integration 1/1 🟢 100%
📤 building_block_definition output exposed 1/1 🟢 100%
🔌 meshcloud/meshstack in required_providers 1/1 🟢 100%
📎 backplane source uses var.hub.git_ref 1/1 🟢 100%
🔀 ref_name uses var.hub.git_ref 1/1 🟢 100%
📋 version_spec.draft uses var.hub.bbd_draft 1/1 🟢 100%
🏷️ BBD metadata.tags forwards var.meshstack.tags 1/1 🟢 100%
📖 BBD readme field present 1/1 🟢 100%
📝 BBD readme starts with plain-text description (no heading) 1/1 🟢 100%
📊 BBD readme has shared responsibility table (✅/❌) 1/1 🟢 100%
🚫 No documentation_md output in backplane 1/1 🟢 100%
Azure Backplane — not applicable

Azure UAMI-based automation principal conventions — applies to 0 modules

No applicable modules.

STACKIT Backplane — not applicable

STACKIT WIF-based automation principal conventions — applies to 0 modules

No applicable modules.

Testing — ✅ all passing

End-to-end test coverage — applies to 1 modules

Module Score ⚙️ 🧪
meshstack/noop 🟢 100%

Testing — Summary

Emoji Criterion Coverage Status
⚙️ backplane/ directory (optional tier) 1/1 🟢 100%
🧪 e2e/ test directory exists 1/1 🟢 100%
e2e/ contains .tftest.hcl files 1/1 🟢 100%

@jannymeshi

Copy link
Copy Markdown
Contributor

👋 Hi @Jelledb! This PR has been linked to the Feature Shipping Tracker: BuildingBlockRunner API (meshBuildingBlockRunner meshObject) (meshcloud/janny#1025) under DoD item 6 (Reference Examples Updated).

The noop backplane for Google Cloud Run and the e2e runner test you are adding here directly address the open meshstack-hub example we have been tracking for the self-hosted runner workflow. 🎉 Merging this will help close out that DoD item.

@aws-amplify-eu-central-1

Copy link
Copy Markdown

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-201.d1o16zfeoh2slu.amplifyapp.com

Copilot AI 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.

Pull request overview

This PR extends the meshstack/noop building block to support dispatching runs to a dedicated meshStack “building block runner” and adds an E2E test fixture that provisions a Cloud Run–hosted runner backplane and executes the noop building block against it.

Changes:

  • Add optional runner_ref wiring to the noop building block definition (version_spec.runner_ref).
  • Introduce a new GCP Cloud Run “backplane” module that provisions secrets, an API key, and registers a meshStack runner.
  • Add a new E2E runner test module + tftest.hcl run that provisions the backplane and asserts noop run outputs.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
modules/meshstack/noop/meshstack_integration.tf Adds optional runner_ref variable and forwards it into the BBD version spec.
modules/meshstack/noop/e2e/tests/building_block_noop_runner_hub.tftest.hcl Adds a new terraform test run to validate noop execution via a custom runner module.
modules/meshstack/noop/e2e/runner/variables.tf Defines inputs for the runner E2E module (test context, GCP, meshStack endpoint).
modules/meshstack/noop/e2e/runner/terraform.tf Declares provider requirements for the runner E2E module.
modules/meshstack/noop/e2e/runner/provider.tf Configures providers for the runner E2E module (currently only Google).
modules/meshstack/noop/e2e/runner/main.tf Provisions the backplane + noop module and triggers a building block run for assertions.
modules/meshstack/noop/backplane/versions.tf Introduces Terraform/provider version constraints for the backplane module.
modules/meshstack/noop/backplane/variables.tf Defines backplane inputs (workspace, endpoint, runner naming, GCP settings).
modules/meshstack/noop/backplane/runner-config.yml Runner config template rendered into Secret Manager for Cloud Run consumption.
modules/meshstack/noop/backplane/README.md Documents the new Cloud Run runner backplane module and its outputs.
modules/meshstack/noop/backplane/provider.tf Configures Google + meshStack providers for the backplane module.
modules/meshstack/noop/backplane/outputs.tf Exposes runner_ref and Cloud Run service URL outputs.
modules/meshstack/noop/backplane/main.tf Provisions TLS keypair, meshStack API key, secrets, IAM bindings, Cloud Run service, and runner registration.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"MANAGED_BUILDINGBLOCKRUN_LIST",
"MANAGED_BUILDINGBLOCKRUN_SAVE"
]
expires_at = "2026-08-31" # TODO: this should be a variable? generated somehow
Comment on lines +215 to +220
/**
provider "meshstack" {
endpoint = "https://federation.dev.meshcloud.io"
apikey = "761ca118-5801-424b-b839-1ea3b8866f57"
apisecret = "nyZG2oduo58aUWzvFtDYksuVGrZV25xK"
**/
Comment on lines +19 to +23
| Mount path | Content |
|------------------------------------|--------------------------------------------------------------------------------------------------------------------|
| `/app/runner-config.yml` | Rendered from `runner-config.yml` with `RUNNER_UUID`, `RUNNER_API_URL`, and `RUNNER_API_KEY_CLIENT_ID` substituted |
| `/app/runner-private.pem` | RSA 4096 private key (PEM) |
| `$MESHSTACK_CLIENT_SECRET` env var | meshStack API client secret |
## Prerequisites

- The `cloudrun.googleapis.com` and `secretmanager.googleapis.com` APIs must be enabled in `gcp_project_id`.
- The service account identified by `gcp_cloud_run_service_account_email` must exist before applying. The backplane grants it `roles/secretmanager.secretAccessor` on the created secrets.
Comment on lines +1 to +4
provider "google" {
project = var.gcp_project_id
region = var.gcp_region
}
@@ -0,0 +1,17 @@
terraform {
required_version = ">= 1.0"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants