From c7c55ab95c5b542ccc5755e9823ec70dbedb644c Mon Sep 17 00:00:00 2001 From: Jason Kulatunga Date: Thu, 26 May 2022 23:44:13 -0700 Subject: [PATCH] trying to fix docker build, so it includes git sha info. --- .github/workflows/docker-build.yaml | 4 ++++ docker/Dockerfile | 8 +++----- docker/Dockerfile.web | 9 ++++----- webapp/frontend/git.version.ts | 20 +++++++++++-------- .../horizontal/material/material.component.ts | 4 ++-- webapp/frontend/src/environments/versions.ts | 4 +--- 6 files changed, 26 insertions(+), 23 deletions(-) diff --git a/.github/workflows/docker-build.yaml b/.github/workflows/docker-build.yaml index 2bd7393..c1ca039 100644 --- a/.github/workflows/docker-build.yaml +++ b/.github/workflows/docker-build.yaml @@ -105,6 +105,8 @@ jobs: push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + build-args: | + GIT_VERSION=${{ github.ref_type == "tag" && github.ref_name || github.ref_name + "#" + github.sha }} cache-from: type=gha cache-to: type=gha,mode=max omnibus: @@ -151,5 +153,7 @@ jobs: push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + build-args: | + GIT_VERSION=${{ github.ref_type == "tag" && github.ref_name || github.ref_name + "#" + github.sha }} cache-from: type=gha cache-to: type=gha,mode=max \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile index a94c53f..4374b09 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,16 +12,14 @@ RUN go mod vendor && \ ######## FROM node:lts-slim as frontendbuild - +ARG GIT_VERSION="" #reduce logging, disable angular-cli analytics for ci environment ENV NPM_CONFIG_LOGLEVEL=warn NG_CLI_ANALYTICS=false WORKDIR /opt/scrutiny/src -COPY . /opt/scrutiny/src +COPY webapp/frontend /opt/scrutiny/src -RUN apt-get update && apt-get install -y git && \ - cd webapp/frontend && \ - npm install -g @angular/cli@9.1.4 && \ +RUN npm install -g @angular/cli@9.1.4 && \ mkdir -p /scrutiny/dist && \ npm install && \ npm run build:prod -- --output-path=/opt/scrutiny/dist diff --git a/docker/Dockerfile.web b/docker/Dockerfile.web index e58d6e8..91b246a 100644 --- a/docker/Dockerfile.web +++ b/docker/Dockerfile.web @@ -10,16 +10,15 @@ RUN go mod vendor && \ ######## FROM node:lts-slim as frontendbuild - +ARG GIT_VERSION="" +ENV #reduce logging, disable angular-cli analytics for ci environment ENV NPM_CONFIG_LOGLEVEL=warn NG_CLI_ANALYTICS=false WORKDIR /opt/scrutiny/src -COPY . /opt/scrutiny/src +COPY webapp/frontend /opt/scrutiny/src -RUN apt-get update && apt-get install -y git && \ - cd webapp/frontend && \ - npm install -g @angular/cli@9.1.4 && \ +RUN npm install -g @angular/cli@9.1.4 && \ mkdir -p /opt/scrutiny/dist && \ npm install && \ npm run build:prod -- --output-path=/opt/scrutiny/dist diff --git a/webapp/frontend/git.version.ts b/webapp/frontend/git.version.ts index 211102a..54b4dc2 100644 --- a/webapp/frontend/git.version.ts +++ b/webapp/frontend/git.version.ts @@ -5,18 +5,22 @@ import * as child from 'child_process'; const exec = promisify(child.exec); async function createVersionsFile(filename: string) { - const tag = (await exec('git describe --tags')).stdout.toString().trim(); - const revision = (await exec('git rev-parse --short HEAD')).stdout.toString().trim(); - const branch = (await exec('git rev-parse --abbrev-ref HEAD')).stdout.toString().trim(); + let versionInfo = '' + if(process.env.GIT_VERSION){ + versionInfo = process.env.GIT_VERSION + } else { + const tag = (await exec('git describe --tags')).stdout.toString().trim(); + const branch = (await exec('git rev-parse --abbrev-ref HEAD')).stdout.toString().trim(); + + versionInfo = (branch === 'master' ? tag : branch + '#' + tag) + } + - console.log(`version: '${process.env.npm_package_version}', revision: '${revision}', branch: '${branch}'`); const content = dedent` // this file is automatically generated by git.version.ts script - export const versions = { - version: '${tag}', - revision: '${revision}', - branch: '${branch}' + export const versionInfo = { + version: '${versionInfo}', };`; writeFileSync(filename, content, {encoding: 'utf8'}); diff --git a/webapp/frontend/src/app/layout/layouts/horizontal/material/material.component.ts b/webapp/frontend/src/app/layout/layouts/horizontal/material/material.component.ts index 23881a5..2e86c2e 100644 --- a/webapp/frontend/src/app/layout/layouts/horizontal/material/material.component.ts +++ b/webapp/frontend/src/app/layout/layouts/horizontal/material/material.component.ts @@ -4,7 +4,7 @@ import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { TreoMediaWatcherService } from '@treo/services/media-watcher'; import { TreoNavigationService } from '@treo/components/navigation'; -import {versions} from 'environments/versions'; +import {versionInfo} from 'environments/versions'; @Component({ selector : 'material-layout', @@ -49,7 +49,7 @@ export class MaterialLayoutComponent implements OnInit, OnDestroy this.fixedHeader = false; this.fixedFooter = false; - this.appVersion = `${versions.version}${versions.branch === 'master' ? '' : '#' + versions.branch}` + this.appVersion = versionInfo.version } // ----------------------------------------------------------------------------------------------------- diff --git a/webapp/frontend/src/environments/versions.ts b/webapp/frontend/src/environments/versions.ts index c87af8f..2502048 100644 --- a/webapp/frontend/src/environments/versions.ts +++ b/webapp/frontend/src/environments/versions.ts @@ -1,7 +1,5 @@ // this file is automatically generated by git.version.ts script -export const versions = { +export const versionInfo = { version: 'v0.0.0', - revision: 'abcdef123', - branch: 'master' };