Skip to content

ci: move unit tests to GitHub Actions and optimize Azure Pipelines - #1246

Merged
Carter Tinney (cartertinney) merged 2 commits into
mainfrom
ct/ci
Aug 31, 2026
Merged

ci: move unit tests to GitHub Actions and optimize Azure Pipelines#1246
Carter Tinney (cartertinney) merged 2 commits into
mainfrom
ct/ci

Conversation

@cartertinney

Copy link
Copy Markdown
Member

Thank you for helping us improve the Azure IoT Python SDK!

Checklist

  • I have read the contribution guidelines.
  • Existing test coverage and every test matrix leg are preserved.
  • No public API behavior is changed.

Reference/Link to the issue solved with this PR (if any)

N/A

Description of the problem

Portable checks currently run in Azure Pipelines alongside resource-dependent and Microsoft compliance jobs. This increases ADO usage and leaves several live-resource pipelines doing avoidable checkout, dependency download, provisioning, and duplicate-trigger work.

Description of the solution

  • Move Ruff and the unchanged Python 3.10-3.14 unit-test matrix to GitHub Actions.
  • Keep CodeQL, Component Governance, package publication, and all unique E2E matrices in ADO.
  • Add Dependabot updates for SHA-pinned GitHub Actions.
  • Cache uv downloads and skip unnecessary setup/cleanup checkouts in ADO.
  • Generate resource names without installing uuid.
  • Create consumer groups with bounded concurrency and run independent DPS/IoT Hub creation concurrently.
  • Use full existing matrix concurrency, migrate canary legs from retired Ubuntu 20.04, mask secret outputs, and remove environment dumps.
  • Scope Horton triggers to main pushes and PRs targeting main to avoid duplicate source-branch runs.

Resource deletion remains synchronous so pipeline success still confirms that Azure finished deleting the resource group.

Validation

  • Parsed all ADO and GitHub workflow YAML.
  • Syntax-checked modified inline Bash blocks with bash -n.
  • Mechanically verified that pytest commands and matrix legs are unchanged, except for the approved canary runner-image migration.
  • Ran Ruff and package builds locally.

This is a draft PR to evaluate CI correctness, queue behavior, and elapsed time before marking it ready for review.

@cartertinney
Carter Tinney (cartertinney) marked this pull request as ready for review August 31, 2026 17:59
Comment thread .github/workflows/ci.yml
Comment thread vsts/python-canary.yaml

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Moves portable CI checks to GitHub Actions while reducing Azure Pipelines usage and optimizing live-resource E2E workflows.

Changes:

  • Adds SHA-pinned Ruff and Python 3.10–3.14 GitHub Actions jobs.
  • Optimizes Azure setup, caching, concurrency, secret handling, and cleanup.
  • Updates CI triggers, runners, Dependabot, and the build badge.

Reviewed changes

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

Show a summary per file
File Description
.github/workflows/ci.yml Adds lint and unit-test CI.
.github/dependabot.yml Updates GitHub Actions weekly.
README.md Uses the GitHub CI badge.
vsts/build.yaml Removes migrated checks and caches builds.
vsts/dps-e2e.yaml Optimizes DPS resource lifecycle.
vsts/horton-e2e.yaml Restricts automatic triggers.
vsts/python-canary.yaml Expands concurrency and updates runners.
vsts/python-e2e.yaml Optimizes IoT Hub E2E execution.
vsts/python-nightly.yaml Optimizes nightly provisioning and execution.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@cartertinney
Carter Tinney (cartertinney) merged commit feedb22 into main Aug 31, 2026
20 of 21 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.

3 participants