diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 0000000..3715180 --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,95 @@ +name-template: 'v$RESOLVED_VERSION' +tag-template: 'v$RESOLVED_VERSION' +commitish: main + +version-resolver: + major: + labels: + - 'breaking-change' + minor: + labels: + - 'type: feat' + patch: + labels: + - 'type: fix' + - 'type: docs' + - 'type: refactor' + - 'type: test' + - 'type: chore' + - 'type: ci' + - 'type: revert' + default: patch + +autolabeler: + - label: 'type: feat' + title: + - '/^feat(\(.+\))?(!)?:/i' + - label: 'type: fix' + title: + - '/^fix(\(.+\))?(!)?:/i' + - label: 'type: docs' + title: + - '/^docs(\(.+\))?(!)?:/i' + - label: 'type: refactor' + title: + - '/^refactor(\(.+\))?(!)?:/i' + - label: 'type: test' + title: + - '/^test(\(.+\))?(!)?:/i' + - label: 'type: chore' + title: + - '/^chore(\(.+\))?(!)?:/i' + - label: 'type: ci' + title: + - '/^ci(\(.+\))?(!)?:/i' + - label: 'type: revert' + title: + - '/^revert(\(.+\))?(!)?:/i' + - label: 'breaking-change' + title: + - '/^(feat|fix|docs|refactor|test|chore|ci|revert)(\([^)]*\))?!:/i' + +categories: + - title: '⚠️ Breaking Changes' + labels: + - 'breaking-change' + - title: '🚀 Features' + labels: + - 'type: feat' + - title: '🐛 Bug Fixes' + labels: + - 'type: fix' + - title: '📚 Documentation' + labels: + - 'type: docs' + - title: '🔄 Refactoring' + labels: + - 'type: refactor' + - title: '✅ Tests' + labels: + - 'type: test' + - title: '🔧 Maintenance' + labels: + - 'type: chore' + - 'type: ci' + - 'type: revert' + +include-labels: + - 'type: feat' + - 'type: fix' + - 'type: docs' + - 'type: refactor' + - 'type: test' + - 'type: chore' + - 'type: ci' + - 'type: revert' + - 'breaking-change' + +exclude-labels: + - 'skip-changelog' + - 'internal' + +template: | + ## Changes + + $CHANGES diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml deleted file mode 100644 index ce75009..0000000 --- a/.github/workflows/build.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: Build -on: - workflow_dispatch: - push: - branches: - - main - - beta - - release/* - tags: - - v* - paths-ignore: - - docs/** - - README.md - - mkdocs.yml - - pyproject.toml - - uv.lock -permissions: write-all -jobs: - build: - uses: LayeredCraft/devops-templates/.github/workflows/package-build.yaml@v10.2 - with: - hasTests: true - dotnet-version: | - 8.0.x - 9.0.x - 10.0.x - secrets: inherit \ No newline at end of file diff --git a/.github/workflows/pr-title-check.yaml b/.github/workflows/pr-title-check.yaml new file mode 100644 index 0000000..1dbf78e --- /dev/null +++ b/.github/workflows/pr-title-check.yaml @@ -0,0 +1,13 @@ +name: PR Title Check + +on: + pull_request: + types: [opened, edited, synchronize, reopened] + +permissions: + pull-requests: read + statuses: write + +jobs: + validate: + uses: LayeredCraft/devops-templates/.github/workflows/pr-title-check.yml@v10.2 diff --git a/.github/workflows/publish-preview.yaml b/.github/workflows/publish-preview.yaml new file mode 100644 index 0000000..1ae797f --- /dev/null +++ b/.github/workflows/publish-preview.yaml @@ -0,0 +1,40 @@ +name: Publish Preview + +on: + workflow_dispatch: + push: + branches: + - main + paths-ignore: + - 'docs/**' + - 'README.md' + - 'mkdocs.yml' + - 'pyproject.toml' + - 'uv.lock' + +permissions: + contents: write + pull-requests: write + +jobs: + build: + uses: LayeredCraft/devops-templates/.github/workflows/publish-preview.yml@v10.2 + with: + solution: LayeredCraft.Lambda.AspNetCore.HostingExtensions.slnx + dotnetVersion: | + 8.0.x + 9.0.x + 10.0.x + hasTests: true + secrets: inherit + + push: + needs: build + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + steps: + - uses: LayeredCraft/devops-templates/.github/actions/nuget-push@v10.2 + with: + nuget_user: ${{ secrets.NUGET_USER }} diff --git a/.github/workflows/publish-release.yaml b/.github/workflows/publish-release.yaml new file mode 100644 index 0000000..a491b12 --- /dev/null +++ b/.github/workflows/publish-release.yaml @@ -0,0 +1,31 @@ +name: Publish Release + +on: + release: + types: [published] + +permissions: + contents: write + +jobs: + build: + uses: LayeredCraft/devops-templates/.github/workflows/publish-release.yml@v10.2 + with: + solution: LayeredCraft.Lambda.AspNetCore.HostingExtensions.slnx + dotnetVersion: | + 8.0.x + 9.0.x + 10.0.x + hasTests: true + secrets: inherit + + push: + needs: build + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + steps: + - uses: LayeredCraft/devops-templates/.github/actions/nuget-push@v10.2 + with: + nuget_user: ${{ secrets.NUGET_USER }} diff --git a/.github/workflows/release-drafter.yaml b/.github/workflows/release-drafter.yaml new file mode 100644 index 0000000..57e9fe6 --- /dev/null +++ b/.github/workflows/release-drafter.yaml @@ -0,0 +1,20 @@ +name: Release Drafter + +on: + push: + branches: + - main + pull_request: + types: [opened, edited, synchronize, reopened, ready_for_review] + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +jobs: + draft: + uses: LayeredCraft/devops-templates/.github/workflows/release-drafter.yml@v10.2 + with: + event_name: ${{ github.event_name }} + pr_draft: ${{ github.event.pull_request.draft == true }} diff --git a/LayeredCraft.Lambda.AspNetCore.HostingExtensions.slnx b/LayeredCraft.Lambda.AspNetCore.HostingExtensions.slnx index 31b3901..241d6cd 100644 --- a/LayeredCraft.Lambda.AspNetCore.HostingExtensions.slnx +++ b/LayeredCraft.Lambda.AspNetCore.HostingExtensions.slnx @@ -24,10 +24,14 @@ + - + + + +