Skip to content

feat: add release-tests workflow for sequential pre-release validation#203

Open
EMaher wants to merge 25 commits into
mainfrom
emaher-feat-release-test-workflow
Open

feat: add release-tests workflow for sequential pre-release validation#203
EMaher wants to merge 25 commits into
mainfrom
emaher-feat-release-test-workflow

Conversation

@EMaher

@EMaher EMaher commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a Release Tests workflow (release-tests.yml) that runs all test suites sequentially before a release, with fail-fast behavior. Also runs monthly on a cron schedule.

Execution Order

  1. CI — lint + unit tests + build-package integration test (via ci.yml)
  2. All-Types Integration — full extract→publish round-trip (via integration-test.yml)
  3. Redact Secrets Integration — secret redaction validation (via integration-redact-secrets.yml)

Each step requires the previous to pass. If any stage fails, subsequent stages are skipped.

Changes

  • ci.yml: Added workflow_call trigger so it can be reused by the orchestrator
  • release-tests.yml: New orchestrator workflow (manual dispatch + monthly cron) that chains all tests in order
  • integration-test.yml: Removed secrets: contract from workflow_call, added "Validate Required Secrets" step, made APIM_PUBLISHER_EMAIL optional with contoso.com fallback
  • integration-redact-secrets.yml: Same simplifications — removed secrets contract, added validation step, simplified inputs
  • SKILL.md: Updated prerequisites documentation for the new workflow architecture

Copilot AI and others added 11 commits June 29, 2026 21:13
Add Write-Host section headers and Write-Verbose breadcrumbs across all
redact-secrets integration phases (deploy, extract, validate, teardown)
and the orchestrator for easier test debugging.

Fix Set-ScriptLogPreferences in ScriptRuntime.psm1 to set the caller's
VerbosePreference/DebugPreference via $PSCmdlet.SessionState. The previous
Set-Variable -Scope 1 from a module function only affected the module's
scope chain, so Write-Verbose output was silently suppressed.

Wire LogLevel/Set-ScriptLogPreferences into phase 4 teardown and the
orchestrator so their verbose output is honored, and broaden the
integration-test .gitignore patterns to cover all integration subdirs.
@EMaher EMaher changed the base branch from main to copilot/fix-hardcoded-secrets-redaction July 1, 2026 03:53
EMaher and others added 7 commits June 30, 2026 20:54
Adds three workflows:
- test-unit.yml: reusable workflow for unit tests
- test-build-package.yml: reusable workflow for build-package integration test
- release-tests.yml: orchestrator that runs all tests in order (unit → build-package → all-types) with fail-fast

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…flows

Add workflow_call trigger to ci.yml so release-tests.yml can call it
directly. Remove test-unit.yml and test-build-package.yml since ci.yml
already covers both unit and build-package tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Call integration-redact-secrets.yml as the third sequential step
(after all-types integration), using the same SKU and region inputs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Inputs already have defaults and log_level uses choice type, so
validation/resolution is redundant. Use inputs directly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…orkflow

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@EMaher EMaher requested a review from Copilot July 1, 2026 03:57
@EMaher EMaher requested a review from petehauge July 1, 2026 03:58
@EMaher EMaher assigned EMaher and unassigned EMaher Jul 1, 2026

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

Adds a new GitHub Actions orchestrator workflow intended to run the repo’s test suites sequentially as a pre-release gate, by reusing existing CI and integration workflows via workflow_call.

Changes:

  • Added a new manual Release Tests workflow that chains CI → all-resource-types integration → redact-secrets integration.
  • Updated ci.yml to support being invoked as a reusable workflow via workflow_call.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
.github/workflows/release-tests.yml New orchestrator workflow that runs existing workflows sequentially before release.
.github/workflows/ci.yml Enables CI workflow reuse by adding a workflow_call trigger.

Comment thread .github/workflows/release-tests.yml
Comment thread .github/workflows/release-tests.yml
Comment thread .github/workflows/release-tests.yml Outdated
Comment thread .github/workflows/release-tests.yml Outdated
@EMaher EMaher marked this pull request as ready for review July 1, 2026 04:03
Copilot finished work on behalf of EMaher July 1, 2026 04:08
@EMaher EMaher requested a review from Copilot July 1, 2026 04:10
petehauge
petehauge previously approved these changes Jul 1, 2026

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

Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.

Comment thread .github/workflows/release-tests.yml
Comment thread .github/workflows/release-tests.yml
Comment thread .github/workflows/release-tests.yml Outdated
Comment thread .github/workflows/release-tests.yml Outdated
Comment thread .github/workflows/release-tests.yml Outdated
@EMaher EMaher changed the base branch from copilot/fix-hardcoded-secrets-redaction to main July 1, 2026 16:34
@EMaher EMaher dismissed petehauge’s stale review July 1, 2026 16:34

The base branch was changed.

EMaher and others added 4 commits July 1, 2026 10:08
…ecrets

Add cron schedule (1st of every month at 9:00 UTC) to release-tests.yml
with fallback defaults for inputs. Document repo-level secret requirement
in SKILL.md since the orchestrator reads secrets from repo scope.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…on step

Called workflows now access secrets via their environment declaration
instead of requiring the caller to pass them. Each called workflow
includes a 'Validate Required Secrets' step that fails fast with a
clear error if any secret is missing from the environment.

This eliminates the need for repo-level secret duplication.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…est-workflow

# Conflicts:
#	.github/skills/integration-test-prerequisites/SKILL.md
#	.github/workflows/integration-redact-secrets.yml

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

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

Comment thread .github/workflows/release-tests.yml Outdated
Comment thread .github/workflows/release-tests.yml Outdated
Copilot finished work on behalf of EMaher July 1, 2026 18:17
@EMaher EMaher force-pushed the emaher-feat-release-test-workflow branch from 4f56e13 to a70cc67 Compare July 1, 2026 18:31
EMaher and others added 3 commits July 1, 2026 11:34
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…dation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

4 participants