-
Notifications
You must be signed in to change notification settings - Fork 2
Automation #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Automation #1
Conversation
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request introduces comprehensive CI/CD automation for the Blake project, including automated versioning, package publishing, and release management. The changes enable automatic generation of NuGet packages with proper metadata and streamlined release workflows.
Key changes:
- Added CI/CD workflows for automated versioning based on PR labels and NuGet package publishing
- Enhanced package metadata across all projects with icons, license files, and improved dependency versioning
- Implemented repository automation for PR labeling and release note generation
Reviewed Changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/ci.yml |
Main CI workflow for version generation and package publishing |
.github/workflows/reusable-publish.yml |
Reusable workflow for building and publishing NuGet packages |
.github/workflows/pr-labels.yml |
Automated PR labeling workflow |
.github/release.yml |
Release notes configuration |
.github/pull_request_template.md |
PR template with labeling guidance |
.github/labeler.yml |
Labeler configuration for content-based labels |
src/Blake.Types/Blake.Types.csproj |
Added package icon and extra whitespace |
src/Blake.MarkdownParser/Blake.MarkdownParser.csproj |
Added package metadata including icon, license, and README |
src/Blake.CLI/Blake.CLI.csproj |
Added package icon and updated dependency versioning |
src/Blake.BuildTools/Blake.BuildTools.csproj |
Added package icon and updated dependency versioning |
Comments suppressed due to low confidence (1)
| path: src/Blake.CLI/Blake.CLI.csproj | ||
| steps: | ||
| - name: Publish | ||
| uses: ./.github/workflows/reusable-publish.yml |
Copilot
AI
Jul 25, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The workflow is attempting to call a reusable workflow using a local path, but this syntax is incorrect. Reusable workflows should be called using the 'uses' keyword with the repository and workflow path format, like 'uses: ./.github/workflows/reusable-publish.yml@main' or by moving this to a separate job that calls the reusable workflow properly.
| uses: ./.github/workflows/reusable-publish.yml | |
| uses: ./.github/workflows/reusable-publish.yml@main |
|
Note that labelling action fails because repo is private, so action can't access the repo. Will leave this until making repo public. |
- Added logging in Build-LocalPackages.ps1 to indicate which project is being packed and ensured each project is processed individually with the correct version and output path. - Refactored SiteGenerator.cs to improve markdown file handling by moving the pipeline instantiation inside the loop for each markdown page, ensuring statelessness and deterministic behavior. Added comments for clarity.
This pull request introduces significant improvements to the CI/CD pipeline, package metadata, and repository automation. Key changes include the addition of workflows for automated labeling, versioning, and publishing, enhancements to package metadata for NuGet compatibility, and updates to the
.githubconfiguration files for better release management.CI/CD Pipeline Enhancements:
ci.ymlworkflow to automate version generation based on pull request labels, validate label configurations, and publish packages to NuGet. It includes logic to handlepreviewandreleaselabels for pre-release and stable versions (.github/workflows/ci.yml).reusable-publish.yml) for building and publishing .NET packages, enabling consistent package publishing across projects (.github/workflows/reusable-publish.yml).Repository Automation:
pr-labels.ymlworkflow to automatically add apreviewlabel to new pull requests and apply content-based labels usinglabeler.yml(.github/workflows/pr-labels.yml).labeler.ymlto define granular labels for different project areas and dependency updates (.github/labeler.yml).Release Management:
release.ymlfile to define changelog categories and exclude specific labels/authors from release notes, improving release automation and clarity (.github/release.yml)..github/pull_request_template.md).Package Metadata Improvements:
.csprojfiles across projects to includePackageIcon, ensuring NuGet packages display a custom icon. The icon file is packaged with the project (src/Blake.BuildTools/Blake.BuildTools.csproj,src/Blake.CLI/Blake.CLI.csproj,src/Blake.MarkdownParser/Blake.MarkdownParser.csproj,src/Blake.Types/Blake.Types.csproj). [1] [2] [3] [4]*-*) for better dependency management in release builds (src/Blake.BuildTools/Blake.BuildTools.csproj,src/Blake.CLI/Blake.CLI.csproj). [1] [2]