diff --git a/.circleci/config.yml b/.circleci/config.yml
index fcda0ae36..4dc90c0fd 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -41,9 +41,10 @@ jobs:
- run:
command: |
LATEST_TAG=${CIRCLE_TAG:1} #trim v from tag
+ GIT_COMMIT=$(git rev-parse HEAD)
#
- sudo docker build --pull -t $DOCKERHUB_REPO:$LATEST_TAG-amd64 -f amd64.Dockerfile .
- sudo docker build --pull --build-arg CONFIGURATION_NAME=Altcoins-Release -t $DOCKERHUB_REPO:$LATEST_TAG-altcoins-amd64 -f amd64.Dockerfile .
+ sudo docker build --build-arg GIT_COMMIT=${GIT_COMMIT} --pull -t $DOCKERHUB_REPO:$LATEST_TAG-amd64 -f amd64.Dockerfile .
+ sudo docker build --build-arg GIT_COMMIT=${GIT_COMMIT} --pull --build-arg CONFIGURATION_NAME=Altcoins-Release -t $DOCKERHUB_REPO:$LATEST_TAG-altcoins-amd64 -f amd64.Dockerfile .
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker push $DOCKERHUB_REPO:$LATEST_TAG-amd64
sudo docker push $DOCKERHUB_REPO:$LATEST_TAG-altcoins-amd64
@@ -57,9 +58,10 @@ jobs:
command: |
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
LATEST_TAG=${CIRCLE_TAG:1} #trim v from tag
+ GIT_COMMIT=$(git rev-parse HEAD)
#
- sudo docker build --pull -t $DOCKERHUB_REPO:$LATEST_TAG-arm32v7 -f arm32v7.Dockerfile .
- sudo docker build --pull --build-arg CONFIGURATION_NAME=Altcoins-Release -t $DOCKERHUB_REPO:$LATEST_TAG-altcoins-arm32v7 -f arm32v7.Dockerfile .
+ sudo docker build --build-arg GIT_COMMIT=${GIT_COMMIT} --pull -t $DOCKERHUB_REPO:$LATEST_TAG-arm32v7 -f arm32v7.Dockerfile .
+ sudo docker build --build-arg GIT_COMMIT=${GIT_COMMIT} --pull --build-arg CONFIGURATION_NAME=Altcoins-Release -t $DOCKERHUB_REPO:$LATEST_TAG-altcoins-arm32v7 -f arm32v7.Dockerfile .
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker push $DOCKERHUB_REPO:$LATEST_TAG-arm32v7
sudo docker push $DOCKERHUB_REPO:$LATEST_TAG-altcoins-arm32v7
@@ -73,9 +75,10 @@ jobs:
command: |
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
LATEST_TAG=${CIRCLE_TAG:1} #trim v from tag
+ GIT_COMMIT=$(git rev-parse HEAD)
#
- sudo docker build --pull -t $DOCKERHUB_REPO:$LATEST_TAG-arm64v8 -f arm64v8.Dockerfile .
- sudo docker build --build-arg CONFIGURATION_NAME=Altcoins-Release --pull -t $DOCKERHUB_REPO:$LATEST_TAG-altcoins-arm64v8 -f arm64v8.Dockerfile .
+ sudo docker build --build-arg GIT_COMMIT=${GIT_COMMIT} --pull -t $DOCKERHUB_REPO:$LATEST_TAG-arm64v8 -f arm64v8.Dockerfile .
+ sudo docker build --build-arg GIT_COMMIT=${GIT_COMMIT} --build-arg CONFIGURATION_NAME=Altcoins-Release --pull -t $DOCKERHUB_REPO:$LATEST_TAG-altcoins-arm64v8 -f arm64v8.Dockerfile .
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker push $DOCKERHUB_REPO:$LATEST_TAG-arm64v8
sudo docker push $DOCKERHUB_REPO:$LATEST_TAG-altcoins-arm64v8
diff --git a/BTCPayServer/BTCPayServer.csproj b/BTCPayServer/BTCPayServer.csproj
index c5ce06c30..0a762b23a 100644
--- a/BTCPayServer/BTCPayServer.csproj
+++ b/BTCPayServer/BTCPayServer.csproj
@@ -4,13 +4,15 @@
Exe
-
true
-
False
-
False
+
+
+ <_Parameter1>$(GitCommit)
+
+
diff --git a/BTCPayServer/GitCommitAttribute.cs b/BTCPayServer/GitCommitAttribute.cs
new file mode 100644
index 000000000..6021cfd0f
--- /dev/null
+++ b/BTCPayServer/GitCommitAttribute.cs
@@ -0,0 +1,18 @@
+using System;
+
+namespace BTCPayServer
+{
+ [AttributeUsage(AttributeTargets.Assembly, Inherited = false)]
+ public sealed class GitCommitAttribute : Attribute
+ {
+ public string SHA
+ {
+ get;
+ }
+ public string ShortSHA => SHA.Substring(0, 9);
+ public GitCommitAttribute(string sha)
+ {
+ SHA = sha;
+ }
+ }
+}
diff --git a/BTCPayServer/Services/BTCPayServerEnvironment.cs b/BTCPayServer/Services/BTCPayServerEnvironment.cs
index 6b68f57bd..ad9f96c79 100644
--- a/BTCPayServer/Services/BTCPayServerEnvironment.cs
+++ b/BTCPayServer/Services/BTCPayServerEnvironment.cs
@@ -18,6 +18,7 @@ namespace BTCPayServer.Services
public BTCPayServerEnvironment(IWebHostEnvironment env, BTCPayNetworkProvider provider, TorServices torServices, BTCPayServerOptions opts)
{
Version = typeof(BTCPayServerEnvironment).GetTypeInfo().Assembly.GetCustomAttribute().Version;
+ Commit = typeof(BTCPayServerEnvironment).GetTypeInfo().Assembly.GetCustomAttribute()?.ShortSHA;
#if DEBUG
Build = "Debug";
#else
@@ -70,10 +71,14 @@ namespace BTCPayServer.Services
Extensions.IsLocalNetwork(httpContext.Request.Host.Host);
}
+ public string Commit { get; set; }
+
public override string ToString()
{
StringBuilder txt = new StringBuilder();
txt.Append(CultureInfo.InvariantCulture, $"© BTCPay Server v{Version}");
+ if (Commit != null)
+ txt.Append($"+{Commit}");
if (AltcoinsVersion)
txt.Append(" (Altcoins)");
if (!Environment.IsProduction() || !Build.Equals("Release", StringComparison.OrdinalIgnoreCase))
diff --git a/amd64.Dockerfile b/amd64.Dockerfile
index b198c85fb..ad65e89d6 100644
--- a/amd64.Dockerfile
+++ b/amd64.Dockerfile
@@ -18,7 +18,8 @@ COPY BTCPayServer.Abstractions/. BTCPayServer.Abstractions/.
COPY BTCPayServer/. BTCPayServer/.
COPY Build/Version.csproj Build/Version.csproj
ARG CONFIGURATION_NAME=Release
-RUN cd BTCPayServer && dotnet publish --output /app/ --configuration ${CONFIGURATION_NAME}
+ARG GIT_COMMIT
+RUN cd BTCPayServer && dotnet publish -p:GitCommit=${GIT_COMMIT} --output /app/ --configuration ${CONFIGURATION_NAME}
FROM mcr.microsoft.com/dotnet/aspnet:6.0.9-bullseye-slim
diff --git a/arm32v7.Dockerfile b/arm32v7.Dockerfile
index b849f7fe9..84aefb862 100644
--- a/arm32v7.Dockerfile
+++ b/arm32v7.Dockerfile
@@ -22,7 +22,8 @@ COPY BTCPayServer.Abstractions/. BTCPayServer.Abstractions/.
COPY BTCPayServer/. BTCPayServer/.
COPY Build/Version.csproj Build/Version.csproj
ARG CONFIGURATION_NAME=Release
-RUN cd BTCPayServer && dotnet publish --output /app/ --configuration ${CONFIGURATION_NAME}
+ARG GIT_COMMIT
+RUN cd BTCPayServer && dotnet publish -p:GitCommit=${GIT_COMMIT} --output /app/ --configuration ${CONFIGURATION_NAME}
# Note that we are using buster rather than bullseye. Somehow, raspberry pi 4 doesn't like bullseye.
FROM mcr.microsoft.com/dotnet/aspnet:6.0.9-bullseye-slim-arm32v7
diff --git a/arm64v8.Dockerfile b/arm64v8.Dockerfile
index fe2ee1d66..e057b78dc 100644
--- a/arm64v8.Dockerfile
+++ b/arm64v8.Dockerfile
@@ -23,7 +23,8 @@ COPY BTCPayServer.Abstractions/. BTCPayServer.Abstractions/.
COPY BTCPayServer/. BTCPayServer/.
COPY Build/Version.csproj Build/Version.csproj
ARG CONFIGURATION_NAME=Release
-RUN cd BTCPayServer && dotnet publish --output /app/ --configuration ${CONFIGURATION_NAME}
+ARG GIT_COMMIT
+RUN cd BTCPayServer && dotnet publish -p:GitCommit=${GIT_COMMIT} --output /app/ --configuration ${CONFIGURATION_NAME}
# Force the builder machine to take make an arm runtime image. This is fine as long as the builder does not run any program
FROM mcr.microsoft.com/dotnet/aspnet:6.0.9-bullseye-slim-arm64v8