fix(provider-microsoft): cast contentId on polymorphic attachment $select (fixes #59) #90
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |