Skip to content

Add message for instrument creation problems #1852

Add message for instrument creation problems

Add message for instrument creation problems #1852

Workflow file for this run

name: Test
env:
NODE_VERSION: 18.x
on:
pull_request:
branches:
- master
jobs:
install-and-cache:
name: Run install and cache
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Cache node_modules
id: cached-node-modules
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}-${{ env.NODE_VERSION }}
- name: Install dependencies
if: steps.cached-node-modules.outputs.cache-hit != 'true'
run: npm ci
eslint:
name: eslint
needs: [install-and-cache]
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Cache node_modules
id: cached-node-modules
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}-${{ env.NODE_VERSION }}
- name: run eslint
run: npm run lint
unit_tests:
name: Unit tests
needs: [install-and-cache]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Restore node_modules
id: cached-node-modules
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}-${{ env.NODE_VERSION }}
- name: Unit tests
run: npm run test
build:
name: Build
runs-on: ubuntu-latest
needs: [install-and-cache]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Restore node_modules
id: cached-node-modules
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}-${{ env.NODE_VERSION }}
- name: Build
run: npm run build
api_tests:
name: API tests
needs: [install-and-cache]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Restore node_modules
id: cached-node-modules
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}-${{ env.NODE_VERSION }}
- name: API tests
env:
MONGODB_URI: mongodb://localhost:27017/scicat
EXPRESS_SESSION_SECRET: a_scicat_secret
JWT_SECRET: a_scicat_secret
PORT: 3000
HTTP_MAX_REDIRECTS: 5
HTTP_TIMEOUT: 5000
JWT_EXPIRES_IN: 3600
LOGGING_DISABLED: True
# NOTE: The SITE variable is set to PSI because of the PublishedData test.
# Testing /register endpoint expects to have it as PSI for that specific scenario.
# Old backend was modifying this at runtime but with NestJS we need to investigate little bit more if there is a bit better and more elegant solution.
SITE: PSI
PID_PREFIX: PID.SAMPLE.PREFIX
DOI_PREFIX: DOI.SAMPLE.PREFIX
METADATA_KEYS_RETURN_LIMIT: 100
METADATA_PARENT_INSTANCES_RETURN_LIMIT: 100
ADMIN_GROUPS: admin,ingestor,archivemanager
CREATE_DATASET_GROUPS: group1,group2,group3
DELETE_GROUPS: archivemanager
ACCESS_GROUPS_STATIC_VALUES: "ess"
CREATE_DATASET_WITH_PID_GROUPS: "group2,group3"
DATASET_CREATION_VALIDATION_ENABLED: true
DATASET_CREATION_VALIDATION_REGEX: "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
# Start mongo container and app before running api tests
run: |
cp CI/ESS/docker-compose.api.yaml docker-compose.yaml
docker-compose up --build -d
npm run test:api
e2e_tests:
name: E2E Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Run stack in docker-compose
run: |
cp CI/E2E/docker-compose.yaml docker-compose.yaml
docker-compose pull
docker-compose build --no-cache
docker-compose up &
- name: Checkout frontend repo
uses: actions/checkout@v4
with:
repository: scicatproject/frontend
path: frontend
fetch-depth: 1
- name: Run Cypress tests
uses: cypress-io/github-action@v6
with:
working-directory: frontend
config-file: CI/ESS/e2e/cypress.github.ts
install-command: npm install --omit peer
browser: chrome
- uses: actions/upload-artifact@v3
if: failure()
with:
name: cypress-screenshots
path: frontend/cypress/screenshots/
- uses: actions/upload-artifact@v3
if: failure()
with:
name: cypress-videos
path: frontend/cypress/videos/