Update UPAPI for Dedicated Gateway in Self Serve Portal #6388
Workflow file for this run
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 }} | |
endtoendemulator: | |
name: "End To End Emulator Tests" | |
# Temporarily disabled. This test needs to be rewritten in playwright | |
if: false | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- uses: southpolesteve/cosmos-emulator-github-action@v1 | |
- name: End to End Tests | |
run: | | |
npm ci | |
npm start & | |
npm run wait-for-server | |
npx jest -c ./jest.config.e2e.js --detectOpenHandles test/sql/container.spec.ts | |
shell: bash | |
env: | |
DATA_EXPLORER_ENDPOINT: "https://localhost:1234/explorer.html?platform=Emulator" | |
PLATFORM: "Emulator" | |
NODE_TLS_REJECT_UNAUTHORIZED: 0 | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: screenshots | |
path: failed-* | |
endtoend: | |
name: "E2E" | |
runs-on: ubuntu-latest | |
env: | |
NODE_TLS_REJECT_UNAUTHORIZED: 0 | |
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
strategy: | |
fail-fast: false | |
matrix: | |
test-file: | |
- ./test/cassandra/container.spec.ts | |
- ./test/graph/container.spec.ts | |
- ./test/sql/container.spec.ts | |
- ./test/mongo/container.spec.ts | |
- ./test/mongo/container32.spec.ts | |
- ./test/selfServe/selfServeExample.spec.ts | |
- ./test/sql/resourceToken.spec.ts | |
- ./test/tables/container.spec.ts | |
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: npm start & | |
- run: npm run wait-for-server | |
- name: ${{ matrix['test-file'] }} | |
run: | | |
# Run tests up to three times | |
for i in $(seq 1 3); do npx jest -c ./jest.config.playwright.js ${{ matrix['test-file'] }} && s=0 && break || s=$? && sleep 1; done; (exit $s) | |
shell: bash | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: screenshots | |
path: screenshots/ | |
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" |