Skip to content

fix(provider-microsoft): cast contentId on polymorphic attachment $select (fixes #59) #90

fix(provider-microsoft): cast contentId on polymorphic attachment $select (fixes #59)

fix(provider-microsoft): cast contentId on polymorphic attachment $select (fixes #59) #90

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
actionlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: rhysd/actionlint@v1.7.11
workspace-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Install dependencies (npm ci with retry)
run: |
for attempt in 1 2 3; do
echo "npm ci attempt ${attempt}/3"
if npm ci; then
exit 0
fi
if [ "$attempt" -lt 3 ]; then
sleep $((attempt * 20))
fi
done
echo "npm ci failed after 3 attempts"
exit 1
- name: Build workspaces
run: npm run build
- name: Lint/typecheck workspaces
run: npm run lint
spec-coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Install dependencies (npm ci with retry)
run: |
for attempt in 1 2 3; do
echo "npm ci attempt ${attempt}/3"
if npm ci; then
exit 0
fi
if [ "$attempt" -lt 3 ]; then
sleep $((attempt * 20))
fi
done
echo "npm ci failed after 3 attempts"
exit 1
- name: Validate OpenSpec traceability coverage
run: npm run check:spec-coverage
server-json-contract:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Install dependencies (npm ci with retry)
run: |
for attempt in 1 2 3; do
echo "npm ci attempt ${attempt}/3"
if npm ci; then
exit 0
fi
if [ "$attempt" -lt 3 ]; then
sleep $((attempt * 20))
fi
done
echo "npm ci failed after 3 attempts"
exit 1
- name: Validate server.json version contract
run: npm run check:server-json
workspace-test:
runs-on: ubuntu-latest
needs: workspace-lint
strategy:
matrix:
node-version: [20, 22]
steps:
- uses: actions/checkout@v4
- name: Install native dependencies for keytar (OS keychain)
run: sudo apt-get update && sudo apt-get install -y libsecret-1-dev
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
- name: Install dependencies (npm ci with retry)
run: |
for attempt in 1 2 3; do
echo "npm ci attempt ${attempt}/3"
if npm ci; then
exit 0
fi
if [ "$attempt" -lt 3 ]; then
sleep $((attempt * 20))
fi
done
echo "npm ci failed after 3 attempts"
exit 1
- name: Build workspaces
run: npm run build
- name: Test workspaces
run: npm run test:run
codeql:
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
steps:
- uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: javascript-typescript
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Install dependencies (npm ci with retry)
run: |
for attempt in 1 2 3; do
echo "npm ci attempt ${attempt}/3"
if npm ci; then
exit 0
fi
if [ "$attempt" -lt 3 ]; then
sleep $((attempt * 20))
fi
done
echo "npm ci failed after 3 attempts"
exit 1
- name: Build workspaces
run: npm run build
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
semgrep:
uses: ./.github/workflows/semgrep.yml
permissions:
actions: read
contents: read
security-events: write
coverage:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
needs: workspace-lint
steps:
- uses: actions/checkout@v4
- name: Install native dependencies for keytar (OS keychain)
run: sudo apt-get update && sudo apt-get install -y libsecret-1-dev
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- name: Install dependencies (npm ci with retry)
run: |
for attempt in 1 2 3; do
echo "npm ci attempt ${attempt}/3"
if npm ci; then
exit 0
fi
if [ "$attempt" -lt 3 ]; then
sleep $((attempt * 20))
fi
done
echo "npm ci failed after 3 attempts"
exit 1
- name: Build workspaces
run: npm run build
- name: Test with coverage
run: npx vitest run --coverage --reporter=default --reporter=junit --outputFile=coverage/junit.xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage/lcov.info
use_oidc: true
fail_ci_if_error: false
- name: Upload test results to Codecov
if: ${{ !cancelled() }}
uses: codecov/test-results-action@v1
with:
files: ./coverage/junit.xml
use_oidc: true
fail_ci_if_error: false
gemini-manifest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Validate Gemini extension manifest
run: node scripts/check-gemini-extension-manifest.mjs