Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
version: 2
updates:
# .NET dependencies
- package-ecosystem: "nuget"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
open-pull-requests-limit: 10
reviewers:
- "localstack-dotnet/maintainers"
assignees:
- "localstack-dotnet/maintainers"
commit-message:
prefix: "deps"
include: "scope"
groups:
# Group AWS SDK updates together
aws-sdk:
patterns:
- "AWSSDK.*"
- "AWS.*"
# Group Microsoft packages together
microsoft:
patterns:
- "Microsoft.*"
- "System.*"
# Group testing packages together
testing:
patterns:
- "xunit*"
- "*Test*"
- "coverlet*"
- "FluentAssertions*"
# Group build and tooling packages
build-tools:
patterns:
- "Cake.*"
- "GitVersion*"
- "Nuke.*"
ignore:
# Ignore patch updates for stable dependencies
- dependency-name: "Microsoft.Extensions.*"
update-types: ["version-update:semver-patch"]

# GitHub Actions dependencies
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
open-pull-requests-limit: 5
reviewers:
- "localstack-dotnet/maintainers"
commit-message:
prefix: "ci"
include: "scope"
55 changes: 0 additions & 55 deletions .github/workflows/build-macos.yml

This file was deleted.

55 changes: 0 additions & 55 deletions .github/workflows/build-ubuntu.yml

This file was deleted.

49 changes: 0 additions & 49 deletions .github/workflows/build-windows.yml

This file was deleted.

101 changes: 101 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: "CI/CD Pipeline"

on:
push:
paths-ignore:
- "**.md"
- LICENSE
branches:
- "master"
- "feature/v2-preview1"
- "feature/ci-cd-modernization"
pull_request:
paths-ignore:
- "**.md"
- LICENSE
branches:
- master
- "feature/v2-preview1"

env:
DOTNET_CLI_TELEMETRY_OPTOUT: true
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
DOTNET_NOLOGO: true

jobs:
build-and-test:
name: "Build & Test (${{ matrix.name }})"
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
include:
# Windows: All frameworks including .NET Framework
- os: windows-latest
name: "Windows"
script: ".\build.ps1"
frameworks: "net8.0,net9.0,netstandard2.0,net472"

# Linux: .NET Core + Mono for Framework testing
- os: ubuntu-latest
name: "Linux"
script: "./build.sh"
frameworks: "net8.0,net9.0,netstandard2.0"

# macOS: .NET Core frameworks (most common usage)
- os: macos-latest
name: "macOS"
script: "./build.sh"
frameworks: "net8.0,net9.0,netstandard2.0"

steps:
- name: "Checkout"
uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history for better caching

- name: "Setup .NET SDK"
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
8.0.x
9.0.x

- name: "Make build script executable"
if: runner.os != 'Windows'
run: chmod +x ./build.sh

- name: "Cache NuGet packages"
uses: actions/cache@v4
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json', '**/*.csproj', '**/Directory.Packages.props') }}
restore-keys: |
${{ runner.os }}-nuget-

- name: "Build"
run: ${{ matrix.script }} --target build

- name: "Run Tests"
run: ${{ matrix.script }} --target tests --skipFunctionalTest false --exclusive

- name: "Publish Test Results"
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: 'Test Results (${{ matrix.name }})'
path: '**/*.trx'
reporter: 'dotnet-trx'
fail-on-error: true
max-annotations: 50

- name: "Upload Test Artifacts"
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-results-${{ matrix.name }}
path: |
**/*.trx
**/TestResults/**/*
retention-days: 7
Loading
Loading