Metamigo CI updates
This commit is contained in:
parent
7aa75317f5
commit
7a2a667aaf
10 changed files with 82 additions and 96 deletions
|
|
@ -83,6 +83,17 @@ metamigo-docker-release:
|
||||||
variables:
|
variables:
|
||||||
DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/metamigo
|
DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/metamigo
|
||||||
|
|
||||||
|
metamigo-frontend-docker-build:
|
||||||
|
extends: .docker-build
|
||||||
|
variables:
|
||||||
|
DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/metamigo-frontend
|
||||||
|
DOCKERFILE_PATH: ./apps/metamigo-frontend/Dockerfile
|
||||||
|
|
||||||
|
metamigo-frontend-docker-release:
|
||||||
|
extends: .docker-release
|
||||||
|
variables:
|
||||||
|
DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/metamigo-frontend
|
||||||
|
|
||||||
elasticsearch-docker-build:
|
elasticsearch-docker-build:
|
||||||
extends: .docker-build
|
extends: .docker-build
|
||||||
variables:
|
variables:
|
||||||
|
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
leafcutter-docker-build:
|
|
||||||
image: registry.gitlab.com/guardianproject-ops/docker-alpine-git:latest
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
stage: docker-build
|
|
||||||
variables:
|
|
||||||
DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/leafcutter
|
|
||||||
DOCKER_TAG: ${CI_COMMIT_SHORT_SHA}
|
|
||||||
script:
|
|
||||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
||||||
- cd apps/leafcutter && make docker/build-fresh-push
|
|
||||||
|
|
||||||
leafcutter-docker-release:
|
|
||||||
image: registry.gitlab.com/guardianproject-ops/docker-alpine-git:latest
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
stage: docker-release
|
|
||||||
variables:
|
|
||||||
DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/leafcutter
|
|
||||||
DOCKER_TAG: ${CI_COMMIT_SHORT_SHA}
|
|
||||||
DOCKER_TAG_NEW: ${CI_COMMIT_REF_NAME}
|
|
||||||
only:
|
|
||||||
- main
|
|
||||||
- develop
|
|
||||||
script:
|
|
||||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
||||||
- cd apps/leafcutter && make docker/add-tag
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
link-docker-build:
|
|
||||||
image: registry.gitlab.com/guardianproject-ops/docker-alpine-git:latest
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
stage: docker-build
|
|
||||||
variables:
|
|
||||||
DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/link
|
|
||||||
DOCKER_TAG: ${CI_COMMIT_SHORT_SHA}
|
|
||||||
script:
|
|
||||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
||||||
- cd apps/link && make docker/build-fresh-push
|
|
||||||
|
|
||||||
link-docker-release:
|
|
||||||
image: registry.gitlab.com/guardianproject-ops/docker-alpine-git:latest
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
stage: docker-release
|
|
||||||
variables:
|
|
||||||
DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/link
|
|
||||||
DOCKER_TAG: ${CI_COMMIT_SHORT_SHA}
|
|
||||||
DOCKER_TAG_NEW: ${CI_COMMIT_REF_NAME}
|
|
||||||
only:
|
|
||||||
- main
|
|
||||||
- develop
|
|
||||||
script:
|
|
||||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
||||||
- cd apps/link && make docker/add-tag
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
metamigo-docker-build:
|
|
||||||
image: registry.gitlab.com/guardianproject-ops/docker-alpine-git:latest
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
stage: docker-build
|
|
||||||
variables:
|
|
||||||
DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/metamigo
|
|
||||||
DOCKER_TAG: ${CI_COMMIT_SHORT_SHA}
|
|
||||||
script:
|
|
||||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
||||||
- cd apps/metamigo-cli && make docker/build-fresh-push
|
|
||||||
|
|
||||||
metamigo-docker-release:
|
|
||||||
image: registry.gitlab.com/guardianproject-ops/docker-alpine-git:latest
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
stage: docker-release
|
|
||||||
variables:
|
|
||||||
DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/metamigo
|
|
||||||
DOCKER_TAG: ${CI_COMMIT_SHORT_SHA}
|
|
||||||
DOCKER_TAG_NEW: ${CI_COMMIT_REF_NAME}
|
|
||||||
only:
|
|
||||||
- main
|
|
||||||
- develop
|
|
||||||
script:
|
|
||||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
||||||
- cd apps/metamigo-cli && make docker/add-tag
|
|
||||||
|
|
@ -9,10 +9,10 @@ elif [[ "$1" == "worker" ]]; then
|
||||||
echo "docker-entrypoint: starting worker"
|
echo "docker-entrypoint: starting worker"
|
||||||
exec dumb-init ./cli worker
|
exec dumb-init ./cli worker
|
||||||
elif [[ "$1" == "cli" ]]; then
|
elif [[ "$1" == "cli" ]]; then
|
||||||
echo "docker-entrypoint: starting frontend"
|
echo "docker-entrypoint: starting cli"
|
||||||
shift 1
|
shift 1
|
||||||
exec ./cli "$@"
|
exec ./cli "$@"
|
||||||
else
|
else
|
||||||
echo "docker-entrypoint: missing argument, one of: api, worker, frontend, cli"
|
echo "docker-entrypoint: missing argument, one of: api, worker, cli"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ module.exports = {
|
||||||
"eslint-config-link/profile/node",
|
"eslint-config-link/profile/node",
|
||||||
"eslint-config-link/profile/typescript",
|
"eslint-config-link/profile/typescript",
|
||||||
"eslint-config-link/profile/jest",
|
"eslint-config-link/profile/jest",
|
||||||
"next",
|
"eslint-config-next",
|
||||||
],
|
],
|
||||||
parserOptions: { tsconfigRootDir: __dirname },
|
parserOptions: { tsconfigRootDir: __dirname },
|
||||||
};
|
};
|
||||||
|
|
|
||||||
52
apps/metamigo-frontend/Dockerfile
Normal file
52
apps/metamigo-frontend/Dockerfile
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
FROM node:20 as base
|
||||||
|
|
||||||
|
FROM base AS builder
|
||||||
|
ARG APP_DIR=/opt/metamigo-frontend
|
||||||
|
RUN mkdir -p ${APP_DIR}/
|
||||||
|
RUN npm i -g turbo
|
||||||
|
WORKDIR ${APP_DIR}
|
||||||
|
COPY . .
|
||||||
|
RUN turbo prune --scope=@digiresilience/metamigo-frontend --docker
|
||||||
|
|
||||||
|
|
||||||
|
FROM base AS installer
|
||||||
|
ARG APP_DIR=/opt/metamigo-frontend
|
||||||
|
WORKDIR ${APP_DIR}
|
||||||
|
COPY .gitignore .gitignore
|
||||||
|
COPY --from=builder ${APP_DIR}/out/json/ .
|
||||||
|
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
||||||
|
RUN npm ci --omit=dev
|
||||||
|
|
||||||
|
COPY --from=builder ${APP_DIR}/out/full/ .
|
||||||
|
RUN npm i -g turbo
|
||||||
|
RUN turbo run build --filter=metamigo-frontend
|
||||||
|
|
||||||
|
FROM base AS runner
|
||||||
|
ARG APP_DIR=/opt/metamigo-frontend
|
||||||
|
WORKDIR ${APP_DIR}/
|
||||||
|
ARG BUILD_DATE
|
||||||
|
ARG VERSION
|
||||||
|
LABEL maintainer="Darren Clarke <darren@redaranj.com>"
|
||||||
|
LABEL org.label-schema.build-date=$BUILD_DATE
|
||||||
|
LABEL org.label-schema.version=$VERSION
|
||||||
|
ENV APP_DIR ${APP_DIR}
|
||||||
|
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
dumb-init
|
||||||
|
RUN mkdir -p ${APP_DIR}
|
||||||
|
RUN chown -R node ${APP_DIR}/
|
||||||
|
|
||||||
|
USER node
|
||||||
|
WORKDIR ${APP_DIR}
|
||||||
|
COPY --from=installer ${APP_DIR}/node_modules/ ./node_modules/
|
||||||
|
COPY --from=installer ${APP_DIR}/packages/ ./packages/
|
||||||
|
COPY --from=installer ${APP_DIR}/apps/metamigo-frontend/ ./apps/metamigo-frontend/
|
||||||
|
COPY --from=installer ${APP_DIR}/package.json ./package.json
|
||||||
|
USER root
|
||||||
|
WORKDIR ${APP_DIR}/apps/metamigo-frontend/
|
||||||
|
RUN chmod +x docker-entrypoint.sh
|
||||||
|
USER node
|
||||||
|
EXPOSE 3000
|
||||||
|
ENV PORT 3000
|
||||||
|
ENV NODE_ENV production
|
||||||
|
ENTRYPOINT ["/opt/metamigo-frontend/apps/metamigo-frontend/docker-entrypoint.sh"]
|
||||||
5
apps/metamigo-frontend/docker-entrypoint.sh
Normal file
5
apps/metamigo-frontend/docker-entrypoint.sh
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
echo "starting metamigo-frontend"
|
||||||
|
exec dumb-init npm run start
|
||||||
|
|
@ -197,18 +197,18 @@ services:
|
||||||
POSTGRES_USER: "root"
|
POSTGRES_USER: "root"
|
||||||
POSTGRES_DB: "metamigo"
|
POSTGRES_DB: "metamigo"
|
||||||
ports:
|
ports:
|
||||||
- 127.0.0.1:5433:5432
|
- 127.0.0.1:5435:5432
|
||||||
|
|
||||||
metamigo-api:
|
metamigo-api:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: ./apps/metamigo-cli/Dockerfile
|
dockerfile: ./apps/metamigo-cli/Dockerfile
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo-cli
|
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo
|
||||||
container_name: metamigo-api
|
container_name: metamigo-api
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
command: [ "api" ]
|
command: [ "api" ]
|
||||||
ports:
|
ports:
|
||||||
- 127.0.0.1:8004:3001
|
- 127.0.0.1:8003:3001
|
||||||
environment: *common-metamigo-variables
|
environment: *common-metamigo-variables
|
||||||
volumes:
|
volumes:
|
||||||
- ./signald-state:/signald
|
- ./signald-state:/signald
|
||||||
|
|
@ -223,13 +223,12 @@ services:
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo-frontend
|
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo-frontend
|
||||||
container_name: metamigo-frontend
|
container_name: metamigo-frontend
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
command: [ "frontend" ]
|
|
||||||
expose:
|
expose:
|
||||||
- "3000"
|
- "3000"
|
||||||
ports:
|
ports:
|
||||||
- 127.0.0.1:8002:3000
|
- 127.0.0.1:8002:3000
|
||||||
depends_on:
|
# depends_on:
|
||||||
- metamigo-api
|
# - metamigo-api
|
||||||
environment:
|
environment:
|
||||||
<<: *common-metamigo-variables
|
<<: *common-metamigo-variables
|
||||||
VIRTUAL_HOST: ${METAMIGO_VIRTUAL_HOST}
|
VIRTUAL_HOST: ${METAMIGO_VIRTUAL_HOST}
|
||||||
|
|
@ -239,7 +238,7 @@ services:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: ./apps/metamigo-cli/Dockerfile
|
dockerfile: ./apps/metamigo-cli/Dockerfile
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo-cli
|
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo
|
||||||
container_name: metamigo-worker
|
container_name: metamigo-worker
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
command: [ "worker" ]
|
command: [ "worker" ]
|
||||||
|
|
@ -276,7 +275,7 @@ services:
|
||||||
expose:
|
expose:
|
||||||
- "3000"
|
- "3000"
|
||||||
ports:
|
ports:
|
||||||
- "8003:3000"
|
- "8004:3000"
|
||||||
environment:
|
environment:
|
||||||
ZAMMAD_PROXY_URL: ${ZAMMAD_PROXY_URL}
|
ZAMMAD_PROXY_URL: ${ZAMMAD_PROXY_URL}
|
||||||
ZAMMAD_API_TOKEN: ${ZAMMAD_API_TOKEN}
|
ZAMMAD_API_TOKEN: ${ZAMMAD_API_TOKEN}
|
||||||
|
|
@ -302,7 +301,7 @@ services:
|
||||||
expose:
|
expose:
|
||||||
- "3000"
|
- "3000"
|
||||||
ports:
|
ports:
|
||||||
- "8004:3000"
|
- "8005:3000"
|
||||||
environment:
|
environment:
|
||||||
LINK_EMBEDDED: "true"
|
LINK_EMBEDDED: "true"
|
||||||
NEXTAUTH_URL: ${LINK_URL}
|
NEXTAUTH_URL: ${LINK_URL}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ export class NextAuthAdapter<TRepositories extends IMetamigoRepositories> {
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
async createUser(profile: UnsavedUser): Promise<SavedUser> {
|
async createUser(profile: UnsavedUser): Promise<SavedUser> {
|
||||||
// @ts-expect-error Typescript doesn't like lodash's omit()
|
// @ts-ignore Typescript doesn't like lodash's omit()
|
||||||
return this.repos.users.upsert(omit(profile, ["isActive", "id"]));
|
return this.repos.users.upsert(omit(profile, ["isActive", "id"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -142,7 +142,7 @@ export class NextAuthAdapter<TRepositories extends IMetamigoRepositories> {
|
||||||
|
|
||||||
async getSessionAndUser(
|
async getSessionAndUser(
|
||||||
sessionToken: string
|
sessionToken: string
|
||||||
): Promise<{ session: AdapterSession; user: any } | null> {
|
): Promise<{ session: AdapterSession; user: any; } | null> {
|
||||||
const session = await this.repos.sessions.findBy({ sessionToken });
|
const session = await this.repos.sessions.findBy({ sessionToken });
|
||||||
if (!session) return null;
|
if (!session) return null;
|
||||||
if (session && session.expires && new Date() > session.expires) {
|
if (session && session.expires && new Date() > session.expires) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue