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')}