Skip to content

Commit fae8e55

Browse files
Merge pull request #31 from JasperFx/feature/ci-and-publish
CI test workflow + NuGet publish workflow + centralized 0.5.0 version
2 parents aa7f67d + b6c8e73 commit fae8e55

9 files changed

Lines changed: 115 additions & 0 deletions

File tree

.github/workflows/publish.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: publish
2+
3+
# Publishes the Bobcat NuGet packages. The version is centralized in
4+
# src/Directory.Build.props (<Version>); bump it there to cut a release.
5+
# Trigger by pushing a tag like `v0.5.0`, or run manually from the Actions tab.
6+
on:
7+
push:
8+
tags:
9+
- 'v*'
10+
workflow_dispatch:
11+
12+
jobs:
13+
publish:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Setup .NET
19+
uses: actions/setup-dotnet@v4
20+
with:
21+
dotnet-version: '10.0.x'
22+
23+
- name: Restore
24+
run: dotnet restore
25+
26+
- name: Build
27+
run: dotnet build --no-restore -c Release
28+
29+
- name: Test
30+
run: dotnet test --no-build -c Release --verbosity normal
31+
32+
- name: Pack
33+
run: dotnet pack --no-build -c Release -o ${{ github.workspace }}/artifacts
34+
35+
- name: Push to NuGet
36+
run: >
37+
dotnet nuget push "${{ github.workspace }}/artifacts/*.nupkg"
38+
--source https://api.nuget.org/v3/index.json
39+
--api-key ${{ secrets.NUGET_API_KEY }}
40+
--skip-duplicate

.github/workflows/tests.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: tests
2+
3+
# Build and run the full Bobcat test suite on every push to any branch.
4+
on:
5+
push:
6+
branches:
7+
- '**'
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
15+
- name: Setup .NET
16+
uses: actions/setup-dotnet@v4
17+
with:
18+
dotnet-version: '10.0.x'
19+
20+
- name: Restore
21+
run: dotnet restore
22+
23+
- name: Build
24+
run: dotnet build --no-restore -c Release
25+
26+
- name: Test
27+
run: dotnet test --no-build -c Release --verbosity normal

src/Bobcat.Alba/Bobcat.Alba.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<TargetFramework>net10.0</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
7+
<IsPackable>true</IsPackable>
8+
<Description>Bobcat + Alba integration — IStepContext extensions and an AlbaResource for HTTP/ASP.NET Core integration testing in specs.</Description>
79
</PropertyGroup>
810

911
<ItemGroup>

src/Bobcat.CritterStack/Bobcat.CritterStack.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<TargetFramework>net10.0</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
7+
<IsPackable>true</IsPackable>
8+
<Description>Bobcat + Critter Stack integration — combined Wolverine + Marten spec helpers (aggregate command execution, projection waits) for the canonical Critter Stack pattern.</Description>
79
</PropertyGroup>
810

911
<ItemGroup>

src/Bobcat.Generators/Bobcat.Generators.csproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@
66
<LangVersion>latest</LangVersion>
77
<Nullable>enable</Nullable>
88
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>
9+
10+
<IsPackable>true</IsPackable>
11+
<Description>Bobcat source generator — compiles .feature files into direct fixture method calls at build time (no runtime reflection). Reference as an analyzer.</Description>
12+
<DevelopmentDependency>true</DevelopmentDependency>
13+
<!-- Source generators ship the analyzer assembly only, with no lib/ output or deps. -->
14+
<IncludeBuildOutput>false</IncludeBuildOutput>
15+
<SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
916
</PropertyGroup>
1017

1118
<ItemGroup>
@@ -16,4 +23,9 @@
1623
</PackageReference>
1724
</ItemGroup>
1825

26+
<!-- Pack the generator into the analyzer path so consumers pick it up via PackageReference. -->
27+
<ItemGroup>
28+
<None Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
29+
</ItemGroup>
30+
1931
</Project>

src/Bobcat.Marten/Bobcat.Marten.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<TargetFramework>net10.0</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
7+
<IsPackable>true</IsPackable>
8+
<Description>Bobcat + Marten integration — IStepContext extensions for document and event-store work in specs.</Description>
79
</PropertyGroup>
810

911
<ItemGroup>

src/Bobcat.Wolverine/Bobcat.Wolverine.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<TargetFramework>net10.0</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
7+
<IsPackable>true</IsPackable>
8+
<Description>Bobcat + Wolverine integration — IStepContext extensions for tracked-session message dispatch in specs.</Description>
79
</PropertyGroup>
810

911
<ItemGroup>

src/Bobcat/Bobcat.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<TargetFramework>net10.0</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
7+
<IsPackable>true</IsPackable>
8+
<Description>Bobcat runtime — the spec execution engine, resources, rendering, and runner for the spec-driven integration testing framework for .NET.</Description>
79
</PropertyGroup>
810

911
<ItemGroup>

src/Directory.Build.props

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<Project>
2+
3+
<!--
4+
Shared MSBuild properties for the Bobcat source tree (src/).
5+
6+
The released NuGet version is centralized here: bump <Version> to release a new version
7+
of every Bobcat.* library together. Projects are non-packable by default; each library
8+
that ships as a NuGet opts in with <IsPackable>true</IsPackable>.
9+
-->
10+
<PropertyGroup>
11+
<Version>0.5.0</Version>
12+
13+
<Authors>Jeremy D. Miller</Authors>
14+
<Company>JasperFx Software</Company>
15+
<Product>Bobcat</Product>
16+
<PackageProjectUrl>https://github.com/JasperFx/bobcat</PackageProjectUrl>
17+
<RepositoryUrl>https://github.com/JasperFx/bobcat</RepositoryUrl>
18+
<RepositoryType>git</RepositoryType>
19+
<PackageLicenseExpression>MIT</PackageLicenseExpression>
20+
<PackageTags>testing;integration-testing;bdd;gherkin;specification;critterstack</PackageTags>
21+
22+
<!-- Released libraries opt back in individually. -->
23+
<IsPackable>false</IsPackable>
24+
</PropertyGroup>
25+
26+
</Project>

0 commit comments

Comments
 (0)