mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-08 14:32:50 +00:00
refactor: move node and builder images
This commit is contained in:
7
.changeset/pretty-timers-complain.md
Normal file
7
.changeset/pretty-timers-complain.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
'@openstapps/projectmanagement': major
|
||||||
|
'@openstapps/builder-image': major
|
||||||
|
'@openstapps/node-image': major
|
||||||
|
---
|
||||||
|
|
||||||
|
Move images to separate packages
|
||||||
@@ -12,7 +12,7 @@ include:
|
|||||||
- local: /frontend/app/.gitlab-ci.yml
|
- local: /frontend/app/.gitlab-ci.yml
|
||||||
- local: /.gitlab/publishing.gitlab-ci.yml
|
- local: /.gitlab/publishing.gitlab-ci.yml
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_TAG
|
- if: '$CI_COMMIT_MESSAGE =~ /ci: publish release$/'
|
||||||
when: always
|
when: always
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
@@ -76,10 +76,10 @@ build:
|
|||||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||||
variables:
|
variables:
|
||||||
DEPLOY_ID: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
|
DEPLOY_ID: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
|
||||||
- if: $CI_COMMIT_BRANCH == 'main' || $CI_COMMIT_TAG =~ /\d+\.\d+\.\d+$/
|
- if: $CI_COMMIT_BRANCH == 'main'
|
||||||
variables:
|
variables:
|
||||||
DEPLOY_ID: production
|
DEPLOY_ID: production
|
||||||
- if: $CI_COMMIT_BRANCH == 'develop' || $CI_COMMIT_TAG =~ /-next\.\d+$/
|
- if: $CI_COMMIT_BRANCH == 'develop'
|
||||||
variables:
|
variables:
|
||||||
DEPLOY_ID: staging
|
DEPLOY_ID: staging
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ unit:
|
|||||||
coverage_format: cobertura
|
coverage_format: cobertura
|
||||||
path: coverage.xml
|
path: coverage.xml
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'main' || $CI_COMMIT_BRANCH == 'develop' || $CI_COMMIT_TAG
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'main' || $CI_COMMIT_BRANCH == 'develop'
|
||||||
|
|
||||||
audit:
|
audit:
|
||||||
stage: audit
|
stage: audit
|
||||||
@@ -124,7 +124,7 @@ audit:
|
|||||||
script:
|
script:
|
||||||
- pnpm audit --prod
|
- pnpm audit --prod
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'develop' || $CI_COMMIT_TAG
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'develop'
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
- if: $CI_COMMIT_BRANCH == 'main'
|
- if: $CI_COMMIT_BRANCH == 'main'
|
||||||
allow_failure: false
|
allow_failure: false
|
||||||
|
|||||||
@@ -35,6 +35,20 @@ publish image:
|
|||||||
DEPLOY_DIR: .deploy/backend
|
DEPLOY_DIR: .deploy/backend
|
||||||
- IMAGE_NAME: proxy
|
- IMAGE_NAME: proxy
|
||||||
DEPLOY_DIR: .deploy/proxy
|
DEPLOY_DIR: .deploy/proxy
|
||||||
|
- IMAGE_NAME: api
|
||||||
|
DEPLOY_DIR: .deploy/api-cli
|
||||||
|
- IMAGE_NAME: minimal-connector
|
||||||
|
DEPLOY_DIR: .deploy/minimal-connector
|
||||||
|
- IMAGE_NAME: minimal-plugin
|
||||||
|
DEPLOY_DIR: .deploy/minimal-plugin
|
||||||
|
- IMAGE_NAME: node
|
||||||
|
DEPLOY_DIR: configuration/node-image
|
||||||
|
- IMAGE_NAME: builder
|
||||||
|
DEPLOY_DIR: configuration/builder-image
|
||||||
|
- IMAGE_NAME: app-builder
|
||||||
|
DEPLOY_DIR: configuration/app-builder-image
|
||||||
|
- IMAGE_NAME: app
|
||||||
|
DEPLOY_DIR: frontend/app
|
||||||
|
|
||||||
publish packages:
|
publish packages:
|
||||||
stage: publish
|
stage: publish
|
||||||
|
|||||||
@@ -19,4 +19,4 @@ integration:
|
|||||||
junit:
|
junit:
|
||||||
- backend/backend/coverage/integration-report-junit.xml
|
- backend/backend/coverage/integration-report-junit.xml
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'main' || $CI_COMMIT_BRANCH == 'develop' || $CI_COMMIT_TAG
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'main' || $CI_COMMIT_BRANCH == 'develop'
|
||||||
|
|||||||
114
configuration/app-builder-image/Dockerfile
Normal file
114
configuration/app-builder-image/Dockerfile
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
### Set base image
|
||||||
|
FROM ubuntu:20.04
|
||||||
|
|
||||||
|
LABEL version="2.0.0" \
|
||||||
|
description="Build environment for the StApps app." \
|
||||||
|
maintainer="Jovan Krunić <krunic@uni-frankfurt.de>"
|
||||||
|
|
||||||
|
### Configure versions to install
|
||||||
|
ENV ANDROID_APIS="android-30" \
|
||||||
|
ANDROID_BUILD_TOOLS_VERSION="30.0.2" \
|
||||||
|
NPM_VERSION="^6.0.0" \
|
||||||
|
IONIC_VERSION="^6.0.0" \
|
||||||
|
CORDOVA_RES_VERSION="latest" \
|
||||||
|
### Configure download URLs
|
||||||
|
ANDROID_SDK_TOOLS_DOWNLOAD_URL="https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip" \
|
||||||
|
GOOGLE_SIGNING_KEY_URL="https://dl-ssl.google.com/linux/linux_signing_key.pub" \
|
||||||
|
GOOGLE_CHROME_REPOSITORY_URL="http://dl.google.com/linux/chrome/deb/" \
|
||||||
|
### Android SDK path
|
||||||
|
ANDROID_SDK_ROOT="/opt/android-sdk" \
|
||||||
|
### Installation files
|
||||||
|
SCRIPTS_DIRECTORY="scripts" \
|
||||||
|
NODE_SETUP_SCRIPT="node_setup.sh" \
|
||||||
|
TMP_PROJECT_NAME="tmp-project"
|
||||||
|
|
||||||
|
### Set $PATH
|
||||||
|
#ENV PATH=$ANDROID_SDK_ROOT/cmdline-tools/:$ANDROID_SDK_ROOT/cmdline-tools/bin:$ANDROID_SDK_ROOT/platform-tools:$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH
|
||||||
|
ENV PATH=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/platform-tools:$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH
|
||||||
|
|
||||||
|
### Replace shell with bash
|
||||||
|
RUN rm /bin/sh && ln -s /bin/bash /bin/sh && \
|
||||||
|
### Set debconf to run non-interactively
|
||||||
|
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
|
||||||
|
|
||||||
|
### Install locales and base dependencies
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
locales \
|
||||||
|
apt-transport-https \
|
||||||
|
build-essential \
|
||||||
|
ca-certificates \
|
||||||
|
curl \
|
||||||
|
libssl-dev \
|
||||||
|
git \
|
||||||
|
gradle \
|
||||||
|
ca-certificates-java \
|
||||||
|
python \
|
||||||
|
python3-pip \
|
||||||
|
software-properties-common \
|
||||||
|
ssh \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
gpg-agent \
|
||||||
|
jq \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
### Install Java Development Kit 11
|
||||||
|
RUN add-apt-repository -y ppa:openjdk-r/ppa && apt-get update && \
|
||||||
|
apt-get install --no-install-recommends -y openjdk-11-jdk \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
### Setup the locale
|
||||||
|
RUN sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||||
|
locale-gen en_US.UTF-8
|
||||||
|
ENV LANG=en_US.UTF-8 \
|
||||||
|
LANGUAGE=en_US \
|
||||||
|
LC_ALL=en_US.UTF-8
|
||||||
|
RUN dpkg-reconfigure --frontend noninteractive locales
|
||||||
|
|
||||||
|
### add chrome repository
|
||||||
|
RUN wget -q -O - $GOOGLE_SIGNING_KEY_URL | apt-key add -
|
||||||
|
RUN echo "deb $GOOGLE_CHROME_REPOSITORY_URL stable main" >> /etc/apt/sources.list.d/google.list
|
||||||
|
|
||||||
|
### Install Chrome
|
||||||
|
RUN apt-get update -y && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
### Install chrome and virtual frame buffer
|
||||||
|
google-chrome-stable xvfb && \
|
||||||
|
### Clear apt cache
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
### Workaround to fix cacerts problem (Ubuntu):
|
||||||
|
### https://stackoverflow.com/questions/6784463/error-trustanchors-parameter-must-be-non-empty
|
||||||
|
RUN rm /etc/ssl/certs/java/cacerts && \
|
||||||
|
update-ca-certificates -f
|
||||||
|
|
||||||
|
### Install android
|
||||||
|
RUN curl $ANDROID_SDK_TOOLS_DOWNLOAD_URL > /tmp/android-sdk.zip && \
|
||||||
|
unzip /tmp/android-sdk.zip && \
|
||||||
|
mkdir -p $ANDROID_SDK_ROOT/cmdline-tools && \
|
||||||
|
mv cmdline-tools $ANDROID_SDK_ROOT/cmdline-tools/tools && \
|
||||||
|
### Add licences (for "auto-accept licenses")
|
||||||
|
yes | sdkmanager --licenses && \
|
||||||
|
### Install platform tools
|
||||||
|
sdkmanager "platforms;$ANDROID_APIS" "build-tools;$ANDROID_BUILD_TOOLS_VERSION"
|
||||||
|
|
||||||
|
### Copy scripts directory into the tmp folder, so it's available to the following commands
|
||||||
|
COPY $SCRIPTS_DIRECTORY/$NODE_SETUP_SCRIPT /tmp/
|
||||||
|
|
||||||
|
RUN bash /tmp/$NODE_SETUP_SCRIPT && apt-get install -y nodejs && \
|
||||||
|
### Install wanted npm version
|
||||||
|
npm install -g --unsafe-perm npm@$NPM_VERSION && \
|
||||||
|
### Install needed global npm packages
|
||||||
|
npm install -g --unsafe-perm @ionic/cli@$IONIC_VERSION cordova-res@$CORDOVA_RES_VERSION
|
||||||
|
|
||||||
|
RUN cd / && ionic start $TMP_PROJECT_NAME blank --type=angular --capacitor --no-git --no-interactive && \
|
||||||
|
cd $TMP_PROJECT_NAME && ionic capacitor add android && export NG_CLI_ANALYTICS=ci && ionic capacitor build android --no-open && \
|
||||||
|
cd android && ./gradlew assembleDebug && \
|
||||||
|
cd / && rm -rf $TMP_PROJECT_NAME
|
||||||
|
|
||||||
|
### Set working directory
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
CMD [""]
|
||||||
20
configuration/app-builder-image/package.json
Normal file
20
configuration/app-builder-image/package.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "@openstapps/app-builder-image",
|
||||||
|
"version": "3.0.0-next.3",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"license": "GPL-3.0-only",
|
||||||
|
"author": "Karl-Philipp Wulfert <krlwlfrt@gmail.com>",
|
||||||
|
"contributors": [
|
||||||
|
"Anselm Stordeur <anselmstordeur@gmail.com>",
|
||||||
|
"Jovan Krunić <jovan.krunic@gmail.com>",
|
||||||
|
"Michel Jonathan Schmitz",
|
||||||
|
"Rainer Killinger <mail-openstapps@killinger.co>",
|
||||||
|
"Thea Schöbl <dev@theaninova.de>"
|
||||||
|
],
|
||||||
|
"files": [
|
||||||
|
"Dockerfile",
|
||||||
|
"README.md",
|
||||||
|
"CHANGELOG.md"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
FROM docker/compose
|
FROM docker/compose
|
||||||
|
|
||||||
ARG NODE_VERSION="14"
|
ARG NODE_VERSION="18"
|
||||||
|
|
||||||
RUN apk update && apk add nodejs npm git jq curl
|
RUN apk update && apk add nodejs npm git jq curl
|
||||||
|
|
||||||
20
configuration/builder-image/package.json
Normal file
20
configuration/builder-image/package.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "@openstapps/builder-image",
|
||||||
|
"version": "3.0.0-next.3",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"license": "GPL-3.0-only",
|
||||||
|
"author": "Karl-Philipp Wulfert <krlwlfrt@gmail.com>",
|
||||||
|
"contributors": [
|
||||||
|
"Anselm Stordeur <anselmstordeur@gmail.com>",
|
||||||
|
"Jovan Krunić <jovan.krunic@gmail.com>",
|
||||||
|
"Michel Jonathan Schmitz",
|
||||||
|
"Rainer Killinger <mail-openstapps@killinger.co>",
|
||||||
|
"Thea Schöbl <dev@theaninova.de>"
|
||||||
|
],
|
||||||
|
"files": [
|
||||||
|
"Dockerfile",
|
||||||
|
"README.md",
|
||||||
|
"CHANGELOG.md"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:14-alpine
|
FROM node:18-alpine
|
||||||
|
|
||||||
RUN apk update && apk add git curl jq && mkdir -p /opt
|
RUN apk update && apk add git curl jq && mkdir -p /opt
|
||||||
|
|
||||||
20
configuration/node-image/package.json
Normal file
20
configuration/node-image/package.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "@openstapps/node-image",
|
||||||
|
"version": "3.0.0-next.3",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"license": "GPL-3.0-only",
|
||||||
|
"author": "Karl-Philipp Wulfert <krlwlfrt@gmail.com>",
|
||||||
|
"contributors": [
|
||||||
|
"Anselm Stordeur <anselmstordeur@gmail.com>",
|
||||||
|
"Jovan Krunić <jovan.krunic@gmail.com>",
|
||||||
|
"Michel Jonathan Schmitz",
|
||||||
|
"Rainer Killinger <mail-openstapps@killinger.co>",
|
||||||
|
"Thea Schöbl <dev@theaninova.de>"
|
||||||
|
],
|
||||||
|
"files": [
|
||||||
|
"Dockerfile",
|
||||||
|
"README.md",
|
||||||
|
"CHANGELOG.md"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,105 +1,3 @@
|
|||||||
image: registry.gitlab.com/openstapps/projectmanagement/node
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- npm ci
|
|
||||||
|
|
||||||
default:
|
|
||||||
tags:
|
|
||||||
- performance
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
- test
|
|
||||||
- maintenance
|
|
||||||
- audit
|
|
||||||
- publish
|
|
||||||
- deploy
|
|
||||||
|
|
||||||
npm build:
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- npm run build
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- lib
|
|
||||||
|
|
||||||
npm test:
|
|
||||||
script:
|
|
||||||
- npm run test
|
|
||||||
stage: test
|
|
||||||
|
|
||||||
docker image builder:
|
|
||||||
image: registry.gitlab.com/openstapps/projectmanagement/builder
|
|
||||||
stage: build
|
|
||||||
only:
|
|
||||||
variables:
|
|
||||||
- $BUILD_IMAGES == "true"
|
|
||||||
variables:
|
|
||||||
DOCKER_DRIVER: overlay2
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
script:
|
|
||||||
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com
|
|
||||||
- docker build -t registry.gitlab.com/openstapps/projectmanagement/builder -f images/builder/Dockerfile .
|
|
||||||
- docker push registry.gitlab.com/openstapps/projectmanagement/builder
|
|
||||||
tags:
|
|
||||||
- secrecy
|
|
||||||
|
|
||||||
docker image node:
|
|
||||||
image: registry.gitlab.com/openstapps/projectmanagement/builder
|
|
||||||
stage: build
|
|
||||||
only:
|
|
||||||
variables:
|
|
||||||
- $BUILD_IMAGES == "true"
|
|
||||||
variables:
|
|
||||||
DOCKER_DRIVER: overlay2
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
script:
|
|
||||||
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com/openstapps/projectmanagement/
|
|
||||||
- docker build -t registry.gitlab.com/openstapps/projectmanagement/node -f images/node/Dockerfile images/node
|
|
||||||
- docker push registry.gitlab.com/openstapps/projectmanagement/node
|
|
||||||
tags:
|
|
||||||
- secrecy
|
|
||||||
|
|
||||||
docker image cypress:
|
|
||||||
image: registry.gitlab.com/openstapps/projectmanagement/builder
|
|
||||||
stage: build
|
|
||||||
only:
|
|
||||||
variables:
|
|
||||||
- $BUILD_IMAGES == "true"
|
|
||||||
variables:
|
|
||||||
DOCKER_DRIVER: overlay2
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
script:
|
|
||||||
- export CHROME_VERSION=$(curl -fsSL https://versionhistory.googleapis.com/v1/chrome/platforms/linux/channels/stable/versions | jq -r '.versions[0].version')
|
|
||||||
- export FIREFOX_VERSION=$(curl -fsSL https://product-details.mozilla.org/1.0/firefox_versions.json | jq -r '.LATEST_FIREFOX_VERSION')
|
|
||||||
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com/openstapps/projectmanagement/
|
|
||||||
- docker build --build-arg CHROME_VERSION=$CHROME_VERSION --build-arg FIREFOX_VERSION=$FIREFOX_VERSION -t registry.gitlab.com/openstapps/projectmanagement/cypress -f images/cypress/Dockerfile images/cypress
|
|
||||||
- docker push registry.gitlab.com/openstapps/projectmanagement/cypress
|
|
||||||
tags:
|
|
||||||
- secrecy
|
|
||||||
|
|
||||||
npm audit:
|
|
||||||
allow_failure: true
|
|
||||||
except:
|
|
||||||
- schedules
|
|
||||||
script:
|
|
||||||
- npm audit
|
|
||||||
stage: audit
|
|
||||||
|
|
||||||
scheduled npm audit:
|
|
||||||
only:
|
|
||||||
- schedules
|
|
||||||
except:
|
|
||||||
variables:
|
|
||||||
- $MAINTENANCE_MODE
|
|
||||||
- $RENOVATE
|
|
||||||
script:
|
|
||||||
- npm audit --production
|
|
||||||
stage: audit
|
|
||||||
|
|
||||||
tidy:
|
tidy:
|
||||||
script:
|
script:
|
||||||
- node lib/cli tidy
|
- node lib/cli tidy
|
||||||
@@ -131,32 +29,6 @@ unlabel:
|
|||||||
tags:
|
tags:
|
||||||
- secrecy
|
- secrecy
|
||||||
|
|
||||||
pages:
|
|
||||||
stage: deploy
|
|
||||||
script:
|
|
||||||
- npm run documentation
|
|
||||||
- mv docs public
|
|
||||||
only:
|
|
||||||
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- public
|
|
||||||
|
|
||||||
npm package:
|
|
||||||
dependencies:
|
|
||||||
- npm build
|
|
||||||
tags:
|
|
||||||
- secrecy
|
|
||||||
stage: publish
|
|
||||||
script:
|
|
||||||
- echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
|
|
||||||
- npm publish
|
|
||||||
only:
|
|
||||||
- /^v[0-9]+.[0-9]+.[0-9]+$/
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- lib
|
|
||||||
|
|
||||||
renovate:
|
renovate:
|
||||||
image: renovate/renovate:slim
|
image: renovate/renovate:slim
|
||||||
services:
|
services:
|
||||||
|
|||||||
@@ -1,101 +0,0 @@
|
|||||||
# WARNING: this file was autogenerated by generate-browser-image.js
|
|
||||||
# using
|
|
||||||
# yarn add:browser -- 14.19.0 --chrome=100.0.4896.88 --firefox=99.0.1 --edge
|
|
||||||
#
|
|
||||||
# build args added afterwards
|
|
||||||
#
|
|
||||||
FROM cypress/base:14.21.1
|
|
||||||
|
|
||||||
ARG CHROME_VERSION="unknown"
|
|
||||||
ARG FIREFOX_VERSION="unknown"
|
|
||||||
|
|
||||||
USER root
|
|
||||||
|
|
||||||
RUN node --version
|
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get install -y \
|
|
||||||
fonts-liberation \
|
|
||||||
git \
|
|
||||||
libcurl4 \
|
|
||||||
libcurl3-gnutls \
|
|
||||||
libcurl3-nss \
|
|
||||||
xdg-utils \
|
|
||||||
wget \
|
|
||||||
curl \
|
|
||||||
# firefox dependencies
|
|
||||||
bzip2 \
|
|
||||||
# add codecs needed for video playback in firefox
|
|
||||||
# https://github.com/cypress-io/cypress-docker-images/issues/150
|
|
||||||
mplayer \
|
|
||||||
# edge dependencies
|
|
||||||
gnupg \
|
|
||||||
dirmngr \
|
|
||||||
# clean up
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
&& apt-get clean
|
|
||||||
|
|
||||||
# install libappindicator3-1 - not included with Debian 11
|
|
||||||
RUN wget --no-verbose -O /usr/src/libappindicator3-1_0.4.92-7_amd64.deb "http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_amd64.deb" && \
|
|
||||||
dpkg -i /usr/src/libappindicator3-1_0.4.92-7_amd64.deb ; \
|
|
||||||
apt update && \
|
|
||||||
apt --fix-broken install -y && \
|
|
||||||
rm -rf /var/lib/apt/lists/* && \
|
|
||||||
apt-get clean && \
|
|
||||||
rm -f /usr/src/libappindicator3-1_0.4.92-7_amd64.deb
|
|
||||||
|
|
||||||
# install Chrome browser
|
|
||||||
RUN wget --no-verbose -O /usr/src/google-chrome-stable_current_amd64.deb "http://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROME_VERSION}-1_amd64.deb" && \
|
|
||||||
dpkg -i /usr/src/google-chrome-stable_current_amd64.deb ; \
|
|
||||||
apt update && \
|
|
||||||
apt --fix-broken install -y && \
|
|
||||||
rm -rf /var/lib/apt/lists/* && \
|
|
||||||
apt-get clean && \
|
|
||||||
rm -f /usr/src/google-chrome-stable_current_amd64.deb
|
|
||||||
|
|
||||||
# "fake" dbus address to prevent errors
|
|
||||||
# https://github.com/SeleniumHQ/docker-selenium/issues/87
|
|
||||||
ENV DBUS_SESSION_BUS_ADDRESS=/dev/null
|
|
||||||
|
|
||||||
# install Firefox browser
|
|
||||||
RUN wget --no-verbose -O /tmp/firefox.tar.bz2 "https://download-installer.cdn.mozilla.net/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.bz2" && \
|
|
||||||
tar -C /opt -xjf /tmp/firefox.tar.bz2 && \
|
|
||||||
rm /tmp/firefox.tar.bz2 && \
|
|
||||||
ln -fs /opt/firefox/firefox /usr/bin/firefox
|
|
||||||
|
|
||||||
RUN echo "Downloading Latest Edge version..."
|
|
||||||
|
|
||||||
## Setup Edge
|
|
||||||
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
|
|
||||||
RUN install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
|
|
||||||
RUN sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge-dev.list'
|
|
||||||
RUN rm microsoft.gpg
|
|
||||||
|
|
||||||
## Install Edge
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get install -y microsoft-edge-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
&& apt-get clean
|
|
||||||
|
|
||||||
# Add a link to the browser that allows Cypress to find it
|
|
||||||
RUN ln -s /usr/bin/microsoft-edge /usr/bin/edge
|
|
||||||
|
|
||||||
# versions of local tools
|
|
||||||
RUN echo " node version: $(node -v) \n" \
|
|
||||||
"npm version: $(npm -v) \n" \
|
|
||||||
"yarn version: $(yarn -v) \n" \
|
|
||||||
"debian version: $(cat /etc/debian_version) \n" \
|
|
||||||
"Chrome version: $(google-chrome --version) \n" \
|
|
||||||
"Firefox version: $(firefox --version) \n" \
|
|
||||||
"Edge version: $(edge --version) \n" \
|
|
||||||
"git version: $(git --version) \n" \
|
|
||||||
"whoami: $(whoami) \n"
|
|
||||||
|
|
||||||
# a few environment variables to make NPM installs easier
|
|
||||||
# good colors for most applications
|
|
||||||
ENV TERM=xterm
|
|
||||||
# avoid million NPM install messages
|
|
||||||
ENV npm_config_loglevel=warn
|
|
||||||
# allow installing when the main user is root
|
|
||||||
ENV npm_config_unsafe_perm=true
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM registry.gitlab.com/openstapps/projectmanagement/node
|
FROM registry.gitlab.com/openstapps/projectmanagement/node:v18
|
||||||
|
|
||||||
WORKDIR /minimal-connector
|
WORKDIR /minimal-connector
|
||||||
ENTRYPOINT ["node", "lib/cli.js", "run", "--"]
|
ENTRYPOINT ["node", "lib/cli.js", "run", "--"]
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsup-node --dts",
|
"build": "tsup-node --dts",
|
||||||
|
"deploy": "pnpm --prod --filter=@openstapps/minimal-connector deploy ../../.deploy/minimal-connector",
|
||||||
"format": "prettier . -c --ignore-path ../../.gitignore",
|
"format": "prettier . -c --ignore-path ../../.gitignore",
|
||||||
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
|
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
|
||||||
"lint": "eslint --ext .ts src/",
|
"lint": "eslint --ext .ts src/",
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
nodes/
|
*
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
version: '3.7'
|
version: '3.7'
|
||||||
services:
|
services:
|
||||||
database:
|
database:
|
||||||
image: registry.gitlab.com/openstapps/database:master
|
image: registry.gitlab.com/openstapps/openstapps/database:2.0.0
|
||||||
volumes:
|
volumes:
|
||||||
- ./database:/usr/share/elasticsearch/data
|
- ./database:/usr/share/elasticsearch/data
|
||||||
expose:
|
expose:
|
||||||
@@ -9,7 +9,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
backend:
|
backend:
|
||||||
image: registry.gitlab.com/openstapps/backend/default:core-0.31
|
image: registry.gitlab.com/openstapps/openstapps/backend:3.0.0-next.0
|
||||||
environment:
|
environment:
|
||||||
ES_ADDR: "http://database:9200"
|
ES_ADDR: "http://database:9200"
|
||||||
NODE_CONFIG_ENV: "elasticsearch"
|
NODE_CONFIG_ENV: "elasticsearch"
|
||||||
@@ -27,7 +27,7 @@ services:
|
|||||||
- database
|
- database
|
||||||
|
|
||||||
api:
|
api:
|
||||||
image: registry.gitlab.com/openstapps/api/copy:core-0.23
|
image: registry.gitlab.com/openstapps/openstapps/api:3.0.0-next.0
|
||||||
links:
|
links:
|
||||||
- "backend"
|
- "backend"
|
||||||
|
|
||||||
|
|||||||
@@ -1,70 +0,0 @@
|
|||||||
image: registry.gitlab.com/openstapps/projectmanagement/node
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
- audit
|
|
||||||
- publish
|
|
||||||
- deploy
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- npm ci
|
|
||||||
|
|
||||||
npm build:
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- npm run build
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- lib
|
|
||||||
|
|
||||||
audit:
|
|
||||||
allow_failure: true
|
|
||||||
except:
|
|
||||||
- schedules
|
|
||||||
script:
|
|
||||||
- npm audit
|
|
||||||
stage: audit
|
|
||||||
|
|
||||||
scheduled-audit:
|
|
||||||
only:
|
|
||||||
- schedules
|
|
||||||
script:
|
|
||||||
- npm audit --audit-level=high
|
|
||||||
stage: audit
|
|
||||||
|
|
||||||
docker image:
|
|
||||||
image: registry.gitlab.com/openstapps/projectmanagement/builder:latest
|
|
||||||
dependencies:
|
|
||||||
- npm build
|
|
||||||
stage: publish
|
|
||||||
variables:
|
|
||||||
DOCKER_DRIVER: overlay2
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
script:
|
|
||||||
- export CORE_VERSION=$(openstapps-projectmanagement get-used-version @openstapps/core)
|
|
||||||
- export VERSION=$(echo -n "$CI_BUILD_REF_NAME" | cut -c 2-)
|
|
||||||
- export IMAGETAG_BASE=$CI_REGISTRY_IMAGE
|
|
||||||
- export IMAGETAG_CORE_VERSION=$IMAGETAG_BASE:core-$CORE_VERSION
|
|
||||||
- export IMAGETAG_VERSION=$IMAGETAG_BASE:$VERSION
|
|
||||||
- export IMAGETAG_LATEST=$IMAGETAG_BASE:latest
|
|
||||||
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
|
|
||||||
- docker build -t $IMAGETAG_LATEST -t $IMAGETAG_VERSION -t $IMAGETAG_CORE_VERSION .
|
|
||||||
- docker push $IMAGETAG_BASE
|
|
||||||
only:
|
|
||||||
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
|
|
||||||
except:
|
|
||||||
- branches
|
|
||||||
tags:
|
|
||||||
- docker
|
|
||||||
|
|
||||||
pages:
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- public
|
|
||||||
only:
|
|
||||||
- /^v[0-9]+\.[0-9]+\.[0-9]+$/
|
|
||||||
script:
|
|
||||||
- npm run documentation
|
|
||||||
- mv docs public
|
|
||||||
stage: deploy
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM registry.gitlab.com/openstapps/projectmanagement/node
|
FROM registry.gitlab.com/openstapps/projectmanagement/node:v18
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
ENTRYPOINT ["node", "lib/cli.js"]
|
ENTRYPOINT ["node", "lib/cli.js"]
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsup-node --dts",
|
"build": "tsup-node --dts",
|
||||||
|
"deploy": "pnpm --prod --filter=@openstapps/minimal-plugin deploy ../../.deploy/minimal-plugin",
|
||||||
"format": "prettier . -c --ignore-path ../../.gitignore",
|
"format": "prettier . -c --ignore-path ../../.gitignore",
|
||||||
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
|
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
|
||||||
"lint": "eslint --ext .ts src/",
|
"lint": "eslint --ext .ts src/",
|
||||||
|
|||||||
@@ -19,4 +19,4 @@ e2e:
|
|||||||
- BROWSER: chrome
|
- BROWSER: chrome
|
||||||
- BROWSER: firefox
|
- BROWSER: firefox
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'main' || $CI_COMMIT_BRANCH == 'develop' || $CI_COMMIT_TAG
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'main' || $CI_COMMIT_BRANCH == 'develop'
|
||||||
|
|||||||
@@ -1,114 +1,13 @@
|
|||||||
### Set base image
|
# Creates a docker image with only the app as an executable unit
|
||||||
FROM ubuntu:20.04
|
# Dependencies need to be installed beforehand
|
||||||
|
# Needs to be build beforehand
|
||||||
|
FROM node:18-alpine
|
||||||
|
|
||||||
LABEL version="2.0.0" \
|
|
||||||
description="Build environment for the StApps app." \
|
|
||||||
maintainer="Jovan Krunić <krunic@uni-frankfurt.de>"
|
|
||||||
|
|
||||||
### Configure versions to install
|
|
||||||
ENV ANDROID_APIS="android-30" \
|
|
||||||
ANDROID_BUILD_TOOLS_VERSION="30.0.2" \
|
|
||||||
NPM_VERSION="^6.0.0" \
|
|
||||||
IONIC_VERSION="^6.0.0" \
|
|
||||||
CORDOVA_RES_VERSION="latest" \
|
|
||||||
### Configure download URLs
|
|
||||||
ANDROID_SDK_TOOLS_DOWNLOAD_URL="https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip" \
|
|
||||||
GOOGLE_SIGNING_KEY_URL="https://dl-ssl.google.com/linux/linux_signing_key.pub" \
|
|
||||||
GOOGLE_CHROME_REPOSITORY_URL="http://dl.google.com/linux/chrome/deb/" \
|
|
||||||
### Android SDK path
|
|
||||||
ANDROID_SDK_ROOT="/opt/android-sdk" \
|
|
||||||
### Installation files
|
|
||||||
SCRIPTS_DIRECTORY="scripts" \
|
|
||||||
NODE_SETUP_SCRIPT="node_setup.sh" \
|
|
||||||
TMP_PROJECT_NAME="tmp-project"
|
|
||||||
|
|
||||||
### Set $PATH
|
|
||||||
#ENV PATH=$ANDROID_SDK_ROOT/cmdline-tools/:$ANDROID_SDK_ROOT/cmdline-tools/bin:$ANDROID_SDK_ROOT/platform-tools:$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH
|
|
||||||
ENV PATH=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/platform-tools:$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH
|
|
||||||
|
|
||||||
### Replace shell with bash
|
|
||||||
RUN rm /bin/sh && ln -s /bin/bash /bin/sh && \
|
|
||||||
### Set debconf to run non-interactively
|
|
||||||
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
|
|
||||||
|
|
||||||
### Install locales and base dependencies
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get install -y --no-install-recommends \
|
|
||||||
locales \
|
|
||||||
apt-transport-https \
|
|
||||||
build-essential \
|
|
||||||
ca-certificates \
|
|
||||||
curl \
|
|
||||||
libssl-dev \
|
|
||||||
git \
|
|
||||||
gradle \
|
|
||||||
ca-certificates-java \
|
|
||||||
python \
|
|
||||||
python3-pip \
|
|
||||||
software-properties-common \
|
|
||||||
ssh \
|
|
||||||
unzip \
|
|
||||||
wget \
|
|
||||||
gpg-agent \
|
|
||||||
jq \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
### Install Java Development Kit 11
|
|
||||||
RUN add-apt-repository -y ppa:openjdk-r/ppa && apt-get update && \
|
|
||||||
apt-get install --no-install-recommends -y openjdk-11-jdk \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
### Setup the locale
|
|
||||||
RUN sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
|
|
||||||
locale-gen en_US.UTF-8
|
|
||||||
ENV LANG=en_US.UTF-8 \
|
|
||||||
LANGUAGE=en_US \
|
|
||||||
LC_ALL=en_US.UTF-8
|
|
||||||
RUN dpkg-reconfigure --frontend noninteractive locales
|
|
||||||
|
|
||||||
### add chrome repository
|
|
||||||
RUN wget -q -O - $GOOGLE_SIGNING_KEY_URL | apt-key add -
|
|
||||||
RUN echo "deb $GOOGLE_CHROME_REPOSITORY_URL stable main" >> /etc/apt/sources.list.d/google.list
|
|
||||||
|
|
||||||
### Install Chrome
|
|
||||||
RUN apt-get update -y && \
|
|
||||||
apt-get install -y --no-install-recommends \
|
|
||||||
### Install chrome and virtual frame buffer
|
|
||||||
google-chrome-stable xvfb && \
|
|
||||||
### Clear apt cache
|
|
||||||
apt-get clean && \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
### Workaround to fix cacerts problem (Ubuntu):
|
|
||||||
### https://stackoverflow.com/questions/6784463/error-trustanchors-parameter-must-be-non-empty
|
|
||||||
RUN rm /etc/ssl/certs/java/cacerts && \
|
|
||||||
update-ca-certificates -f
|
|
||||||
|
|
||||||
### Install android
|
|
||||||
RUN curl $ANDROID_SDK_TOOLS_DOWNLOAD_URL > /tmp/android-sdk.zip && \
|
|
||||||
unzip /tmp/android-sdk.zip && \
|
|
||||||
mkdir -p $ANDROID_SDK_ROOT/cmdline-tools && \
|
|
||||||
mv cmdline-tools $ANDROID_SDK_ROOT/cmdline-tools/tools && \
|
|
||||||
### Add licences (for "auto-accept licenses")
|
|
||||||
yes | sdkmanager --licenses && \
|
|
||||||
### Install platform tools
|
|
||||||
sdkmanager "platforms;$ANDROID_APIS" "build-tools;$ANDROID_BUILD_TOOLS_VERSION"
|
|
||||||
|
|
||||||
### Copy scripts directory into the tmp folder, so it's available to the following commands
|
|
||||||
COPY $SCRIPTS_DIRECTORY/$NODE_SETUP_SCRIPT /tmp/
|
|
||||||
|
|
||||||
RUN bash /tmp/$NODE_SETUP_SCRIPT && apt-get install -y nodejs && \
|
|
||||||
### Install wanted npm version
|
|
||||||
npm install -g --unsafe-perm npm@$NPM_VERSION && \
|
|
||||||
### Install needed global npm packages
|
|
||||||
npm install -g --unsafe-perm @ionic/cli@$IONIC_VERSION cordova-res@$CORDOVA_RES_VERSION
|
|
||||||
|
|
||||||
RUN cd / && ionic start $TMP_PROJECT_NAME blank --type=angular --capacitor --no-git --no-interactive && \
|
|
||||||
cd $TMP_PROJECT_NAME && ionic capacitor add android && export NG_CLI_ANALYTICS=ci && ionic capacitor build android --no-open && \
|
|
||||||
cd android && ./gradlew assembleDebug && \
|
|
||||||
cd / && rm -rf $TMP_PROJECT_NAME
|
|
||||||
|
|
||||||
### Set working directory
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
COPY www/ /app/www
|
||||||
|
COPY package.json /app
|
||||||
|
|
||||||
CMD [""]
|
EXPOSE 8100
|
||||||
|
|
||||||
|
RUN npm install -g http-server
|
||||||
|
CMD http-server www --p 8100
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
# Creates a docker image with only the app as an executable unit
|
|
||||||
# Dependencies need to be installed beforehand
|
|
||||||
# Needs to be build beforehand
|
|
||||||
# docker build -t registry.gitlab.com/openstapps/app/executable:core-x.y -f Dockerfile.Executable .
|
|
||||||
FROM node:14-alpine
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
COPY . /app
|
|
||||||
|
|
||||||
# To use ng directly
|
|
||||||
ENV PATH /app/node_modules/.bin:$PATH
|
|
||||||
|
|
||||||
EXPOSE 8100
|
|
||||||
|
|
||||||
# Because the dependencies were installed from the builder-Image,
|
|
||||||
# or locally, we need to rebuild node-sass library
|
|
||||||
RUN npm rebuild node-sass
|
|
||||||
|
|
||||||
# Starts the app
|
|
||||||
CMD ng run app:serve --host=0.0.0.0 --port=8100
|
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
"format:fix": "dotenv -c -- turbo run format:fix",
|
"format:fix": "dotenv -c -- turbo run format:fix",
|
||||||
"lint": "dotenv -c -- turbo run lint",
|
"lint": "dotenv -c -- turbo run lint",
|
||||||
"lint:fix": "dotenv -c -- turbo run lint:fix",
|
"lint:fix": "dotenv -c -- turbo run lint:fix",
|
||||||
"publish-packages": "pnpm changeset version && pnpm syncpack:fix && pnpm install && git add . && git commit -m \"refactor: update changelog\" && git push && pnpm changeset tag && git push --follow-tags",
|
"publish-packages": "pnpm changeset version && pnpm syncpack:fix && pnpm install && git add . && git commit -m \"refactor: update changelog\n\nci: publish release\" && git push && pnpm changeset tag && git push --follow-tags",
|
||||||
"syncpack": "syncpack list-mismatches && syncpack lint-semver-ranges --types dev,peer,prod",
|
"syncpack": "syncpack list-mismatches && syncpack lint-semver-ranges --types dev,peer,prod",
|
||||||
"syncpack:fix": "syncpack format && syncpack fix-mismatches",
|
"syncpack:fix": "syncpack format && syncpack fix-mismatches",
|
||||||
"test": "trap 'node coverage.mjs' EXIT && dotenv -c -- turbo run test --filter=!@openstapps/app",
|
"test": "trap 'node coverage.mjs' EXIT && dotenv -c -- turbo run test --filter=!@openstapps/app",
|
||||||
|
|||||||
12
packages/api-cli/Dockerfile
Normal file
12
packages/api-cli/Dockerfile
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
FROM registry.gitlab.com/openstapps/projectmanagement/node:v18
|
||||||
|
|
||||||
|
USER root
|
||||||
|
RUN apk add --update python3 py3-pip make g++ gcompat
|
||||||
|
|
||||||
|
USER node
|
||||||
|
ADD --chown=node:node . /app
|
||||||
|
ENV NODE_ENV=production
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
EXPOSE 3000
|
||||||
|
ENTRYPOINT ["node", "app.js"]
|
||||||
@@ -21,11 +21,13 @@
|
|||||||
"files": [
|
"files": [
|
||||||
"app.js",
|
"app.js",
|
||||||
"lib",
|
"lib",
|
||||||
|
"Dockerfile",
|
||||||
"README.md",
|
"README.md",
|
||||||
"CHANGELOG.md"
|
"CHANGELOG.md"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsup-node",
|
"build": "tsup-node",
|
||||||
|
"deploy": "pnpm --prod --filter=@openstapps/api-cli deploy ../../.deploy/api-cli",
|
||||||
"format": "prettier . -c --ignore-path ../../.gitignore",
|
"format": "prettier . -c --ignore-path ../../.gitignore",
|
||||||
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
|
"format:fix": "prettier --write . --ignore-path ../../.gitignore",
|
||||||
"lint": "tsc --noEmit && eslint --ext .ts src/",
|
"lint": "tsc --noEmit && eslint --ext .ts src/",
|
||||||
|
|||||||
Reference in New Issue
Block a user