Skip to content

Commit 7b5fb29

Browse files
committed
When building locally, default branch to HEAD
If we can't find an envvar with the right value, default to checkout HEAD.
1 parent f9939f8 commit 7b5fb29

File tree

2 files changed

+61
-48
lines changed

2 files changed

+61
-48
lines changed

src/ThisAssembly.Git/ThisAssembly.Git.targets

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@
5656
<RepositoryRoot>@(_ThisAssemblyGitSourceRoot)</RepositoryRoot>
5757
</PropertyGroup>
5858

59+
<PropertyGroup Condition="'$(RepositoryBranch)' == '' and '$(RepositoryRoot)' != ''">
60+
<!-- We may not be in CI at all. If we got a git repo root, we can directly read HEAD -->
61+
<RepositoryHead>$(RepositoryRoot).git/HEAD</RepositoryHead>
62+
<RepositoryBranch Condition="Exists($(RepositoryHead))">$([System.IO.File]::ReadAllText($(RepositoryHead)).TrimStart("ref: refs/heads/"))</RepositoryBranch>
63+
</PropertyGroup>
64+
5965
</Target>
6066

6167
<Target Name="PrepareGitConstants"

src/ThisAssembly.Tests/Tests.cs

Lines changed: 55 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,78 @@
11
using System.Diagnostics.CodeAnalysis;
22
using System.IO;
33
using Xunit;
4+
using Xunit.Abstractions;
45

56
[assembly: SuppressMessage("SponsorLink", "SL04")]
67

7-
namespace ThisAssemblyTests
8+
namespace ThisAssemblyTests;
9+
10+
public record class Tests(ITestOutputHelper Output)
811
{
9-
public class Tests
10-
{
11-
[Fact]
12-
public void CanReadResourceFile()
13-
=> Assert.NotNull(ResourceFile.Load("Resources.resx", "Strings"));
12+
[Fact]
13+
public void CanReadResourceFile()
14+
=> Assert.NotNull(ResourceFile.Load("Resources.resx", "Strings"));
1415

15-
[Fact]
16-
public void CanUseInfo()
17-
=> Assert.Equal("ThisAssembly.Tests", ThisAssembly.Info.Title);
16+
[Fact]
17+
public void CanUseInfo()
18+
=> Assert.Equal("ThisAssembly.Tests", ThisAssembly.Info.Title);
1819

19-
[Fact]
20-
public void CanUseConstants()
21-
=> Assert.Equal("Baz", ThisAssembly.Constants.Foo.Bar);
20+
[Fact]
21+
public void CanUseConstants()
22+
=> Assert.Equal("Baz", ThisAssembly.Constants.Foo.Bar);
2223

23-
[Fact]
24-
public void CanUseFileConstants()
25-
=> Assert.Equal(ThisAssembly.Constants.Content.Docs.License, Path.Combine("Content", "Docs", "License.md"));
24+
[Fact]
25+
public void CanUseFileConstants()
26+
=> Assert.Equal(ThisAssembly.Constants.Content.Docs.License, Path.Combine("Content", "Docs", "License.md"));
2627

27-
[Fact]
28-
public void CanUseFileConstantLinkedFile()
29-
=> Assert.Equal(ThisAssembly.Constants.Included.Readme, Path.Combine("Included", "Readme.txt"));
28+
[Fact]
29+
public void CanUseFileConstantLinkedFile()
30+
=> Assert.Equal(ThisAssembly.Constants.Included.Readme, Path.Combine("Included", "Readme.txt"));
3031

31-
[Fact]
32-
public void CanUseMetadata()
33-
=> Assert.Equal("Bar", ThisAssembly.Metadata.Foo);
32+
[Fact]
33+
public void CanUseMetadata()
34+
=> Assert.Equal("Bar", ThisAssembly.Metadata.Foo);
3435

35-
[Fact]
36-
public void CanUseProjectProperty()
37-
=> Assert.Equal("Bar", ThisAssembly.Project.Foo);
36+
[Fact]
37+
public void CanUseProjectProperty()
38+
=> Assert.Equal("Bar", ThisAssembly.Project.Foo);
3839

39-
[Fact]
40-
public void CanUseStringsNamedArguments()
41-
=> Assert.NotNull(ThisAssembly.Strings.Named("hello", "world"));
40+
[Fact]
41+
public void CanUseStringsNamedArguments()
42+
=> Assert.NotNull(ThisAssembly.Strings.Named("hello", "world"));
4243

43-
[Fact]
44-
public void CanUseStringsIndexedArguments()
45-
=> Assert.NotNull(ThisAssembly.Strings.Indexed("hello", "world"));
44+
[Fact]
45+
public void CanUseStringsIndexedArguments()
46+
=> Assert.NotNull(ThisAssembly.Strings.Indexed("hello", "world"));
4647

47-
[Fact]
48-
public void CanUseStringResource()
49-
=> Assert.Equal("Value", ThisAssembly.Strings.Foo.Bar.Baz);
48+
[Fact]
49+
public void CanUseStringResource()
50+
=> Assert.Equal("Value", ThisAssembly.Strings.Foo.Bar.Baz);
5051

51-
[Fact]
52-
public void CanUseTextResource()
53-
=> Assert.NotNull(ThisAssembly.Resources.Content.Styles.Custom.Text);
52+
[Fact]
53+
public void CanUseTextResource()
54+
=> Assert.NotNull(ThisAssembly.Resources.Content.Styles.Custom.Text);
5455

55-
[Fact]
56-
public void CanUseByteResource()
57-
=> Assert.NotNull(ThisAssembly.Resources.Content.Styles.Main.GetBytes());
56+
[Fact]
57+
public void CanUseByteResource()
58+
=> Assert.NotNull(ThisAssembly.Resources.Content.Styles.Main.GetBytes());
5859

59-
[Fact]
60-
public void CanUseSameNameDifferentExtensions()
61-
=> Assert.NotNull(ThisAssembly.Resources.Content.Swagger.swagger_ui.css.GetBytes());
60+
[Fact]
61+
public void CanUseSameNameDifferentExtensions()
62+
=> Assert.NotNull(ThisAssembly.Resources.Content.Swagger.swagger_ui.css.GetBytes());
6263

63-
[Fact]
64-
public void CanUseFileInvalidCharacters()
65-
=> Assert.NotNull(ThisAssembly.Resources.webhook_data.Text);
64+
[Fact]
65+
public void CanUseFileInvalidCharacters()
66+
=> Assert.NotNull(ThisAssembly.Resources.webhook_data.Text);
6667

67-
[Fact]
68-
public void CanUseGitConstants()
69-
=> Assert.NotEmpty(ThisAssembly.Git.Commit);
68+
[Fact]
69+
public void CanUseGitConstants()
70+
=> Assert.NotEmpty(ThisAssembly.Git.Commit);
71+
72+
[Fact]
73+
public void CanUseGitBranchConstants()
74+
{
75+
Assert.NotEmpty(ThisAssembly.Git.Branch);
76+
Output.WriteLine(ThisAssembly.Git.Branch);
7077
}
7178
}

0 commit comments

Comments
 (0)