From ca86caee85d7f284c160c2999b8bc57a02ecd752 Mon Sep 17 00:00:00 2001 From: Carl Pearson Date: Wed, 11 Sep 2024 08:43:58 -0600 Subject: [PATCH] Add GitSHA variable --- .github/workflows/docker-image.yml | 2 +- Dockerfile | 4 +++- config.go | 12 ++++++++++++ main.go | 2 ++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index dc2864b..ec24439 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -17,7 +17,7 @@ jobs: echo "SLUG=ghcr.io/cwpearson/ytdlp-site" >> $GITHUB_ENV echo "DATE=$(date +"%Y%m%d_%H%M")" >> $GITHUB_ENV - name: Build the Docker image - run: docker build . --file Dockerfile --tag "$SLUG:$DATE" --tag "$SLUG:latest" + run: docker build . --file Dockerfile --build-arg GIT_SHA=$(git rev-parse HEAD) --tag "$SLUG:$DATE" --tag "$SLUG:latest" - name: Publish to GHCR run: | echo '${{secrets.GHCR_TOKEN}}' | docker login ghcr.io -u cwpearson --password-stdin diff --git a/Dockerfile b/Dockerfile index 5bdd50b..1d34c83 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ FROM golang:1.23.0-bookworm as builder +ARG GIT_SHA="" + RUN apt-get update && apt-get install -y --no-install-recommends --no-install-suggests wget RUN wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux -O /usr/local/bin/yt-dlp \ @@ -8,7 +10,7 @@ ADD *.go /src/. ADD go.mod /src RUN cd /src && go mod tidy -RUN cd /src && go build -o server *.go +RUN cd /src && go build -ldflags "-X main.GitSHA=${GIT_SHA}" -o server *.go FROM debian:bookworm-slim diff --git a/config.go b/config.go index 4e8966b..374a819 100644 --- a/config.go +++ b/config.go @@ -39,3 +39,15 @@ func getSessionAuthKey() ([]byte, error) { } return []byte{}, errors.New(fmt.Sprintf("please set %s", key)) } + +var GitSHA string + +func getGitSHA() string { + + if GitSHA == "" { + return "" + } else { + return GitSHA + } + +} diff --git a/main.go b/main.go index 0becee3..093a7a9 100644 --- a/main.go +++ b/main.go @@ -37,6 +37,8 @@ func ensureAdminAccount(db *gorm.DB) error { func main() { + fmt.Printf("git SHA: %s\n", getGitSHA()) + // Create config database err := os.MkdirAll(getConfigDir(), 0700) if err != nil {