attempting to fix docker image build by generating frontend version information before docker build.
This commit is contained in:
@@ -93,7 +93,8 @@ jobs:
|
|||||||
type=ref,enable=true,event=branch,suffix=-web
|
type=ref,enable=true,event=branch,suffix=-web
|
||||||
type=ref,enable=true,event=tag,suffix=-web
|
type=ref,enable=true,event=tag,suffix=-web
|
||||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||||
|
- name: "Generate frontend version information"
|
||||||
|
run: "cd webapp/frontend && ./git.version.sh"
|
||||||
# Build and push Docker image with Buildx (don't push on PR)
|
# Build and push Docker image with Buildx (don't push on PR)
|
||||||
# https://github.com/docker/build-push-action
|
# https://github.com/docker/build-push-action
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
@@ -105,10 +106,6 @@ jobs:
|
|||||||
push: ${{ github.event_name != 'pull_request' }}
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
build-args: |
|
|
||||||
GITHUB_REF_NAME=${{ env.GITHUB_REF_NAME }}
|
|
||||||
GITHUB_REF_TYPE=${{ env.GITHUB_REF_TYPE }}
|
|
||||||
GITHUB_SHA=${{ env.GITHUB_SHA }}
|
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
omnibus:
|
omnibus:
|
||||||
@@ -143,7 +140,8 @@ jobs:
|
|||||||
type=ref,enable=true,event=branch,suffix=-omnibus
|
type=ref,enable=true,event=branch,suffix=-omnibus
|
||||||
type=ref,enable=true,event=tag,suffix=-omnibus
|
type=ref,enable=true,event=tag,suffix=-omnibus
|
||||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||||
|
- name: "Generate frontend version information"
|
||||||
|
run: "cd webapp/frontend && ./git.version.sh"
|
||||||
# Build and push Docker image with Buildx (don't push on PR)
|
# Build and push Docker image with Buildx (don't push on PR)
|
||||||
# https://github.com/docker/build-push-action
|
# https://github.com/docker/build-push-action
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
@@ -155,9 +153,5 @@ jobs:
|
|||||||
push: ${{ github.event_name != 'pull_request' }}
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
build-args: |
|
|
||||||
GITHUB_REF_NAME=${{ env.GITHUB_REF_NAME }}
|
|
||||||
GITHUB_REF_TYPE=${{ env.GITHUB_REF_TYPE }}
|
|
||||||
GITHUB_SHA=${{ env.GITHUB_SHA }}
|
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
@@ -15,6 +15,8 @@ jobs:
|
|||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
ref: ${{github.event.release.tag_name}}
|
ref: ${{github.event.release.tag_name}}
|
||||||
|
- name: "Generate frontend version information"
|
||||||
|
run: "cd webapp/frontend && ./git.version.sh"
|
||||||
- name: Build Frontend
|
- name: Build Frontend
|
||||||
run: |
|
run: |
|
||||||
cd webapp/frontend
|
cd webapp/frontend
|
||||||
|
|||||||
+1
-3
@@ -12,9 +12,7 @@ RUN go mod vendor && \
|
|||||||
|
|
||||||
########
|
########
|
||||||
FROM node:lts-slim as frontendbuild
|
FROM node:lts-slim as frontendbuild
|
||||||
ARG GITHUB_REF_NAME=""
|
|
||||||
ARG GITHUB_REF_TYPE=""
|
|
||||||
ARG GITHUB_SHA=""
|
|
||||||
#reduce logging, disable angular-cli analytics for ci environment
|
#reduce logging, disable angular-cli analytics for ci environment
|
||||||
ENV NPM_CONFIG_LOGLEVEL=warn NG_CLI_ANALYTICS=false
|
ENV NPM_CONFIG_LOGLEVEL=warn NG_CLI_ANALYTICS=false
|
||||||
|
|
||||||
|
|||||||
@@ -10,9 +10,7 @@ RUN go mod vendor && \
|
|||||||
|
|
||||||
########
|
########
|
||||||
FROM node:lts-slim as frontendbuild
|
FROM node:lts-slim as frontendbuild
|
||||||
ARG GITHUB_REF_NAME=""
|
|
||||||
ARG GITHUB_REF_TYPE=""
|
|
||||||
ARG GITHUB_SHA=""
|
|
||||||
#reduce logging, disable angular-cli analytics for ci environment
|
#reduce logging, disable angular-cli analytics for ci environment
|
||||||
ENV NPM_CONFIG_LOGLEVEL=warn NG_CLI_ANALYTICS=false
|
ENV NPM_CONFIG_LOGLEVEL=warn NG_CLI_ANALYTICS=false
|
||||||
|
|
||||||
|
|||||||
Executable
+33
@@ -0,0 +1,33 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if [[ -z "${CI}" ]]; then
|
||||||
|
echo "running locally (not in Github Actions). generating version file from git client"
|
||||||
|
GIT_TAG=`git describe --tags`
|
||||||
|
GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`
|
||||||
|
|
||||||
|
if [[ "$GIT_BRANCH" == "master" ]]; then
|
||||||
|
VERSION_INFO="${GIT_TAG}"
|
||||||
|
else
|
||||||
|
VERSION_INFO="${GIT_BRANCH}#${GIT_TAG}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "running in Github Actions, generating version file from environmental variables"
|
||||||
|
# https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
GITHUB_SHA
|
||||||
|
GITHUB_REF_NAME
|
||||||
|
GITHUB_REF_TYPE
|
||||||
|
|
||||||
|
VERSION_INFO="${GITHUB_REF_NAME}"
|
||||||
|
|
||||||
|
if [[ "$GITHUB_REF_TYPE" == "branch" ]]; then
|
||||||
|
VERSION_INFO="${VERSION_INFO}#${GITHUB_SHA::7}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "writing version file (version: ${VERSION_INFO})"
|
||||||
|
cat <<EOT > src/environments/versions.ts
|
||||||
|
// this file is automatically generated by git.version.ts script
|
||||||
|
export const versionInfo = {
|
||||||
|
version: '${VERSION_INFO}',
|
||||||
|
};
|
||||||
|
EOT
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
import { writeFileSync } from 'fs';
|
|
||||||
import { dedent } from 'tslint/lib/utils';
|
|
||||||
import { promisify } from 'util';
|
|
||||||
import * as child from 'child_process';
|
|
||||||
const exec = promisify(child.exec);
|
|
||||||
|
|
||||||
async function createVersionsFile(filename: string) {
|
|
||||||
let versionInfo = ''
|
|
||||||
if(process.env.GITHUB_SHA){
|
|
||||||
// we're in a github action
|
|
||||||
|
|
||||||
versionInfo = process.env.GITHUB_REF_NAME
|
|
||||||
if(process.env.GITHUB_REF_TYPE === 'branch'){
|
|
||||||
versionInfo += `#${process.env.GITHUB_SHA}`
|
|
||||||
}
|
|
||||||
} 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)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const content = dedent`
|
|
||||||
// this file is automatically generated by git.version.ts script
|
|
||||||
export const versionInfo = {
|
|
||||||
version: '${versionInfo}',
|
|
||||||
};`;
|
|
||||||
|
|
||||||
writeFileSync(filename, content, {encoding: 'utf8'});
|
|
||||||
}
|
|
||||||
|
|
||||||
createVersionsFile('src/environments/versions.ts');
|
|
||||||
@@ -4,10 +4,8 @@
|
|||||||
"license": "https://themeforest.net/licenses/standard",
|
"license": "https://themeforest.net/licenses/standard",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"ng": "ng",
|
"ng": "ng",
|
||||||
"prestart": "ts-node -O '{\"module\": \"commonjs\"}' git.version.ts",
|
|
||||||
"start": "ng serve --open",
|
"start": "ng serve --open",
|
||||||
"start:mem": "node --max_old_space_size=6144 ./node_modules/@angular/cli/bin/ng serve --open",
|
"start:mem": "node --max_old_space_size=6144 ./node_modules/@angular/cli/bin/ng serve --open",
|
||||||
"prebuild:prod": "ts-node -O '{\"module\": \"commonjs\"}' git.version.ts",
|
|
||||||
"build": "ng build",
|
"build": "ng build",
|
||||||
"build:prod": "ng build --prod",
|
"build:prod": "ng build --prod",
|
||||||
"build:prod:mem": "node --max_old_space_size=6144 ./node_modules/@angular/cli/bin/ng build --prod",
|
"build:prod:mem": "node --max_old_space_size=6144 ./node_modules/@angular/cli/bin/ng build --prod",
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
|
|
||||||
// this file is automatically generated by git.version.ts script
|
// this file is automatically generated by git.version.ts script
|
||||||
export const versionInfo = {
|
export const versionInfo = {
|
||||||
version: 'v0.0.0',
|
version: 'dev',
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user