Skip to content

Document extended NM client architecture #5

Document extended NM client architecture

Document extended NM client architecture #5

Workflow file for this run

name: CI
on:
push:
branches:
- master
pull_request:
branches:
- '*'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
env:
CI: true
B2B_FLAVOUR: PREOPS
B2B_ENDPOINT: https://b2b-proxy.4me.im/
B2B_XSD_REMOTE_URL: https://wsdl.b2B-proxy.4me.im/27.0.0.tar.gz
jobs:
check_fmt:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js 24
uses: actions/setup-node@v6
with:
node-version: 24
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Run oxfmt --check
run: pnpm format:ci
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js 24
uses: actions/setup-node@v6
with:
node-version: 24
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Run oxlint
run: pnpm lint:ci
typecheck:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js 24
uses: actions/setup-node@v6
with:
node-version: 24
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Run TypeScript Check
run: pnpm typecheck
check-build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js 24
uses: actions/setup-node@v6
with:
node-version: 24
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Build Project
run: pnpm build
dedupe-check:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js 24
uses: actions/setup-node@v6
with:
node-version: 24
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Check for Duplicate Dependencies
run: pnpm dedupe --check
test:
needs: [lint, typecheck, check-build, dedupe-check]
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22, 24, 26]
env:
B2B_API_KEY_ID: ${{ secrets.B2B_API_KEY_ID }}
B2B_API_SECRET_KEY: ${{ secrets.B2B_API_SECRET_KEY }}
steps:
- name: Checkout Repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Cache B2B XSD
id: cache-xsd
uses: actions/cache@v5
with:
path: b2b-xsd
key: ${{ runner.os }}-b2b-xsd-${{ hashFiles('scripts/downloadWSDL.ts') }}-${{ env.B2B_XSD_REMOTE_URL }}
- name: Download B2B WSDL
run: pnpm downloadWSDL
- name: Run test suite
run: pnpm test:ci
env:
REAL_B2B_CONNECTIONS: ${{ matrix.node-version == '24' && env.B2B_API_KEY_ID != '' && '1' || '' }}
- name: Upload coverage
uses: codecov/codecov-action@v5
if: matrix.node-version == '24' && env.B2B_API_KEY_ID != ''
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
directory: ./coverage