Skip to content

Commit

Permalink
Merge pull request #85 from escendit/84-refactor-ci
Browse files Browse the repository at this point in the history
CI refactor
  • Loading branch information
snovak7 authored Jun 20, 2024
2 parents d747e80 + edba55a commit 98935f0
Show file tree
Hide file tree
Showing 3 changed files with 134 additions and 6 deletions.
58 changes: 58 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name-template: "v$RESOLVED_VERSION"
tag-template: "v$RESOLVED_VERSION"
change-template: "- $TITLE by @$AUTHOR (#$NUMBER)"
no-changes-template: "- No changes"

prerelease: true
prerelease-identifier: rc

categories:
- title: "📚 Documentation"
labels:
- "documentation"
- title: "🚀 New Features"
labels:
- "enhancement"
- title: "🐛 Bug Fixes"
labels:
- "bug"
- title: "🧰 Maintenance"
labels:
- "maintenance"
- title: "🚨 Security Updates"
labels:
- "security"
- title: "🔄 Dependency Updates"
collapse-after: 3
labels:
- "dependencies"

version-resolver:
major:
labels:
- "major"
minor:
labels:
- "minor"
patch:
labels:
- "patch"
default: patch
template: |
$CHANGES
## 👨🏼‍💻 Contributors
$CONTRIBUTORS
autolabeler:
- label: "github_actions"
files:
- ".github/**/*"
- label: "documentation"
files:
- "docs/**/*"
- label: "maintenance"
files:
- ".github/**/*"
- ".devcontainer/**/*"
- "test/**/*"
43 changes: 37 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,48 +1,79 @@
name: build

on:
push:
pull_request:
types: [opened, synchronize, reopened]
types:
- opened
- synchronize
- reopened
push:
branches:
- main
workflow_dispatch:

env:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
DOTNET_NOLOGO: true

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: '0'

- name: Start RabbitMQ
uses: namoshek/rabbitmq-github-action@v1
with:
version: '3.12'
ports: '5672:5672 5552:5552'
plugins: rabbitmq_stream

- name: Setup .NET Core SDK 7, 8
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
7.0.x
8.0.x
- name: Restore .NET Packages
run: dotnet restore

- name: Build .NET Solution
run: dotnet build --configuration Release --no-restore

- name: Test .NET Solution
run: dotnet test --configuration Release --no-build --filter="Category=UnitTest|Category=IntegrationTest" --logger "trx;LogFilePrefix=test-results"

- uses: actions/upload-artifact@v4
if: success() || failure()
with:
name: test-results
path: "**/test-results*.trx"

- name: Pack .NET Solution
run: dotnet pack --configuration Release --no-build --output pack/
if: ${{ github.event_name != 'pull_request' && github.ref_name == 'main' }}
if: ${{ github.event_name == 'release' && github.ref_type == 'tag' || github.event.release.tag_name }}

- name: Publish .NET Solution to GitHub Packages
continue-on-error: true
run: dotnet nuget push pack/*.nupkg --api-key ${{ secrets.GITHUB_TOKEN }} --source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json"
if: ${{ github.event_name != 'pull_request' && github.ref_name == 'main' }}
if: ${{ github.event_name == 'release' && github.ref_type == 'tag' || github.event.release.tag_name }}

- name: Store .NET Package
uses: actions/upload-artifact@v4
with:
name: nuget
if-no-files-found: error
retention-days: 7
path: pack/*.nupkg
if: ${{ github.event_name == 'release' && github.ref_type == 'tag' || github.event.release.tag_name }}

- name: Publish .NET Solution to NuGet.org
continue-on-error: true
env:
apikey: ${{ secrets.NUGET_ORG_KEY }}
if: ${{ env.apikey != '' && github.event_name != 'pull_request' && github.ref_name == 'main' }}
run: dotnet nuget push pack/*.nupkg --api-key ${{ secrets.NUGET_ORG_KEY }} --source nuget
continue-on-error: true
if: ${{ env.apikey != '' && github.event_name == 'release' && github.ref_type == 'tag' || github.event.release.tag_name }}

39 changes: 39 additions & 0 deletions .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Release Drafter

on:
push:
branches:
- main
pull_request_target:
types:
- edited
- opened
- reopened
- synchronize
workflow_dispatch:
inputs:
release-type:
type: choice
default: prerelease
description: Release Type
options:
- release
- prerelease

concurrency:
group: ${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.number) || github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref_type != 'tag' }}

jobs:
update_release_draft:
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: "Draft Release"
uses: release-drafter/release-drafter@v6.0.0
with:
prerelease: ${{ github.event.inputs.release-type != 'release' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 comments on commit 98935f0

Please sign in to comment.