Skip to content

Conversation

gimlichael
Copy link
Member

@gimlichael gimlichael commented May 25, 2025

This pull request introduces several updates to improve dependency management, streamline workflows, and update configurations. Key changes include upgrading dependencies, refactoring GitHub Actions workflows to use reusable workflows, and updating Docker and testing environments.

Dependency Updates:

  • Upgraded package dependencies in Directory.Packages.props, including Codebelt.Extensions.Xunit to 10.0.1, Codebelt.Extensions.YamlDotNet to 9.0.3, and Microsoft.NET.Test.Sdk to 17.14.0 among others.
  • Updated the PackageReleaseNotes.txt to reflect version 9.0.3, highlighting dependency upgrades for all supported target frameworks.

Workflow Simplification:

  • Refactored .github/workflows/pipelines.yml to use reusable workflows for build, pack, test, and nuget jobs, reducing redundancy and improving maintainability. [1] [2]

Docker and Environment Updates:

  • Updated the Docker image in .docfx/Dockerfile.docfx to use nginx:1.27.5-alpine and codebeltnet/docfx:2.78.3 with platform-specific builds.
  • Updated the Docker image in testenvironments.json for the Docker-Ubuntu environment to gimlichael/ubuntu-testrunner:mono-net8.0.409-9.0.300.

Documentation:

  • Added a changelog entry for version 9.0.3 in CHANGELOG.md, describing it as a service update focusing on package dependencies.

Summary by CodeRabbit

  • Chores
    • Updated package dependencies to the latest compatible versions.
    • Upgraded Docker images and test environment image tags for improved compatibility.
    • Updated workflow pipelines to use reusable workflows and newer operating systems.
  • Documentation
    • Added release notes for version 9.0.3, highlighting updated dependencies and supported frameworks.
    • Updated changelog with details for version 9.0.3.

@gimlichael gimlichael self-assigned this May 25, 2025
@Copilot Copilot AI review requested due to automatic review settings May 25, 2025 16:22
Copy link

coderabbitai bot commented May 25, 2025

Walkthrough

This update revises package dependencies, Docker and test environment images, and the CI pipeline. It upgrades several package versions, updates the Dockerfile and test runner image tags, adds new release notes, and refactors the CI workflow to use reusable workflows with updated OS versions and simplified job definitions.

Changes

File(s) Change Summary
.docfx/Dockerfile.docfx Upgraded nginx and docfx builder image versions; added platform flags; simplified final stage image reference.
.github/workflows/pipelines.yml Refactored to use reusable workflows for build, pack, test, and deploy; updated OS versions and job names.
Directory.Packages.props Updated package versions for Codebelt.Extensions.Xunit, YamlDotNet, Microsoft.NET.Test.Sdk, and xunit.runner.
testenvironments.json Updated Docker image tag for "Docker-Ubuntu" test environment.
.nuget/Codebelt.Extensions.Globalization/PackageReleaseNotes.txt Added release notes for version 9.0.3, documenting dependency upgrades and supported frameworks.
CHANGELOG.md Added changelog entry for version 9.0.3 noting service update for dependencies.

Sequence Diagram(s)

sequenceDiagram
    participant Developer
    participant GitHub Actions
    participant Reusable Workflows
    participant Artifact Store

    Developer->>GitHub Actions: Push code / PR
    GitHub Actions->>Reusable Workflows: Call jobs-dotnet-build (build)
    Reusable Workflows-->>GitHub Actions: Return build outputs
    GitHub Actions->>Reusable Workflows: Call jobs-dotnet-pack (pack)
    Reusable Workflows-->>Artifact Store: Upload packed artifact
    GitHub Actions->>Reusable Workflows: Call jobs-dotnet-test (test)
    Reusable Workflows-->>GitHub Actions: Test results
    GitHub Actions->>Reusable Workflows: Call jobs-nuget-push (deploy)
    Reusable Workflows-->>Artifact Store: Push package
Loading

Possibly related PRs

  • V9.0.1/package maintenance #2: Also updates .docfx/Dockerfile.docfx, specifically upgrading the nginx base image version, closely related to the Dockerfile changes in this PR.
  • V9.0.2/housekeeping #5: Refactors .github/workflows/pipelines.yml to use reusable workflows for sonarcloud, codecov, codeql, and deploy jobs, related to this PR’s pipeline modularization.

Poem

In the warren where pipelines flow,
New packages bloom and dependencies grow.
Docker’s coat is shiny and neat,
Test runners hop to a fresher beat.
With workflows reused and chores made light,
This rabbit’s code is hopping right!
🐇✨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1cd6f3a and 3f0793c.

📒 Files selected for processing (1)
  • .github/workflows/pipelines.yml (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/pipelines.yml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@Copilot Copilot AI left a 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 PR focuses on package maintenance by upgrading dependencies, simplifying workflows, and improving Docker and testing configurations. Key changes include updating dependency versions, refactoring GitHub Actions workflows to utilize reusable jobs, and revising Docker images and environments.

Reviewed Changes

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

Show a summary per file
File Description
testenvironments.json Updated Docker image version for the Docker-Ubuntu test environment
Directory.Packages.props Upgraded package versions and updated dependency configurations
CHANGELOG.md Added a changelog entry to document version 9.0.3 updates
.nuget/Codebelt.Extensions.Globalization/PackageReleaseNotes.txt Revised release notes to reflect dependency upgrades and version changes
.github/workflows/pipelines.yml Refactored workflows to use reusable workflows and updated job configurations
.docfx/Dockerfile.docfx Updated Dockerfile for DocFX with new image versions and platform specifications

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version 9.0.2
Copy link

Copilot AI May 25, 2025

Choose a reason for hiding this comment

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

There appears to be a duplicate version entry (Version 9.0.2) following the update to Version 9.0.3. Please verify whether the older release note should be removed to avoid confusion.

Copilot uses AI. Check for mistakes.

Comment on lines +11 to 13
FROM nginx:1.27.5-alpine AS final
WORKDIR /usr/share/nginx/html
COPY --from=build /build/docfx/wwwroot /usr/share/nginx/html
Copy link

Copilot AI May 25, 2025

Choose a reason for hiding this comment

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

Consider reusing the previously built base (using 'FROM base AS final') instead of re-fetching the nginx image to ensure consistency in the platform specification across stages.

Suggested change
FROM nginx:1.27.5-alpine AS final
WORKDIR /usr/share/nginx/html
COPY --from=build /build/docfx/wwwroot /usr/share/nginx/html
FROM base AS final
WORKDIR /usr/share/nginx/html
COPY --from=build /build/docfx/wwwroot /usr/share/nginx/html

Copilot uses AI. Check for mistakes.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (2)
.docfx/Dockerfile.docfx (1)

6-6: Replace ADD with COPY for directories
Using ADD for local folders can lead to unexpected behaviors (e.g., auto-extraction). Switch to COPY for clarity and performance.

Apply this diff:

- ADD [".", "docfx"]
+ COPY . docfx
🧰 Tools
🪛 Hadolint (2.12.0)

[error] 6-6: Use COPY instead of ADD for files and folders

(DL3020)

.github/workflows/pipelines.yml (1)

87-92: Update deploy job to use jobs-nuget-push workflow and simplify configuration input
The deploy job now depends on all prior jobs and invokes codebeltnet/jobs-nuget-push. Since workflow_dispatch.configuration already defaults to Release, you can simplify the expression:

configuration: ${{ inputs.configuration }}

Additionally, consider pinning the reusable workflow reference to a commit SHA or more specific tag (instead of a floating v1) to avoid unexpected breaking changes.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 38d0310 and 803d47d.

📒 Files selected for processing (6)
  • .docfx/Dockerfile.docfx (1 hunks)
  • .github/workflows/pipelines.yml (2 hunks)
  • .nuget/Codebelt.Extensions.Globalization/PackageReleaseNotes.txt (1 hunks)
  • CHANGELOG.md (1 hunks)
  • Directory.Packages.props (1 hunks)
  • testenvironments.json (1 hunks)
🧰 Additional context used
🪛 Hadolint (2.12.0)
.docfx/Dockerfile.docfx

[error] 6-6: Use COPY instead of ADD for files and folders

(DL3020)

🔇 Additional comments (6)
Directory.Packages.props (1)

6-8: Version bumps look correct
The updated versions for Codebelt.Extensions.Xunit, Codebelt.Extensions.YamlDotNet, Microsoft.NET.Test.Sdk, and xunit.runner.visualstudio align with the PR objectives and central version management.

Also applies to: 14-14

CHANGELOG.md (1)

10-12: Changelog entry is clear and concise
The header and description correctly capture the service update focus on package dependencies for version 9.0.3.

.nuget/Codebelt.Extensions.Globalization/PackageReleaseNotes.txt (1)

1-6: Package release notes formatting is consistent
The new Version 9.0.3 entry follows the existing convention and clearly documents the dependency upgrades across supported TFMs.

.github/workflows/pipelines.yml (3)

23-33: Replace build job with reusable workflow
The build job now invokes the codebeltnet/jobs-dotnet-build reusable workflow, consolidating your build logic and eliminating inline steps. Verify that the globalization.snk key file exists at the expected path and that both GCP_TOKEN and GCP_BUCKETNAME are correctly configured in repository secrets.


36-45: Replace pack job with reusable workflow
The pack job now calls the codebeltnet/jobs-dotnet-pack reusable workflow and reuses the version output from the build. This keeps packaging consistent across projects—looks good as-is.


48-59: Refactor test job to use reusable workflow and update OS matrix
The test job now leverages codebeltnet/jobs-dotnet-test and targets Ubuntu 24.04 and Windows 2022.

  • Confirm dropping other runners (e.g., macOS) is intentional for your support matrix.
  • Ensure the -p:SkipSignAssembly=true switch remains necessary and documented in downstream workflows.

Comment on lines +1 to 3
FROM --platform=$BUILDPLATFORM nginx:1.27.5-alpine AS base
RUN rm -rf /usr/share/nginx/html/*

Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Unused cleanup stage – refactor or remove
The base stage cleans /usr/share/nginx/html but is never used in the final image. To ensure the cleanup step applies, either remove the base stage entirely or derive the final stage from it.

Example change:

-FROM nginx:1.27.5-alpine AS final
+FROM base AS final

This preserves the cleanup before copying the built content.

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In .docfx/Dockerfile.docfx at lines 1 to 3, the base stage removes files from
/usr/share/nginx/html but is not used in the final image, making the cleanup
ineffective. To fix this, either remove the base stage if unused or modify the
final stage to inherit from the base stage so that the cleanup step applies
before adding the built content.

Copy link

@gimlichael gimlichael merged commit 71a0666 into main May 25, 2025
27 checks passed
@gimlichael gimlichael deleted the v9.0.3/package-maintenance branch May 25, 2025 16:48
@coderabbitai coderabbitai bot mentioned this pull request Jun 15, 2025
@coderabbitai coderabbitai bot mentioned this pull request Jul 10, 2025
@coderabbitai coderabbitai bot mentioned this pull request Aug 19, 2025
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.

1 participant