Skip to content

Add config-based mechanism to disable E2E test scenarios#2104

Merged
mazhelez merged 43 commits intomainfrom
copilot/refactor-federated-credentials-test
Feb 27, 2026
Merged

Add config-based mechanism to disable E2E test scenarios#2104
mazhelez merged 43 commits intomainfrom
copilot/refactor-federated-credentials-test

Conversation

Copy link
Contributor

Copilot AI commented Jan 29, 2026

❔What, Why & How

Adds infrastructure to disable E2E scenarios via config file rather than modifying workflow YAML. FederatedCredentials scenario is disabled pending Azure resource migration.

Config file (e2eTests/disabled-scenarios.json):

[
    {
        "scenario": "FederatedCredentials",
        "reason": "Azure resource migration work in progress"
    }
]

Workflow changes (.github/workflows/E2E.yaml Analyze job):

  • Loads config with error handling (missing file → all scenarios enabled)
  • Extracts disabled scenario names: @($config | ForEach-Object { $_.scenario })
  • Filters disabled scenarios from matrix: Where-Object { $disabledScenarios -notcontains $_ }
  • Logs filtered scenarios with reasons for visibility

Disabled scenarios are completely filtered from the matrix (no jobs created). To re-enable, remove from config array.

✅ Checklist

  • Add tests (E2E, unit tests)
  • Update RELEASENOTES.md
  • Update documentation (e.g. for new settings or scenarios)
  • Add telemetry
Original prompt

Refactor the FederatedCredentials end-to-end test scenario in microsoft/AL-Go so it reuses an existing temporary repository instead of deleting and recreating it on every run. The current approach creates a new repository called tmp-bingmaps.appsource copied from microsoft/bcsamples-bingmaps.appsource. Federated credentials no longer work with repository name-based matching, so the repository must be stable across runs.

Context:

  • Failing job URL: https://github.com/microsoft/AL-Go/actions/runs/21470716621/job/61842467415
  • Failure occurs when the test triggers the "Update AL-Go System Files" workflow in the newly created repository.
  • The test script is at e2eTests/scenarios/FederatedCredentials/runtest.ps1 and currently:
    • checks if the temp repo exists
    • deletes it if it exists
    • recreates it from template
    • then runs Update AL-Go System Files

Required changes:

  1. Modify e2eTests/scenarios/FederatedCredentials/runtest.ps1 to reuse the repo if it already exists.
    • Do not delete the repo anymore.
    • If the repo exists, reset it to match the source repo (microsoft/bcsamples-bingmaps.appsource) in a deterministic way.
    • Ensure the repo ends up with the same default branch content expected by the scenario (main).
  2. Add cleanup logic for workflow runs in the reused temp repo to prevent the run list from growing and to ensure the subsequent WaitWorkflow logic targets the correct run.
    • Before starting the scenario, delete older workflow runs (keep a small number like the last 5-10), or alternatively capture the run id of the workflow triggered and wait specifically for that.
  3. Ensure secrets and settings required for the test are still present/updated.
    • The script sets Azure_Credentials; preserve this.
    • The script passes addRepoSettings for ghTokenWorkflowSecretName; ensure this still works if repo already exists.
  4. Update any helper functions or supporting scripts if needed to support resetting repo contents and cleaning workflow runs.

Acceptance criteria:

  • The test no longer relies on deleting/recreating tmp-bingmaps.appsource.
  • The temp repo is stable across runs and compatible with federated credentials.
  • The script reliably waits for and inspects the workflow run it triggered, not an older run.
  • Add clear comments explaining why the repo is reused.

Relevant files:

  • e2eTests/scenarios/FederatedCredentials/runtest.ps1
  • e2eTests/Workflows/RunUpdateAlGoSystemFiles.ps1 (workflow trigger helper)
  • Any relevant helper module under e2eTests/e2eTestHelper.psm1 if needed.

This pull request was created from Copilot chat.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 3 commits January 29, 2026 10:51
…repository

Co-authored-by: mazhelez <43066499+mazhelez@users.noreply.github.com>
Co-authored-by: mazhelez <43066499+mazhelez@users.noreply.github.com>
…rove pagination and timestamp comparison

Co-authored-by: mazhelez <43066499+mazhelez@users.noreply.github.com>
Copilot AI changed the title [WIP] Refactor FederatedCredentials test to reuse temporary repository Refactor FederatedCredentials test to reuse temporary repository Jan 29, 2026
Copilot AI requested a review from mazhelez January 29, 2026 10:59
…federated credentials

Co-authored-by: mazhelez <43066499+mazhelez@users.noreply.github.com>
Copilot AI changed the title Refactor FederatedCredentials test to reuse temporary repository Refactor FederatedCredentials test to require pre-existing repository with federated credentials Jan 29, 2026
Copilot AI requested a review from mazhelez January 29, 2026 12:03
Copy link
Collaborator

@mazhelez mazhelez left a comment

Choose a reason for hiding this comment

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

Good work!

@copilot the following script is used in a workflow to clean up temp repositories: "Internal\Scripts\RemoveTempRepos.ps1"
Can you adjust the script or rename the repository, so that it doesn't get deleted?

…function, exclude tmp-bingmaps from cleanup

Co-authored-by: mazhelez <43066499+mazhelez@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 29, 2026

Good work!

@copilot the following script is used in a workflow to clean up temp repositories: "Internal\Scripts\RemoveTempRepos.ps1"...

Done. Updated Internal/Scripts/RemoveTempRepos.ps1 to exclude tmp-bingmaps.appsource from automatic deletion. The repository will now remain stable across cleanup operations. Commit: 2309402

Copilot AI requested a review from mazhelez January 29, 2026 12:24
…ce to avoid auto-cleanup

Co-authored-by: mazhelez <43066499+mazhelez@users.noreply.github.com>
Copilot AI changed the title Refactor FederatedCredentials test to require pre-existing repository with federated credentials Refactor FederatedCredentials test to use stable e2e-bingmaps.appsource repository Jan 29, 2026
Copilot AI requested a review from mazhelez January 29, 2026 12:29
… from polling

Co-authored-by: mazhelez <43066499+mazhelez@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 16, 2026

@copilot can you please remove the trailing whitespace in the modified files

Done. Removed trailing whitespace from runtest.ps1. Commit: 13bcc5e

@mazhelez mazhelez requested a review from aholstrup1 February 25, 2026 10:30
aholstrup1
aholstrup1 previously approved these changes Feb 25, 2026
…ally

Co-authored-by: mazhelez <43066499+mazhelez@users.noreply.github.com>
…fix broken tracking

Co-authored-by: mazhelez <43066499+mazhelez@users.noreply.github.com>
…ogic

Co-authored-by: mazhelez <43066499+mazhelez@users.noreply.github.com>
Copilot AI changed the title Refactor FederatedCredentials e2e test to use stable repository with config-based disabling Add config-based mechanism to disable E2E test scenarios Feb 26, 2026
@mazhelez mazhelez merged commit bbafe94 into main Feb 27, 2026
8 checks passed
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.

5 participants