diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..a70ed2e72ed10864ae22b5ed217d40c3755d002a --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,19 @@ +services: + - docker:dind + +stages: + - build + - deploy + +build: + stage: build + variables: + IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG + script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker build -t $IMAGE_TAG . + - docker push $IMAGE_TAG + only: + - main + - develop + - /^release-.*$/ \ No newline at end of file diff --git a/api/dockerfile b/api/dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..885dc3f026dfb8375b2cd858661e3c31dd9aca09 --- /dev/null +++ b/api/dockerfile @@ -0,0 +1,30 @@ +FROM node:12.13-alpine As development + +WORKDIR /usr/src/app + +COPY package*.json ./ + +RUN npm ci --development + +COPY . . + +RUN npm run build + +RUN npm run test + +FROM node:12.13-alpine as production + +ARG NODE_ENV=production +ENV NODE_ENV=${NODE_ENV} + +WORKDIR /usr/src/app + +COPY package*.json ./ + +RUN npm ci --production + +COPY . . + +COPY --from=development /usr/src/app/dist ./dist + +CMD ["node", "dist/main"] \ No newline at end of file diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts index f3a15d7680b7bb4f0d167b565160f8e010f25d13..ee877e21e4f6c94938ffe786a68b198bc429a779 100644 --- a/api/src/engine/connectors/datashield/main.connector.ts +++ b/api/src/engine/connectors/datashield/main.connector.ts @@ -1,5 +1,5 @@ import { HttpService } from "@nestjs/axios"; -import { IEngineOptions, IEngineService } from "src/engine/engine.interface"; +import { IEngineOptions, IEngineService } from "src/engine/engine.interfaces"; export default class DataShieldService implements IEngineService { constructor(private readonly options: IEngineOptions, private readonly httpService: HttpService) { } diff --git a/api/src/engine/connectors/exareme/main.connector.ts b/api/src/engine/connectors/exareme/main.connector.ts index e80647b1c6fa3cfd4c5e03d3315a1b8e1abb2ebd..b8a6ae8d6bdb640549172a78968d9a9cfe231a92 100644 --- a/api/src/engine/connectors/exareme/main.connector.ts +++ b/api/src/engine/connectors/exareme/main.connector.ts @@ -1,5 +1,5 @@ import { HttpService } from "@nestjs/axios"; -import { IEngineOptions, IEngineService } from "src/engine/engine.interface"; +import { IEngineOptions, IEngineService } from "src/engine/engine.interfaces"; export default class ExaremeService implements IEngineService { constructor(private readonly options: IEngineOptions, private readonly httpService: HttpService) { } diff --git a/api/src/engine/engine.controller.ts b/api/src/engine/engine.controller.ts index 503edea819501aa28b12574822a5182ae0b86718..5c9e3c59b04377fc4b4bf0e325a4ca1cd2cfd3fb 100644 --- a/api/src/engine/engine.controller.ts +++ b/api/src/engine/engine.controller.ts @@ -1,7 +1,7 @@ import { HttpService } from '@nestjs/axios'; import { Controller, Get, Inject } from '@nestjs/common'; import { ENGINE_SERVICE } from './engine.constants'; -import { IEngineService } from './engine.interface'; +import { IEngineService } from './engine.interfaces'; @Controller() export class EngineController { diff --git a/api/src/engine/engine.interface.ts b/api/src/engine/engine.interfaces.ts similarity index 59% rename from api/src/engine/engine.interface.ts rename to api/src/engine/engine.interfaces.ts index 073b05a3f933ea9d4b9ab1d26ea840b7f31e5018..271cbb1da4556360a61bbad0c38c009a510bdb8f 100644 --- a/api/src/engine/engine.interface.ts +++ b/api/src/engine/engine.interfaces.ts @@ -1,6 +1,3 @@ -import { AxiosResponse } from "axios"; -import { Observable } from "rxjs"; - export interface IEngineOptions { type: string; } diff --git a/api/src/engine/engine.module.ts b/api/src/engine/engine.module.ts index 2490e51b9327b2241cbd246206173a953d7a91a8..bd998daf8db49063f9e0174309e443f09074e91c 100644 --- a/api/src/engine/engine.module.ts +++ b/api/src/engine/engine.module.ts @@ -4,7 +4,7 @@ import { GraphQLModule } from '@nestjs/graphql'; import { join } from 'path'; import { ENGINE_MODULE_OPTIONS, ENGINE_SERVICE } from './engine.constants'; import { EngineController } from './engine.controller'; -import { IEngineOptions, IEngineService } from './engine.interface'; +import { IEngineOptions, IEngineService } from './engine.interfaces'; import { EngineResolver } from './engine.resolver'; @Global() diff --git a/api/src/engine/engine.resolver.ts b/api/src/engine/engine.resolver.ts index 94f911825d5548eabea84382f7f5727e77e68092..e2bcfa5c76bf3823f895ff90dd77a92a8238c47a 100644 --- a/api/src/engine/engine.resolver.ts +++ b/api/src/engine/engine.resolver.ts @@ -1,7 +1,7 @@ import { Inject } from '@nestjs/common'; import { Query, Resolver } from '@nestjs/graphql'; import { ENGINE_SERVICE } from './engine.constants'; -import { IEngineService } from './engine.interface'; +import { IEngineService } from './engine.interfaces'; @Resolver() export class EngineResolver {