Merge branch 'fradrive/merge-jost-new-build' of https://dev.azure.com/fraport/Fahrerausbildung/_git/FRADrive into fradrive/merge-jost-new-build
This commit is contained in:
commit
a1ae491b89
12
Makefile
12
Makefile
@ -39,6 +39,7 @@ export STACK_CORES = $(shell echo $(($(CPU_CORES)/2)))
|
||||
export BASE_PORTS
|
||||
export UNIWORXDB_OPTS ?= -cf
|
||||
export PROD ?= false
|
||||
export SRC
|
||||
|
||||
ifneq ($(PROD),true)
|
||||
export --DEVELOPMENT=--flag uniworx:dev
|
||||
@ -245,6 +246,7 @@ endif
|
||||
--env CONTAINER_FILE=$(CONTAINER_FILE) \
|
||||
--env CONTAINER_NAME=$${CONTAINER_NAME} \
|
||||
--env JOB=$(JOB) \
|
||||
--env SRC=$(SRC) \
|
||||
--name $${CONTAINER_NAME} \
|
||||
$${CONTAINER_CMD} \
|
||||
` ; \
|
||||
@ -253,11 +255,13 @@ endif
|
||||
$(CONTAINER_COMMAND) attach $${CONTAINER_ID} || : ; \
|
||||
fi
|
||||
|
||||
# For Reverse Proxy Problem see: https://groups.google.com/g/yesodweb/c/2EO53kSOuy0/m/Lw6tq2VYat4J
|
||||
|
||||
# HELP(start-backend): start development instance
|
||||
--start-backend:
|
||||
export DEV_PORT_HTTP=`cat $(CONTAINER_FILE) | grep 'DEV_PORT_HTTP=' | sed 's/DEV_PORT_HTTP=//'`; \
|
||||
export DEV_PORT_HTTPS=`cat $(CONTAINER_FILE) | grep 'DEV_PORT_HTTPS=' | sed 's/DEV_PORT_HTTPS=//'`; \
|
||||
export HOST=`hostname -s` ; \
|
||||
export HOST=127.0.0.1 ; \
|
||||
export PORT=$${PORT:-$${DEV_PORT_HTTP}} ; \
|
||||
export DETAILED_LOGGING=$${DETAILED_LOGGING:-true} ; \
|
||||
export LOG_ALL=$${LOG_ALL:-false} ; \
|
||||
@ -271,7 +275,7 @@ endif
|
||||
export RIBBON=$${RIBBON:-$${HOST:-localhost}} ; \
|
||||
export APPROOT=$${APPROOT:-http://localhost:$${DEV_PORT_HTTP}} ; \
|
||||
export AVSPASS=$${AVSPASS:-nopasswordset} ; \
|
||||
stack $(STACK_CORES) exec --local-bin-path $$(pwd)/bin --copy-bins -- yesod devel -p "$${DEV_PORT_HTTP}" -q "$${DEV_PORT_HTTPS}"
|
||||
stack $(STACK_CORES) exec --local-bin-path $$(pwd)/bin --copy-bins -- yesod devel -n -p "$${DEV_PORT_HTTP}" -q "$${DEV_PORT_HTTPS}"
|
||||
# HELP(compile-backend): compile backend binaries
|
||||
--compile-backend:
|
||||
stack build $(STACK_CORES) --fast --profile --library-profiling --executable-profiling --flag uniworx:-library-only $(--DEVELOPMENT) --local-bin-path $$(pwd)/bin --copy-bins
|
||||
@ -293,7 +297,7 @@ uniworx.cabal:
|
||||
--start-frontend: --compile-frontend;
|
||||
--dependencies-frontend: node_modules assets static well-known;
|
||||
node_modules: package.json package-lock.json
|
||||
npm ci --cache .npm --prefer-offline
|
||||
npm install --cache .npm --prefer-offline
|
||||
package-lock.json: package.json
|
||||
npm install --cache .npm --prefer-offline
|
||||
assets: assets/favicons assets/icons;
|
||||
@ -315,7 +319,7 @@ well-known: static;
|
||||
./bin/uniworxdb $(UNIWORXDB_OPTS)
|
||||
|
||||
--shell-ghci:
|
||||
stack exec -- ghci
|
||||
stack ghci -- $(SRC)
|
||||
# --main-is uniworx:exe:uniworx
|
||||
|
||||
# HELP(shell-{backend,frontend,memcached,minio,postgres}): enter (bash) shell inside a new container of a given service
|
||||
|
||||
@ -16,18 +16,31 @@ jobs:
|
||||
# echo Add other tasks to build, test, and deploy your project.
|
||||
# echo See https://aka.ms/yaml
|
||||
# displayName: 'Run a multi-line script'
|
||||
# - job: DockerTaskTest
|
||||
# container:
|
||||
# image: 'devfra.azurecr.io/de.fraport.trusted/ubuntu:22.04'
|
||||
# endpoint: devfra
|
||||
# steps:
|
||||
# - task: Docker@2
|
||||
# displayName: Image build test
|
||||
# inputs:
|
||||
# command: buildAndPush
|
||||
# Dockerfile: docker/backend/Dockerfile
|
||||
# buildContext: .
|
||||
# tags: backend
|
||||
- job: DockerTaskTest
|
||||
container:
|
||||
image: devfra.azurecr.io/de.fraport.build/tools:1.1.0
|
||||
endpoint: devfra
|
||||
steps:
|
||||
- task: Docker@2
|
||||
name: dockerLoginDevFra
|
||||
displayName: Docker Login to devfra
|
||||
inputs:
|
||||
command: login
|
||||
containerRegistry: devFra
|
||||
- task: Docker@2
|
||||
name: dockerBuild
|
||||
displayName: Backend image build test
|
||||
inputs:
|
||||
command: build
|
||||
Dockerfile: docker/backend/Dockerfile
|
||||
buildContext: .
|
||||
tags: |
|
||||
$(Build.BuildNumber)
|
||||
backend
|
||||
arguments: |
|
||||
--build-arg HTTPS_PROXY=http://proxy.frankfurt-airport.de:8080
|
||||
--build-arg HTTP_PROXY=http://proxy.frankfurt-airport.de:8080
|
||||
--build-arg NO_PROXY='localhost,127.0.0.1,*.docker.internal,*.azmk8s.io,devfra.azurecr.io,devfra.westeurope.data.azurecr.io'
|
||||
# - job: BuildKitTest
|
||||
# container:
|
||||
# image: 'devfra.azurecr.io/de.fraport.trusted/buildkit:0.12.1'
|
||||
@ -38,15 +51,15 @@ jobs:
|
||||
# --local context=. \
|
||||
# --local dockerfile=docker/backend/Dockerfile
|
||||
# displayName: BuildKit test
|
||||
- job: CustomBuildahTest
|
||||
container:
|
||||
image: 'devfra.azurecr.io/de.fraport.trusted/ubuntu:22.04'
|
||||
endpoint: devfra
|
||||
steps:
|
||||
- script: |
|
||||
id
|
||||
docker build --help
|
||||
sudo apt-get -y update
|
||||
sudo apt-get -y install buildah
|
||||
buildah bud -t fradrive-backend-test --volume .:/mnt/fradrive --file docker/backend/Dockerfile
|
||||
displayName: Build buildah image
|
||||
# - job: CustomBuildahTest
|
||||
# container:
|
||||
# image: 'devfra.azurecr.io/de.fraport.trusted/ubuntu:22.04'
|
||||
# endpoint: devfra
|
||||
# steps:
|
||||
# - script: |
|
||||
# id
|
||||
# docker build --help
|
||||
# sudo apt-get -y update
|
||||
# sudo apt-get -y install buildah
|
||||
# buildah bud -t fradrive-backend-test --volume .:/mnt/fradrive --file docker/backend/Dockerfile
|
||||
# displayName: Build buildah image
|
||||
@ -1,6 +1,12 @@
|
||||
FROM debian:12.5
|
||||
FROM docker.io/ubuntu:latest
|
||||
|
||||
RUN apt-get update && apt-get -y install inotify-tools
|
||||
# debug info
|
||||
# RUN lsb_release -a
|
||||
# RUN curl -k https://google.de
|
||||
RUN env
|
||||
# RUN curl -sSLk -x $HTTP_PROXY
|
||||
|
||||
RUN apt-get -y update && apt-get -y install inotify-tools
|
||||
RUN apt-get -y update && apt-get -y install haskell-stack git
|
||||
RUN apt-get -y update && apt-get -y install alex g++ happy libghc-zlib-dev libpq-dev libsodium-dev locales locales-all pkg-config
|
||||
RUN apt-get -y update && apt-get -y install llvm
|
||||
@ -26,7 +32,7 @@ RUN stack install yesod-bin
|
||||
RUN stack install hpack
|
||||
|
||||
ENV FRADRIVE_MAKE_TARGET=--start-backend
|
||||
ENTRYPOINT make -- ${FRADRIVE_MAKE_TARGET} STACK_ROOT="${STACK_ROOT}" IN_CONTAINER=true CONTAINER_FILE="${CONTAINER_FILE}" JOB="${JOB}"
|
||||
ENTRYPOINT make -- ${FRADRIVE_MAKE_TARGET} STACK_ROOT="${STACK_ROOT}" IN_CONTAINER=true CONTAINER_FILE="${CONTAINER_FILE}" JOB="${JOB}" SRC="${SRC}"
|
||||
|
||||
EXPOSE 3000/tcp
|
||||
EXPOSE 3443/tcp
|
||||
|
||||
@ -37,7 +37,11 @@ type WidgetSiteless = forall site. WidgetFor site ()
|
||||
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
-- IMPORTANT: Alert-Icons must be registered in alert-icons.js as well!!!
|
||||
-- IMPORTANT:
|
||||
-- All icons must be manually registered within the following files:
|
||||
-- - src/Utils/Icon.hs
|
||||
-- - assets/icon-src/fontawesome.json
|
||||
-- - frontend/src/icons.scss
|
||||
---------------------------------------------------------------------------
|
||||
data Icon
|
||||
= IconNew
|
||||
@ -136,8 +140,7 @@ data Icon
|
||||
| IconUserBadge -- something about user-avs, e.g. badge in-/valid
|
||||
| IconGlasses -- user must wear glasses while driving
|
||||
deriving (Eq, Ord, Enum, Bounded, Show, Read, Generic)
|
||||
deriving anyclass (Universe, Finite, NFData)
|
||||
|
||||
deriving anyclass (Universe, Finite, NFData)
|
||||
|
||||
iconText :: Icon -> Text
|
||||
iconText = camelToPathPiece' 1 . tshow
|
||||
@ -201,32 +204,32 @@ iconShortcuts = foldMap mkIcon (universeF :: [Icon])
|
||||
-- Some case are special, hence no Template Haskell here
|
||||
|
||||
isVisible :: Bool -> Markup
|
||||
-- ^ Display an icon that denotes that something™ is visible or invisible
|
||||
-- ^ Display an icon that denotes that somethingâ„¢ is visible or invisible
|
||||
isVisible True = icon IconVisible
|
||||
isVisible False = icon IconInvisible
|
||||
|
||||
hasComment :: Bool -> Markup
|
||||
-- ^ Display an icon that denotes that something™ has a comment or not
|
||||
-- ^ Display an icon that denotes that somethingâ„¢ has a comment or not
|
||||
hasComment True = icon IconCommentTrue
|
||||
hasComment False = icon IconCommentFalse
|
||||
|
||||
hasTickmark :: Bool -> Markup
|
||||
-- ^ Maybe display an icon that denotes that something™ is okay
|
||||
-- ^ Maybe display an icon that denotes that somethingâ„¢ is okay
|
||||
hasTickmark True = icon IconOK
|
||||
hasTickmark False = mempty
|
||||
|
||||
isBad :: Bool -> Markup
|
||||
-- ^ Maybe display an icon that denotes that something™ is bad
|
||||
-- ^ Maybe display an icon that denotes that somethingâ„¢ is bad
|
||||
isBad True = icon IconProblem
|
||||
isBad False = mempty
|
||||
|
||||
-- ^ Maybe display an icon that denotes that something™ is new
|
||||
-- ^ Maybe display an icon that denotes that somethingâ„¢ is new
|
||||
isNew :: Bool -> Markup
|
||||
isNew True = icon IconNew
|
||||
isNew False = mempty
|
||||
|
||||
-- DEPRECATED by Handler.Utils.updateAutomatic, which includes a helpful tooltip
|
||||
-- Maybe display an icon that denotes that something™ is NOT automagically updated or derived, but had been edited
|
||||
-- Maybe display an icon that denotes that somethingâ„¢ is NOT automagically updated or derived, but had been edited
|
||||
-- isAutomatic :: Bool -> Markup
|
||||
-- isAutomatic True = mempty -- icon IconMagic
|
||||
-- isAutomatic False = icon IconLocked -- IconEdit
|
||||
@ -262,9 +265,9 @@ iconWriteReadOnly False = icon IconVisible
|
||||
-- we implement them here just once for the first icon:
|
||||
--
|
||||
isVisibleWidget :: Bool -> WidgetSiteless
|
||||
-- ^ Widget having an icon that denotes that something™ is visible or invisible
|
||||
-- ^ Widget having an icon that denotes that somethingâ„¢ is visible or invisible
|
||||
isVisibleWidget = toWidget . isVisible
|
||||
|
||||
maybeIsVisibleWidget :: Maybe Bool -> WidgetSiteless
|
||||
-- ^ Maybe a widget with an icon that denotes that something™ is visible or invisible
|
||||
-- ^ Maybe a widget with an icon that denotes that somethingâ„¢ is visible or invisible
|
||||
maybeIsVisibleWidget = toWidget . foldMap isVisible
|
||||
|
||||
Loading…
Reference in New Issue
Block a user