Conversation
@microsoft-github-policy-service agree [company="microsoft"] |
44faaca to
ec09cba
Compare
|
@microsoft-github-policy-service agree |
2523a23 to
0ebed45
Compare
d73bb8e to
82fb7b9
Compare
fe5a82e to
78f787f
Compare
f22f8ef to
d94a2d6
Compare
- Add GitHub Actions workflow using official devcontainers/ci@v0.3 action - Add Azure DevOps pipeline with custom templates for macOS compatibility - Configure pytest with coverage reporting and JUnit XML output - Handle workspace permission issues using /tmp with sudo - Support CPU, GPU, and notebooks project configurations - Add coverage merging and test result publishing for both platforms - Skip pre-commit hook installation in CI when .git not available - Add sync-to-azdo workflow for pipeline synchronization - Update documentation with CI/CD setup instructions GitHub Actions uses the official action which works well on Linux. Azure DevOps uses custom templates to handle macOS-specific Docker issues (path translation and working directory mount namespace errors).
672b9c6 to
164e6b9
Compare
a279838 to
5f6316e
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 15 out of 16 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| } | ||
| }, | ||
| } | ||
| } | ||
| }, | ||
| } |
There was a problem hiding this comment.
is this your vscode's setting? it'd be good to keep diff minimal as this PR is quite large and format change may not be worth including?
There was a problem hiding this comment.
Reverted here as well — trailing commas restored to match the original style.
| "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/repo,type=bind", | ||
| "workspaceFolder": "/workspaces/repo", | ||
| "remoteUser": "devuser", | ||
| "postCreateCommand": "cd /workspaces/repo && pre-commit install --overwrite || echo 'pre-commit installation failed; continuing without pre-commit hooks'", |
There was a problem hiding this comment.
is there any benefit of still going ahead when pre-commit fails? I'd rather it fail there as something would be wrong in that case
There was a problem hiding this comment.
Agreed — removed the || echo fallback so pre-commit failures are surfaced properly instead of being silently swallowed.
| # but could be adapated to other OSs. | ||
|
|
||
| # Azure DevOps CI Pipeline (Self-Hosted Agent) | ||
| # |
There was a problem hiding this comment.
this 10GB part was the reason why we needed two different yamls. Could you check if it's ok to delete this part? If we still have this restriction, we likely need some cleanup method we had for self-hosted version specifically
There was a problem hiding this comment.
Good catch — restored the 10GB context comment. This is the key reason the self-hosted pipeline exists, so it's important to keep that documented.
| - name: Checkout code | ||
| uses: actions/checkout@v6 | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 |
There was a problem hiding this comment.
Fixed — upgraded action versions to match main branch: checkout@v6, setup-python@v6, upload-artifact@v7. The downgrades were unintentional.
| filename: 'coverage/**/*.xml' | ||
|
|
||
| - name: Add code coverage summary markdown to github step summary | ||
| - name: Add code coverage summary to job summary |
There was a problem hiding this comment.
Reverted the step name back to the original: "Add code coverage summary markdown to github step summary".
| @@ -13,44 +13,109 @@ permissions: | |||
| contents: read | |||
There was a problem hiding this comment.
I wonder if it's really worth splitting into several jobs instead of having having them as multiple steps based on job complextity we have. One thing I noticed is this does repo clone 4 times as it used to be just one for example and that's one of downsides of going with this structure
There was a problem hiding this comment.
Agreed — consolidated everything back into a single build job to avoid multiple repo clones. Lint runs first as steps, followed by sequential devcontainer tests (cpu, gpu, notebooks), then publish results. Keeps the structure simple while using the new devcontainer-based testing approach.
There was a problem hiding this comment.
Thanks. This simple structure looks better. Should we follow the same approach on AzDO side and remove templates and revert back to the original approach while updating test step only to keep the update simple?
fujikosu
left a comment
There was a problem hiding this comment.
Thanks for your PR! I left several comments so please check them
- Remove .github/agents/ .github/prompts/ and speckit entries from .gitignore - Restore PYTHONPATH in .env.example - Remove containerEnv (PYTHONPATH via .env auto-loads) - Remove redundant remoteUser (set by Dockerfile USER) - Remove pre-commit failure suppression (|| echo) - Restore trailing commas in JSONC files Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ce25229 to
f0d0c2c
Compare
|
@fujikosu Thank you for the thorough review! I've addressed all the comments — really appreciate you taking the time to go through everything in detail. The feedback helped improve the PR significantly. |
| name: pytest | ||
| path: | | ||
| **/test-results-*.xml | ||
| path: 'test-results-*.xml' |
| output: both | ||
| format: markdown | ||
| filename: coverage.xml | ||
| filename: 'coverage-*.xml' |
There was a problem hiding this comment.
what's this filename update for?
| test-results-*.xml | ||
| coverage-*.xml |
There was a problem hiding this comment.
what are these path update for?
fujikosu
left a comment
There was a problem hiding this comment.
thanks for the update! I added comments to your update
This pull request introduces a major refactor and modernization of the CI pipeline infrastructure for both Azure DevOps and GitHub Actions. The main improvements are the switch to modular, template-driven pipeline definitions, enhanced support for devcontainer-based testing, and improved code coverage reporting. The changes streamline CI setup, make it easier to add new projects, and improve compatibility across platforms (Linux and macOS). Documentation and configuration files have also been updated for clarity and consistency.
Azure DevOps Pipeline Modernization
.azuredevops/ado-ci-pipeline-ms-hosted.ymland.azuredevops/ado-ci-pipeline-self-hosted.ymlare refactored to use a two-stage pipeline (Lint and Test), with jobs and steps defined via new templates for devcontainer testing and coverage publishing. This replaces legacy scripts and direct task definitions, making the pipeline more maintainable and extensible. [1] [2] [3]Template-Driven CI Architecture
.azuredevops/templates/, includingtest-devcontainer-job.ymlfor per-project devcontainer testing,run-devcontainer.ymlfor platform-aware container execution,setup-devcontainer.ymlfor environment setup,publish-test-results.ymlfor publishing test results and coverage, andmerge-coverage.ymlfor merging and publishing code coverage reports. [1] [2] [3] [4] [5]GitHub Actions Pipeline Improvements
.github/workflows/ci.yamlis reworked to use matrix jobs for devcontainer-based testing, artifact upload for results and coverage, and a dedicated lint job. A new job aggregates and publishes combined test results and coverage reports, improving visibility and maintainability. [1] [2]Documentation and Configuration Updates
ci-tests.sh) are removed fromREADME.mdand.env.exampleis updated for clarity, reflecting the new devcontainer and pipeline workflow. [1] [2] [3]Platform Compatibility and Usability Enhancements
Does this introduce a breaking change?
Author pre-publish checklist
Pull Request Type
What kind of change does this Pull Request introduce?