Skip to content

Merge remote-tracking branch 'origin/dev' into feat/we-flux-sidebar-i… #4262

Merge remote-tracking branch 'origin/dev' into feat/we-flux-sidebar-i…

Merge remote-tracking branch 'origin/dev' into feat/we-flux-sidebar-i… #4262

Workflow file for this run

name: Tests
on:
push:
pull_request:
jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.15.0
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: 'pnpm'
- name: Detect branch
id: branch
run: |
BRANCH="${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}"
echo "name=$BRANCH" >> "$GITHUB_OUTPUT"
if git ls-remote --exit-code --heads \
https://github.com/coasys/ad4m.git "$BRANCH" >/dev/null 2>&1; then
echo "ad4m_branch=$BRANCH" >> "$GITHUB_OUTPUT"
echo "✅ Found matching AD4M branch: $BRANCH"
else
echo "ad4m_branch=dev" >> "$GITHUB_OUTPUT"
echo "ℹ️ No matching AD4M branch — using dev"
fi
- name: Clone AD4M
run: |
git clone --depth 1 --single-branch \
--branch "${{ steps.branch.outputs.ad4m_branch }}" \
https://github.com/coasys/ad4m.git ad4m
- name: Get AD4M commit hash
id: ad4m-hash
run: |
HASH=$(cd ad4m && git rev-parse HEAD)
echo "hash=$HASH" >> "$GITHUB_OUTPUT"
- name: Cache AD4M built outputs
id: ad4m-cache
uses: actions/cache@v4
with:
path: |
ad4m/node_modules
ad4m/core/lib
ad4m/connect/dist
ad4m/ad4m-hooks/helpers/lib
ad4m/ad4m-hooks/react/lib
ad4m/ad4m-hooks/vue/lib
key: ad4m-sdk-${{ steps.ad4m-hash.outputs.hash }}
- name: Install & build AD4M packages
if: steps.ad4m-cache.outputs.cache-hit != 'true'
run: |
cd ad4m
npm i -g pnpm 2>/dev/null || true
pnpm install --no-frozen-lockfile
cd core && pnpm exec tsc && pnpm run bundle && cd ..
cd connect && pnpm run build && cd ..
[ -f ad4m-hooks/helpers/tsconfig.json ] && (cd ad4m-hooks/helpers && pnpm exec tsc) || echo "Skipping ad4m-hooks/helpers"
[ -f ad4m-hooks/react/tsconfig.json ] && (cd ad4m-hooks/react && pnpm exec tsc) || echo "Skipping ad4m-hooks/react"
[ -f ad4m-hooks/vue/tsconfig.json ] && (cd ad4m-hooks/vue && pnpm exec tsc) || echo "Skipping ad4m-hooks/vue"
- name: Override AD4M packages with local builds
run: |
node -e "
const pkg = require('./package.json');
pkg.pnpm = pkg.pnpm || {};
pkg.pnpm.overrides = pkg.pnpm.overrides || {};
pkg.pnpm.overrides['@coasys/ad4m'] = 'file:./ad4m/core';
pkg.pnpm.overrides['@coasys/ad4m-connect'] = 'file:./ad4m/connect';
pkg.pnpm.overrides['@coasys/hooks-helpers'] = 'file:./ad4m/ad4m-hooks/helpers';
pkg.pnpm.overrides['@coasys/ad4m-react-hooks'] = 'file:./ad4m/ad4m-hooks/react';
pkg.pnpm.overrides['@coasys/ad4m-vue-hooks'] = 'file:./ad4m/ad4m-hooks/vue';
require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\n');
"
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Lint
run: pnpm lint
- name: Build
run: NODE_OPTIONS='--max-old-space-size=4096' pnpm build
- name: Type check
run: pnpm typecheck
- name: Test
run: pnpm test --filter @coasys/flux-api