diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4670fd8f..a042ebaa 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -70,6 +70,7 @@ jobs:
--cache-from "type=local,src=/tmp/.buildx-cache" \
--cache-to "type=local,dest=/tmp/.buildx-cache" \
--build-arg VERSION=${VERSION} \
+ --build-arg COMMIT_SHA=${GITHUB_SHA} \
--build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
--build-arg VCS_REF=${GITHUB_SHA::8} \
${TAG} --file Dockerfile .
diff --git a/Dockerfile b/Dockerfile
index 05d8c62f..0b47835d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -14,6 +14,9 @@ ENV VERSION=${VERSION:-undefined}
ARG BUILD_DATE
ENV BUILD_DATE=${BUILD_DATE:-undefined}
+ARG COMMIT_SHA
+ENV COMMIT_SHA=${COMMIT_SHA:-}
+
RUN mkdir -p /app
WORKDIR /app
diff --git a/ui/build.mjs b/ui/build.mjs
index ae710f4e..5aefd3a1 100644
--- a/ui/build.mjs
+++ b/ui/build.mjs
@@ -12,7 +12,7 @@ const bs = browserSync.create()
const production = process.env.NODE_ENV == 'production'
const watchMode = process.argv[2] == 'watch'
-const ENVIRONMENT_VARIABLES = ['NODE_ENV', 'PHOTOVIEW_API_ENDPOINT', 'VERSION', 'BUILD_DATE']
+const ENVIRONMENT_VARIABLES = ['NODE_ENV', 'PHOTOVIEW_API_ENDPOINT', 'VERSION', 'BUILD_DATE', 'COMMIT_SHA']
const defineEnv = ENVIRONMENT_VARIABLES.reduce((acc, key) => {
acc[`process.env.${key}`] = process.env[key] ? `"${process.env[key]}"` : null
diff --git a/ui/src/Pages/SettingsPage/VersionInfo.tsx b/ui/src/Pages/SettingsPage/VersionInfo.tsx
index 8d519433..4113a038 100644
--- a/ui/src/Pages/SettingsPage/VersionInfo.tsx
+++ b/ui/src/Pages/SettingsPage/VersionInfo.tsx
@@ -1,4 +1,4 @@
-import React from 'react'
+import React, { ReactElement } from 'react'
import styled from 'styled-components'
import { useTranslation } from 'react-i18next'
import {
@@ -10,6 +10,20 @@ import {
const VERSION = process.env.VERSION ? process.env.VERSION : 'undefined'
const BUILD_DATE = process.env.BUILD_DATE ? process.env.BUILD_DATE : 'undefined'
+const COMMIT_SHA = process.env.COMMIT_SHA
+let commitLink: ReactElement
+
+if (COMMIT_SHA) {
+ commitLink = React.createElement(
+ 'a',
+ {
+ href: 'https://github.com/photoview/photoview/commit/' + COMMIT_SHA,
+ title: COMMIT_SHA,
+ },
+ COMMIT_SHA.substring(0, 8)
+ )
+}
+
const VersionInfoWrapper = styled.div`
margin-bottom: 24px;
`
@@ -25,7 +39,9 @@ const VersionInfo = () => {
{t('settings.version_info.version_title', 'Release Version')}
- {VERSION}
+
+ {VERSION} ({commitLink})
+
{t('settings.version_info.build_date_title', 'Build date')}