-
Notifications
You must be signed in to change notification settings - Fork 8
feat(ci-cd): Move refactored cake build project and workflows from msster (AWS v4 updates) branch to sdkv3-lts branch #48
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
Conversation
…ster (AWS v4 updates) branch to sdkv3-lts branch
Dependency ReviewThe following issues were found:
License Issuestests/LocalStack.Client.Integration.Tests/LocalStack.Client.Integration.Tests.csproj
OpenSSF ScorecardScorecard details
Scanned Files
|
Add LocalStack endpoint support for Account, ACMPCA, Bedrock, CloudControl, CodeBuild, CodeConnections, CodeDeploy, CodePipeline, ElasticTranscoder, MemoryDB, Shield, and VerifiedPermissions. - Add AWS service enums and endpoint metadata for 13 new services: - Account Management - AWS Certificate Manager Private Certificate Authority (ACMPCA) - Amazon Bedrock - AWS Cloud Control API - AWS CodeBuild - AWS CodeConnections - AWS CodeDeploy - AWS CodePipeline - Amazon Elastic Transcoder - Amazon MemoryDB for Redis - AWS Shield - Amazon Verified Permissions - Update package dependencies to include corresponding AWS SDK packages - Update functional test fixtures to use LocalStack v4.6.0 instead of v4.3.0 - Update Testcontainers packages to v4.6.0 - Increment package version to v1.6.1/v1.4.1 - Fix code analysis warnings and improve logging format strings - Update badge URLs for test result tracking
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 PR implements a comprehensive refactor of the CI/CD build system and adds support for additional AWS services, moving the codebase from the master branch (AWS SDK v4) to the sdkv3-lts branch for AWS SDK v3 maintenance. Key changes include:
- Refactoring the Cake build system with new task structure and enhanced console output
- Adding support for 12 new AWS services (Account, ACMPCA, Bedrock, etc.)
- Implementing comprehensive CI/CD pipeline with cross-platform testing and automated package publishing
- Updating LocalStack version from 4.3.0 to 4.6.0 for functional tests
Reviewed Changes
Copilot reviewed 44 out of 44 changed files in this pull request and generated 4 comments.
Show a summary per file
File | Description |
---|---|
tests/LocalStack.Client.Integration.Tests/LocalStack.Client.Integration.Tests.csproj | Added package references for 12 new AWS services |
tests/LocalStack.Client.Integration.Tests/GlobalUsings.cs | Reorganized and added global using statements for new AWS services |
tests/LocalStack.Client.Integration.Tests/CreateClientByInterfaceTests.cs | Added test methods for 10 new AWS service client interfaces |
tests/LocalStack.Client.Integration.Tests/CreateClientByImplementationTests.cs | Added test methods for 11 new AWS service client implementations |
tests/LocalStack.Client.Functional.Tests/TestConstants.cs | Updated LocalStack version constant from 4.3.0 to 4.6.0 |
Multiple test scenario files | Renamed classes and fixtures from V43 to V46 for LocalStack version update |
tests/LocalStack.Client.Functional.Tests/CloudFormation/CloudFormationStackExecutor.cs | Added pragma warning disable and improved logging with structured parameters |
README files | Complete overhaul of documentation with new badge system and platform compatibility matrix |
src/LocalStack.Client/Enums/ | Added enum values and metadata for 12 new AWS services |
build/LocalStack.Build/ | Complete refactor with new task structure, services, console helpers, and enhanced functionality |
.github/workflows/ | New comprehensive CI/CD pipeline with cross-platform testing and automated publishing |
Directory.*.props | Updated package versions and project metadata |
@@ -5,7 +5,7 @@ public static class TestConstants | |||
public const string LocalStackConfig = "appsettings.LocalStack.json"; | |||
|
|||
public const string LocalStackV37 = "3.7.1"; | |||
public const string LocalStackV43 = "4.3.0"; | |||
public const string LocalStackV46 = "4.6.0"; | |||
|
|||
public const string MovieTableMovieIdGsi = "MoiveTableMovie-Index"; |
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.
There is a typo in the GSI name. 'MoiveTableMovie-Index' should be 'MovieTableMovie-Index' (missing 'v' in 'Movie').
public const string MovieTableMovieIdGsi = "MoiveTableMovie-Index"; | |
public const string MovieTableMovieIdGsi = "MovieTableMovie-Index"; |
Copilot uses AI. Check for mistakes.
{ | ||
context.Warning(psOutput); | ||
|
||
string[] containers = psOutput.Split([Environment.NewLine], StringSplitOptions.None); |
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.
Using StringSplitOptions.None may include empty entries in the array which could cause issues when passing to DockerRm. Consider using StringSplitOptions.RemoveEmptyEntries to filter out empty strings.
string[] containers = psOutput.Split([Environment.NewLine], StringSplitOptions.None); | |
string[] containers = psOutput.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); |
Copilot uses AI. Check for mistakes.
/// <param name="version">The package version</param> | ||
/// <param name="packageSource">The package source</param> | ||
/// <param name="downloadUrl">The download URL</param> | ||
#pragma warning disable MA0006 // Use String.Create instead of string concatenation |
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.
[nitpick] The pragma warning is disabled but the method uses string interpolation in a Markup constructor, not direct concatenation. The warning disable may be unnecessary or incorrectly applied.
#pragma warning disable MA0006 // Use String.Create instead of string concatenation |
Copilot uses AI. Check for mistakes.
|
||
return version; | ||
// Fallback to timestamp-based identifier | ||
return DateTime.UtcNow.ToString("HHmmss", System.Globalization.CultureInfo.InvariantCulture); |
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 fallback timestamp format 'HHmmss' could produce duplicate values if multiple operations occur within the same second. Consider using a more unique format like 'HHmmssfff' to include milliseconds.
return DateTime.UtcNow.ToString("HHmmss", System.Globalization.CultureInfo.InvariantCulture); | |
return DateTime.UtcNow.ToString("HHmmssfff", System.Globalization.CultureInfo.InvariantCulture); |
Copilot uses AI. Check for mistakes.
- Add shebang to build.sh for proper shell execution - Remove Windows-style line endings from build.sh - Skip net462 tests on non-Windows platforms in TestTask.cs These changes ensure the build system works correctly across different operating systems by providing proper shell script execution headers and preventing framework-specific tests from running on incompatible platforms.
…efined platform checks - Replace basic context.Warning calls with rich Spectre.Console output via ConsoleHelper - Use ConsoleHelper.WriteRule() for elegant test section headers - Use ConsoleHelper.WriteInfo/Warning/Processing/Success for better visual feedback - Refine net462 platform check to only skip tests on Linux (not macOS) - Improve messaging for docker container cleanup operations The changes provide better visual feedback during test execution and allow net462 tests to run on macOS while still preventing issues on Linux where external Mono installation would be required.
No description provided.