Skip to content

Commit

Permalink
Merge pull request #126 from FZJ-INM1-BDA/fsdavid-patch-1
Browse files Browse the repository at this point in the history
Upload to docker pipeline for staging
  • Loading branch information
xgui3783 committed Jul 7, 2022
2 parents 7f3d720 + 16b454b commit 529037d
Show file tree
Hide file tree
Showing 11 changed files with 239 additions and 46 deletions.
62 changes: 62 additions & 0 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: '[docker image] - Staging'

on:
push:
branches:
- staging

# do not rebuild if...
paths-ignore:
# use_docs (use_docs are built on readthedocs any way)
- 'use_docs/*'

jobs:
build-docker-img:
runs-on: ubuntu-latest
env:
DOCKERIMG: voluba:latest

steps:
- uses: actions/checkout@v2
- name: 'Setup tags'
run: |
DOCKER_IMGSTREAM=${{ secrets.EBRAINS_DOCKER_REG_VOLUBA_NSP }}/${{ env.DOCKERIMG }}
echo "Setting docker image stream to $DOCKER_IMGSTREAM"
echo "DOCKER_IMGSTREAM=$DOCKER_IMGSTREAM" >> $GITHUB_ENV
- name: 'Set matomo env var'
run: |
echo "Using github.ref: $GITHUB_REF"
echo "BRANCH_NAME=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
echo "MATOMO_URL=${{ secrets.MATOMO_URL_PROD }}" >> $GITHUB_ENV
echo "MATOMO_ID=${{ secrets.MATOMO_ID_PROD }}" >> $GITHUB_ENV
- name: 'Set version variable & expmt feature flag'
run: |
GIT_HASH=$(git rev-parse --short HEAD)
echo "Setting GIT_HASH: $GIT_HASH"
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
# VERSION=$(jq -r '.version' package.json)
# echo "Setting VERSION: $VERSION"
# echo "VERSION=$VERSION" >> $GITHUB_ENV
# VUE_APP_ENABLE_EXPERIMENTAL_FEATURES="{}"
- name: 'Build docker image'
run: |
echo "Building $DOCKER_IMGSTREAM"
docker build \
--build-arg MATOMO_URL=$MATOMO_URL \
--build-arg MATOMO_ID=$MATOMO_ID \
--build-arg VUE_APP_BACKEND_URL=${{ secrets.VUE_APP_BACKEND_URL }} \
--build-arg VUE_APP_UPLOAD_URL=${{ secrets.VUE_APP_UPLOAD_URL }} \
-t $DOCKER_IMGSTREAM \
.
echo "Successfully built $DOCKER_IMGSTREAM"
- name: 'Push to docker registry'
run: |
echo "Login to docker registry"
docker login \
-u '${{ secrets.EBRAINS_DOCKER_REG_USER }}' \
-p '${{ secrets.EBRAINS_DOCKER_REG_TOKEN }}' \
docker-registry.ebrains.eu
echo "Pushing $DOCKER_IMGSTREAM"
docker push $DOCKER_IMGSTREAM
69 changes: 69 additions & 0 deletions .github/workflows/dockerimg.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: '[docker image]'

on:
push:
branches:
- master

# do not rebuild if...
paths-ignore:
# use_docs (use_docs are built on readthedocs any way)
- 'use_docs/*'

jobs:
build-docker-img:
runs-on: ubuntu-latest
env:
DOCKERIMG: voluba:latest

steps:
- uses: actions/checkout@v2
- name: 'Setup tags'
run: |
DOCKER_IMGSTREAM=${{ secrets.EBRAINS_DOCKER_REG_VOLUBA_NSP }}/${{ env.DOCKERIMG }}
echo "Setting docker image stream to $DOCKER_IMGSTREAM"
echo "DOCKER_IMGSTREAM=$DOCKER_IMGSTREAM" >> $GITHUB_ENV
- name: 'Set matomo env var'
run: |
echo "Using github.ref: $GITHUB_REF"
echo "BRANCH_NAME=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
echo "MATOMO_URL=${{ secrets.MATOMO_URL_PROD }}" >> $GITHUB_ENV
echo "MATOMO_ID=${{ secrets.MATOMO_ID_PROD }}" >> $GITHUB_ENV
- name: 'Set version variable & expmt feature flag'
run: |
GIT_HASH=$(git rev-parse --short HEAD)
echo "Setting GIT_HASH: $GIT_HASH"
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
# VERSION=$(jq -r '.version' package.json)
# echo "Setting VERSION: $VERSION"
# echo "VERSION=$VERSION" >> $GITHUB_ENV
# VUE_APP_ENABLE_EXPERIMENTAL_FEATURES="{}"
- name: 'Build docker image'
run: |
echo "Building $DOCKER_IMGSTREAM"
docker build \
--build-arg MATOMO_URL=$MATOMO_URL \
--build-arg MATOMO_ID=$MATOMO_ID \
--build-arg VUE_APP_BACKEND_URL=${{ secrets.VUE_APP_BACKEND_URL }} \
--build-arg VUE_APP_UPLOAD_URL=${{ secrets.VUE_APP_UPLOAD_URL }} \
-t $DOCKER_IMGSTREAM \
.
echo "Successfully built $DOCKER_IMGSTREAM"
- name: 'Push to docker registry'
run: |
echo "Login to docker registry"
docker login \
-u '${{ secrets.EBRAINS_DOCKER_REG_USER }}' \
-p '${{ secrets.EBRAINS_DOCKER_REG_TOKEN }}' \
docker-registry.ebrains.eu
echo "Pushing $DOCKER_IMGSTREAM"
docker push $DOCKER_IMGSTREAM
30 changes: 7 additions & 23 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,58 +1,39 @@
FROM node:12 as builder

ARG HOSTNAME
ARG VUE_APP_ALLOW_UPLOAD
ARG IV_HOST
ARG VUE_APP_ALLOW_UPLOAD=true
ARG VUE_APP_BACKEND_URL
ARG VUE_APP_NONLINEAR_BACKEND
ARG VUE_APP_UPLOAD_URL
ARG PORT
ARG VUE_APP_DEBUG
ARG VUE_APP_DEBUG=false
ARG MATOMO_URL
ARG MATOMO_ID
ARG VUE_APP_ENABLE_EXPERIMENTAL_FEATURES
ARG VUE_APP_INC_VOL_IDS

ENV MATOMO_URL=$MATOMO_URL
ENV MATOMO_ID=$MATOMO_ID
ENV HOSTNAME=$HOSTNAME
ENV VUE_APP_ALLOW_UPLOAD=$VUE_APP_ALLOW_UPLOAD
ENV IV_HOST=$IV_HOST

ENV VUE_APP_BACKEND_URL=$VUE_APP_BACKEND_URL
ENV VUE_APP_NONLINEAR_BACKEND=$VUE_APP_NONLINEAR_BACKEND
ENV VUE_APP_ENABLE_EXPERIMENTAL_FEATURES=$VUE_APP_ENABLE_EXPERIMENTAL_FEATURES
ENV VUE_APP_UPLOAD_URL=$VUE_APP_UPLOAD_URL
ENV PORT=$PORT
ENV VUE_APP_DEBUG=$VUE_APP_DEBUG
ENV VUE_APP_INC_VOL_IDS=$VUE_APP_INC_VOL_IDS

COPY . /frontend
WORKDIR /frontend/app
RUN npm i

RUN npm run build

# build doc
FROM python:3.7 as doc-builder

COPY . /voluba
WORKDIR /voluba

RUN pip install mkdocs mkdocs-material mdx_truly_sane_lists
RUN mkdocs build

# gzipping container
FROM ubuntu:20.10 as compressor
FROM ubuntu:22.04 as compressor
RUN apt upgrade -y && apt update && apt install brotli

RUN mkdir -p /frontend/app

# copy frontend
COPY --from=builder /frontend/app/dist /frontend/app/dist

# copy docs to container
COPY --from=doc-builder /voluba/site /frontend/app/dist/doc

WORKDIR /frontend/app/dist

RUN for f in $(find . -type f); do gzip < $f > $f.gz && brotli < $f > $f.br; done
Expand All @@ -77,4 +58,7 @@ COPY --from=builder /frontend/deploy .

RUN npm i

# DEPLOY ENV
# IV_HOST, HOSTNAME

ENTRYPOINT ["node", "server/server.js"]
49 changes: 49 additions & 0 deletions app/src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,52 @@ export default {
if (DEBUG) {
window.setProduction = (arg) => this.setProduction(arg)
}
/**
* get voluba temp volume, if running on http
*/
if (window.location.protocol === "http") {
const { appendToIncomingVolumes } = this
fetch(`http://ime178.ime.kfa-juelich.de/voluba/voluba.json`)
.then(res => res.json())
.then(({ voluba_sources }) => {
return Promise.all(
voluba_sources.map(({ name, url }) => {
const pingUrl = url.replace(/^precomputed:\/\//, '') + '/info'
return fetch(pingUrl)
.then(res => res.json())
.then(info => {
const { size, resolution } = info.scales[0]
const dim = [0, 1, 2].map(idx => size[idx] * resolution[idx]) // dimension in nm
return {
name,
url,
dim
}
})
})
)
})
.then(voluba_sources => {
appendToIncomingVolumes({
volumes: voluba_sources.map(({ name, url, dim }, idx) => {
return {
name,
imageSource: url,
dim,
id: `voluba-custom-source-fzj-${name}-${idx}`
}
})
})
})
.catch(e => {
console.error(`fetching http://ime178.ime.kfa-juelich.de/voluba/voluba.json error`)
})
}
this.initAppendNehuba();
this.$store.subscribeAction(({ type = '', payload = {} } = {}) => {
switch (type) {
Expand Down Expand Up @@ -226,6 +272,9 @@ export default {
...mapActions('nehubaStore', [
'redrawNehuba'
]),
...mapActions('dataSelectionStore', [
'appendToIncomingVolumes'
]),
startRegistration: function () {
this.showSelectVolumesModal = false
},
Expand Down
3 changes: 3 additions & 0 deletions app/src/components/LandmarkControlBodyV2.vue
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,9 @@ export default {
.lm-wrapper
{
display:flex;
max-height:50vh;
overflow-y: scroll;
overflow-x: hidden;
}
.lm-wrapper > .ref-lm-wrapper
Expand Down
24 changes: 22 additions & 2 deletions app/src/components/Nehuba.vue
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,19 @@
class="statusCardWrapper">
<NehubaStatusCard>
<template>
<div>
<span>rotation:</span>
<b-button-group>
<b-button size="sm"
@click="resetViewerOrientation()">
reset
</b-button>
<b-button size="sm"
@click="resetViewerOrientation('incomingVolume')">
set to inc
</b-button>
</b-button-group>
</div>
<div>
{{ navStatusText }}
</div>
Expand Down Expand Up @@ -93,7 +106,7 @@
<script>
import { mapState, mapGetters, mapActions, mapMutations } from 'vuex'
import { REFERENCE_COLOR, transposeMat4, UNPAIRED_COLOR, INCOMING_COLOR, annotationColorBlur, annotationColorFocus, testBigbrain, determineElement, getRotationVec3, incomingTemplateActiveOpacity, identityMat, identityMatFlattened } from '@//constants'
import { REFERENCE_COLOR, transposeMat4, UNPAIRED_COLOR, INCOMING_COLOR, annotationColorFocus, testBigbrain, determineElement, getRotationVec3, identityMat, invertQuat } from '@//constants'
import { incompatibleBrowserText } from '@/text'
Expand Down Expand Up @@ -364,13 +377,20 @@ export default {
]),
...mapActions('nehubaStore', [
'setTranslInc',
'rotIncBy'
'rotIncBy',
]),
...mapMutations('nehubaStore', [
'setReferenceTemplateTransform',
'setIncomingVolumeHighlighted',
'setPrimaryNehubaNavigationPosition'
]),
resetViewerOrientation: function(target){
const orientation = target === 'incomingVolume'
? invertQuat(Array.from(this.incRotQuat))
: [0, 0, 0, 1]
this.nehubaBase__setOrientation(orientation)
},
rerenderOpacity: function () {
if (this.$options.nonReactiveData.ngUserLayer) {
const layer = this.$options.nonReactiveData.ngUserLayer
Expand Down
6 changes: 5 additions & 1 deletion app/src/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -628,6 +628,10 @@ export const openFileDialog = (type, acceptedMimeType, fileHandler = null, conte
file_selector.click()
}

export function invertQuat(q){
const { quat } = window.export_nehuba
return quat.invert(q, q)
}

export const testLandmarks = {
referenceLandmarks: [{
Expand Down Expand Up @@ -784,7 +788,7 @@ export const oldJson = [
export const annotationColorBlur = `grey`
export const annotationColorFocus = `yellow`

export const UPLOAD_URL = process.env.VUE_APP_UPLOAD_URL || `http://ime178.ime.kfa-juelich.de:7300`
export const UPLOAD_URL = process.env.VUE_APP_UPLOAD_URL || `https://zam10143.zam.kfa-juelich.de/chumni`
export const NONLINEAR_BACKEND = process.env.VUE_APP_NONLINEAR_BACKEND || `http://localhost:5000`

export const processImageMetaData = ({id:defaultId, visibility = 'public', name = 'Untitled', links = {}, extra = {}, uploadUrl } = {}) => {
Expand Down
3 changes: 3 additions & 0 deletions app/src/mixins/NehubaBase.js
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,9 @@ export default {
) {
this.nehubaBase__navigationChanged()
}
},
nehubaBase__setOrientation: function(orientation){
this.$options.nehubaBase.nehubaBase__nehubaViewer.ngviewer.navigationState.pose.orientation.restoreState( orientation )
}
}
}

0 comments on commit 529037d

Please sign in to comment.