Skip to content

New sdk release

New sdk release #1979

Workflow file for this run

name: Test
on:
pull_request:
branches:
- master
env:
NODE_VERSION: 18.x
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@v4
with:
node-version: 18.x
- name: Cache node_modules
id: cached-node-modules
uses: actions/cache@v4
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@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Cache node_modules
id: cached-node-modules
uses: actions/cache@v4
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}-${{ env.NODE_VERSION }}
- name: run eslint
run: npm run lint
test:
name: Run tests
runs-on: ubuntu-latest
needs: [install-and-cache]
steps:
- name: Check out
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Cache node_modules
id: cached-node-modules
uses: actions/cache@v4
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
- name: Test
run: |
npm run -- test --code-coverage
npm run build
# save pr number for later use
# (see https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)
- name: Save PR number
run: |
echo ${{ github.event.number }} > ./coverage/PR
- uses: actions/upload-artifact@v4
with:
name: coverage
path: coverage/
e2etests:
name: Run E2E Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
# These settings optimize memory and file handling for Elasticsearch,
# preventing common issues related to system limits running on github workflow.
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Run docker-compose
run: |
cp CI/e2e/docker-compose.e2e.yaml docker-compose.yaml
docker compose pull
docker compose build --no-cache
docker compose up -d
- name: Run Cypress tests
uses: cypress-io/github-action@v6
with:
config-file: cypress.config.ts
install-command: npm install --omit peer
browser: chrome
- name: docker logs
if: ${{ failure() }}
run: |
docker compose logs es01
docker compose logs backend
- name: Stop docker-compose
if: ${{ !cancelled() }}
run: |
docker compose down -v
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: cypress-screenshots
path: cypress/screenshots
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: cypress-videos
path: cypress/videos