committed by
GitHub
9 changed files with 138 additions and 34 deletions
@ -0,0 +1,100 @@ |
|||
name: Build |
|||
|
|||
on: |
|||
push: |
|||
branches: [ main ] |
|||
pull_request: |
|||
types: [opened, synchronize, reopened, closed] |
|||
branches: [ main ] |
|||
|
|||
env: |
|||
configuration: Release |
|||
productNamespacePrefix: "XamlNameReferenceGenerator" |
|||
|
|||
jobs: |
|||
build: |
|||
runs-on: windows-latest |
|||
outputs: |
|||
nbgv: ${{ steps.nbgv.outputs.SemVer2 }} |
|||
steps: |
|||
- name: Checkout |
|||
uses: actions/checkout@v2 |
|||
with: |
|||
fetch-depth: 0 |
|||
submodules: 'recursive' |
|||
|
|||
- name: Install .NET Core |
|||
uses: actions/setup-dotnet@v1 |
|||
with: |
|||
dotnet-version: 5.0.100-rc.2.20479.15 |
|||
|
|||
- name: NBGV |
|||
id: nbgv |
|||
uses: dotnet/nbgv@master |
|||
with: |
|||
setAllVars: true |
|||
|
|||
- name: NuGet Restore |
|||
run: dotnet restore |
|||
working-directory: src |
|||
|
|||
- name: Add MSBuild to PATH |
|||
uses: microsoft/setup-msbuild@v1 |
|||
|
|||
- name: Build |
|||
run: dotnet build --configuration ${{ env.configuration }} |
|||
working-directory: src |
|||
|
|||
- name: Run Unit Tests and Generate Coverage |
|||
uses: glennawatson/coverlet-msbuild@v1 |
|||
with: |
|||
project-files: 'src/**/*.Tests.csproj' |
|||
no-build: true |
|||
exclude-filter: '[${{env.productNamespacePrefix}}.*.Tests.*]*' |
|||
include-filter: '[${{env.productNamespacePrefix}}*]*' |
|||
output-format: cobertura |
|||
output: '../../artifacts/' |
|||
configuration: ${{ env.configuration }} |
|||
working-directory: src |
|||
|
|||
- name: Create NuGet Artifacts |
|||
uses: actions/upload-artifact@master |
|||
with: |
|||
name: nuget |
|||
path: '**/*.nupkg' |
|||
|
|||
release: |
|||
runs-on: ubuntu-latest |
|||
needs: build |
|||
if: contains(github.event.pull_request.labels.*.name, 'release') && github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == true |
|||
steps: |
|||
- name: Checkout |
|||
uses: actions/checkout@v2 |
|||
with: |
|||
fetch-depth: 0 |
|||
|
|||
- name: Download NuGet Packages |
|||
uses: actions/download-artifact@v2 |
|||
with: |
|||
name: nuget |
|||
|
|||
- name: Changelog |
|||
uses: glennawatson/ChangeLog@v1 |
|||
id: changelog |
|||
|
|||
- name: Create Release |
|||
uses: actions/create-release@v1 |
|||
env: |
|||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token |
|||
with: |
|||
tag_name: ${{ needs.build.outputs.nbgv }} |
|||
release_name: ${{ needs.build.outputs.nbgv }} |
|||
body: | |
|||
${{ steps.changelog.outputs.commitLog }} |
|||
|
|||
- name: NuGet Push |
|||
env: |
|||
NUGET_AUTH_TOKEN: ${{ secrets.NUGET_API_KEY }} |
|||
SOURCE_URL: https://api.nuget.org/v3/index.json |
|||
run: | |
|||
dotnet nuget push -s ${{ env.SOURCE_URL }} -k ${{ env.NUGET_AUTH_TOKEN }} **/*.nupkg |
|||
@ -0,0 +1,18 @@ |
|||
<Project> |
|||
<PropertyGroup> |
|||
<Product>XamlNameReferenceGenerator</Product> |
|||
<PackageLicenseExpression>MIT</PackageLicenseExpression> |
|||
<PackageProjectUrl>https://github.com/worldbeater/XamlNameReferenceGenerator/</PackageProjectUrl> |
|||
<Description>Generates typed x:Name references to Avalonia controls declared in XAML.</Description> |
|||
<PackageReleaseNotes>https://github.com/worldbeater/XamlNameReferenceGenerator/releases</PackageReleaseNotes> |
|||
<RepositoryUrl>https://github.com/worldbeater/XamlNameReferenceGenerator</RepositoryUrl> |
|||
<RepositoryType>git</RepositoryType> |
|||
<PublishRepositoryUrl>true</PublishRepositoryUrl> |
|||
</PropertyGroup> |
|||
<ItemGroup> |
|||
<PackageReference Include="Nerdbank.GitVersioning" Version="3.3.37" PrivateAssets="all" /> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<None Include="$(MSBuildThisFileDirectory)..\LICENSE" Pack="true" PackagePath="LICENSE" /> |
|||
</ItemGroup> |
|||
</Project> |
|||
@ -1,31 +0,0 @@ |
|||
using System; |
|||
using System.IO; |
|||
|
|||
namespace XamlNameReferenceGenerator.Infrastructure |
|||
{ |
|||
internal class PhysicalFileDebugger |
|||
{ |
|||
private const string DefaultPath = @"C:\Users\prizr\Documents\GitHub\XamlNameReferenceGenerator\debug.txt"; |
|||
private readonly string _path; |
|||
|
|||
public PhysicalFileDebugger(string path = DefaultPath) => _path = path; |
|||
|
|||
public string Debug(Func<string> function) |
|||
{ |
|||
if (File.Exists(_path)) |
|||
File.Delete(_path); |
|||
|
|||
try |
|||
{ |
|||
var sourceCode = function(); |
|||
File.WriteAllText(_path, sourceCode); |
|||
return sourceCode; |
|||
} |
|||
catch (Exception exception) |
|||
{ |
|||
File.WriteAllText(_path, exception.ToString()); |
|||
throw; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
{ |
|||
"$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", |
|||
"version": "0.1", |
|||
"assemblyVersion": { |
|||
"precision": "revision" |
|||
}, |
|||
"publicReleaseRefSpec": [ |
|||
"^refs/heads/main$", |
|||
"^refs/heads/v\\d+\\.\\d+$" |
|||
] |
|||
} |
|||
Loading…
Reference in new issue