chore: add beta flag for cond routing #20565
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: | |
pull_request: | |
types: [opened, reopened] | |
jobs: | |
# JOB to run change detection | |
changes: | |
runs-on: ubuntu-latest | |
# Set job outputs to values from filter step | |
outputs: | |
backend: ${{ steps.filter.outputs.backend }} | |
frontend: ${{ steps.filter.outputs.frontend }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: dorny/paths-filter@v3 | |
id: filter | |
with: | |
filters: | | |
frontend: | |
- __tests__/** | |
- shared/** | |
- frontend/** | |
backend: | |
- __tests__/** | |
- shared/** | |
- src/** | |
- package.json | |
- package-lock.json | |
install: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- name: Cache Node modules | |
uses: actions/cache@v2 | |
with: | |
path: '**/node_modules' | |
key: ${{ runner.OS }}-node-modules-${{ hashFiles('**/package-lock.json') }} | |
- run: npm ci | |
build: | |
needs: install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- run: mkdir -p build-output/ | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
# Load cached node_modules | |
- name: Cache Node modules | |
uses: actions/cache@v2 | |
with: | |
path: '**/node_modules' | |
key: ${{ runner.OS }}-node-modules-${{ hashFiles('**/package-lock.json') }} | |
- run: npm run build | |
env: | |
NODE_OPTIONS: '--max-old-space-size=4096' | |
AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE: 1 | |
- name: Upload build files | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: build-output | |
path: | | |
package*.json | |
dist/ | |
frontend_test: | |
needs: [changes, install] | |
# if: ${{ needs.changes.outputs.frontend == 'true' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
# Load cached node_modules | |
- name: Cache Node modules | |
uses: actions/cache@v2 | |
with: | |
path: '**/node_modules' | |
key: ${{ runner.OS }}-node-modules-${{ hashFiles('**/package-lock.json') }} | |
- name: Configure Datadog Test Visibility | |
uses: datadog/test-visibility-github-action@v1.0.5 | |
with: | |
languages: js | |
service-name: ${{ secrets.DD_SERVICE }} | |
api-key: ${{ secrets.DD_API_KEY }} | |
- name: Run frontend test | |
env: | |
DD_TAGS: layer:frontend | |
NODE_OPTIONS: --max-old-space-size=4096 -r ${{ env.DD_TRACE_PACKAGE }} | |
AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE: 1 | |
run: npm run test:frontend | |
frontend_lint: | |
needs: [changes, install] | |
if: ${{ needs.changes.outputs.frontend == 'true' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
# Load cached node_modules | |
- name: Cache Node modules | |
uses: actions/cache@v2 | |
with: | |
path: '**/node_modules' | |
key: ${{ runner.OS }}-node-modules-${{ hashFiles('**/package-lock.json') }} | |
- run: npm run lint:frontend | |
backend_test: | |
needs: [changes, install, build] | |
# if: ${{ needs.changes.outputs.backend == 'true' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/download-artifact@v4 | |
if: always() | |
with: | |
name: build-output | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
# Load cached node_modules | |
- name: Cache Node modules | |
uses: actions/cache@v2 | |
with: | |
path: '**/node_modules' | |
key: ${{ runner.OS }}-node-modules-${{ hashFiles('**/package-lock.json') }} | |
- run: npm ci --prefix serverless/virus-scanner | |
- name: Configure Datadog Test Visibility | |
uses: datadog/test-visibility-github-action@v1.0.5 | |
with: | |
languages: js | |
service-name: ${{ secrets.DD_SERVICE }} | |
api-key: ${{ secrets.DD_API_KEY }} | |
- run: npm run test:backend:ci | |
env: | |
DD_TAGS: layer:backend | |
NODE_OPTIONS: --max-old-space-size=4096 -r ${{ env.DD_TRACE_PACKAGE }} | |
AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE: 1 | |
- name: Coveralls | |
uses: coverallsapp/github-action@v2 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
allow-empty: true | |
backend_lint: | |
needs: [changes, install] | |
if: ${{ needs.changes.outputs.backend == 'true' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
# Load cached node_modules | |
- name: Cache Node modules | |
uses: actions/cache@v2 | |
with: | |
path: '**/node_modules' | |
key: ${{ runner.OS }}-node-modules-${{ hashFiles('**/package-lock.json') }} | |
- run: npm run lint-ci | |
- run: npm_config_mode=yes npx lockfile-lint --type npm --path package.json --validate-https --allowed-hosts npm |