Vector Embedding and Full Text Search (#2009) (#2011) #7132
This file contains 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: | |
- master | |
- hotfix/** | |
- release/** | |
pull_request: | |
branches: | |
- master | |
permissions: | |
id-token: write | |
contents: read | |
jobs: | |
codemetrics: | |
runs-on: ubuntu-latest | |
name: "Log Code Metrics" | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- run: npm ci | |
- run: node utils/codeMetrics.js | |
env: | |
CODE_METRICS_APP_ID: ${{ secrets.CODE_METRICS_APP_ID }} | |
compile: | |
runs-on: ubuntu-latest | |
name: "Compile TypeScript" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- run: npm ci | |
- run: npm run compile | |
- run: npm run compile:strict | |
format: | |
runs-on: ubuntu-latest | |
name: "Check Format" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- run: npm ci | |
- run: npm run format:check | |
lint: | |
runs-on: ubuntu-latest | |
name: "Lint" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- run: npm ci | |
- run: npm run lint | |
unittest: | |
runs-on: ubuntu-latest | |
name: "Unit Tests" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- run: npm ci | |
- run: npm run test | |
build: | |
runs-on: ubuntu-latest | |
name: "Build" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- run: npm ci | |
- run: npm run build:contracts | |
- name: Restore Build Cache | |
uses: actions/cache@v2 | |
with: | |
path: .cache | |
key: ${{ runner.os }}-build-cache | |
- run: npm run pack:prod | |
env: | |
NODE_OPTIONS: "--max-old-space-size=4096" | |
- run: cp -r ./Contracts ./dist/contracts | |
- run: cp -r ./configs ./dist/configs | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: dist | |
path: dist/ | |
- name: Upload build to preview blob storage | |
run: az storage blob upload-batch -d '$web' -s 'dist' --account-name cosmosexplorerpreview --destination-path "${{github.event.pull_request.head.sha || github.sha}}" --account-key="${PREVIEW_STORAGE_KEY}" --overwrite true | |
env: | |
PREVIEW_STORAGE_KEY: ${{ secrets.PREVIEW_STORAGE_KEY }} | |
- name: Upload preview config to blob storage | |
run: az storage blob upload -c '$web' -f ./preview/config.json --account-name cosmosexplorerpreview --name "${{github.event.pull_request.head.sha || github.sha}}/config.json" --account-key="${PREVIEW_STORAGE_KEY}" --overwrite true | |
env: | |
PREVIEW_STORAGE_KEY: ${{ secrets.PREVIEW_STORAGE_KEY }} | |
nuget: | |
name: Publish Nuget | |
if: github.ref == 'refs/heads/master' || contains(github.ref, 'hotfix/') || contains(github.ref, 'release/') | |
needs: [build] | |
runs-on: ubuntu-latest | |
env: | |
NUGET_SOURCE: ${{ secrets.NUGET_SOURCE }} | |
AZURE_DEVOPS_PAT: ${{ secrets.AZURE_DEVOPS_PAT }} | |
steps: | |
- uses: nuget/setup-nuget@v1 | |
with: | |
nuget-api-key: ${{ secrets.NUGET_API_KEY }} | |
- name: Download Dist Folder | |
uses: actions/download-artifact@v3 | |
with: | |
name: dist | |
- run: cp ./configs/prod.json config.json | |
- run: nuget sources add -Name "ADO" -Source "$NUGET_SOURCE" -UserName "[email protected]" -Password "$AZURE_DEVOPS_PAT" | |
- run: nuget pack -Version "2.0.0-github-${GITHUB_SHA}" | |
- run: nuget push -SkipDuplicate -Source "$NUGET_SOURCE" -ApiKey Az *.nupkg | |
- uses: actions/upload-artifact@v3 | |
name: packages | |
with: | |
path: "*.nupkg" | |
nugetmpac: | |
name: Publish Nuget MPAC | |
if: github.ref == 'refs/heads/master' || contains(github.ref, 'hotfix/') || contains(github.ref, 'release/') | |
needs: [build] | |
runs-on: ubuntu-latest | |
env: | |
NUGET_SOURCE: ${{ secrets.NUGET_SOURCE }} | |
AZURE_DEVOPS_PAT: ${{ secrets.AZURE_DEVOPS_PAT }} | |
steps: | |
- uses: nuget/setup-nuget@v1 | |
with: | |
nuget-api-key: ${{ secrets.NUGET_API_KEY }} | |
- name: Download Dist Folder | |
uses: actions/download-artifact@v3 | |
with: | |
name: dist | |
- run: cp ./configs/mpac.json config.json | |
- run: sed -i 's/Azure.Cosmos.DB.Data.Explorer/Azure.Cosmos.DB.Data.Explorer.MPAC/g' DataExplorer.nuspec | |
- run: nuget sources add -Name "ADO" -Source "$NUGET_SOURCE" -UserName "[email protected]" -Password "$AZURE_DEVOPS_PAT" | |
- run: nuget pack -Version "2.0.0-github-${GITHUB_SHA}" | |
- run: nuget push -SkipDuplicate -Source "$NUGET_SOURCE" -ApiKey Az *.nupkg | |
- uses: actions/upload-artifact@v3 | |
name: packages | |
with: | |
path: "*.nupkg" | |
playwright-tests: | |
name: "Run Playwright Tests (Shard ${{ matrix.shardIndex }} of ${{ matrix.shardTotal }})" | |
runs-on: ubuntu-latest | |
env: | |
NODE_TLS_REJECT_UNAUTHORIZED: 0 | |
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
strategy: | |
fail-fast: false | |
matrix: | |
shardIndex: [1, 2, 3, 4, 5, 6, 7, 8] | |
shardTotal: [8] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Az CLI login" | |
uses: azure/login@v1 | |
with: | |
client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- run: npm ci | |
- run: npx playwright install --with-deps | |
- name: Run test shard ${{ matrix['shardIndex'] }} of ${{ matrix['shardTotal']}} | |
run: npx playwright test --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }} | |
- name: Upload blob report to GitHub Actions Artifacts | |
if: ${{ !cancelled() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: blob-report-${{ matrix.shardIndex }} | |
path: blob-report | |
retention-days: 1 | |
merge-playwright-reports: | |
name: "Merge Playwright Reports" | |
# Merge reports after playwright-tests, even if some shards have failed | |
if: ${{ !cancelled() }} | |
needs: [playwright-tests] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Install dependencies | |
run: npm ci | |
- name: Download blob reports from GitHub Actions Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: all-blob-reports | |
pattern: blob-report-* | |
merge-multiple: true | |
- name: Merge into HTML Report | |
run: npx playwright merge-reports --reporter html ./all-blob-reports | |
- name: Upload HTML report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: html-report--attempt-${{ github.run_attempt }} | |
path: playwright-report | |
retention-days: 14 |