CollectionAsync: use unique string keys to index _asyncTemplateItems … #45594
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: Lint | |
concurrency: | |
group: wf-${{github.event.pull_request.number || github.sha}}-${{github.workflow}} | |
cancel-in-progress: true | |
on: | |
pull_request: | |
paths-ignore: | |
- 'apps/**/*.md' | |
push: | |
branches: [25_1] | |
env: | |
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_TOKEN }} | |
NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} | |
jobs: | |
Renovation: | |
runs-on: devextreme-shr2 | |
timeout-minutes: 60 | |
steps: | |
- name: Get sources | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- uses: pnpm/action-setup@v3 | |
with: | |
version: 9 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: | | |
${{ env.STORE_PATH }} | |
.nx/cache | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store | |
- name: Install dependencies | |
run: | | |
corepack enable | |
pnpm install | |
- name: Compile renovation | |
working-directory: ./packages/devextreme | |
run: | | |
pnpx nx compile:r | |
# Remove package install after upgrade to TypeScript >= 4.6 | |
- name: Lint renovation | |
working-directory: ./packages/devextreme | |
run: pnpx nx lint-renovation | |
TS: | |
runs-on: devextreme-shr2 | |
timeout-minutes: 60 | |
steps: | |
- name: Get sources | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- uses: pnpm/action-setup@v3 | |
with: | |
version: 9 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: | | |
${{ env.STORE_PATH }} | |
.nx/cache | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store | |
- name: Install dependencies | |
run: | | |
corepack enable | |
pnpm install | |
- name: Build | |
working-directory: ./packages/devextreme | |
run: pnpx nx build | |
- name: Lint TS | |
working-directory: ./packages/devextreme | |
env: | |
DEBUG: eslint:cli-engine | |
run: pnpx nx lint-ts | |
- name: Lint .d.ts | |
working-directory: ./packages/devextreme | |
env: | |
DEBUG: eslint:cli-engine | |
run: pnpx nx lint-dts | |
- name: Lint Testcafe tests | |
working-directory: ./e2e/testcafe-devextreme | |
env: | |
DEBUG: eslint:cli-engine | |
run: pnpx nx lint | |
JS: | |
runs-on: devextreme-shr2 | |
timeout-minutes: 60 | |
steps: | |
- name: Get sources | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- uses: pnpm/action-setup@v3 | |
with: | |
version: 9 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: | | |
${{ env.STORE_PATH }} | |
.nx/cache | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store | |
- name: Install dependencies | |
run: | | |
corepack enable | |
pnpm install | |
- name: Build | |
working-directory: ./packages/devextreme | |
run: pnpx nx build | |
- name: Lint JS | |
working-directory: ./packages/devextreme | |
env: | |
DEBUG: eslint:cli-engine | |
run: pnpx nx lint-js | |
texts: | |
runs-on: devextreme-shr2 | |
timeout-minutes: 60 | |
steps: | |
- name: Get sources | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- uses: pnpm/action-setup@v3 | |
with: | |
version: 9 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: | | |
${{ env.STORE_PATH }} | |
.nx/cache | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store | |
- name: Install dependencies | |
run: | | |
corepack enable | |
pnpm install | |
- name: Check texts | |
working-directory: ./packages/devextreme | |
run: pnpx nx lint-texts | |
CSS: | |
runs-on: devextreme-shr2 | |
timeout-minutes: 60 | |
steps: | |
- name: Get sources | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- uses: pnpm/action-setup@v3 | |
with: | |
version: 9 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: | | |
${{ env.STORE_PATH }} | |
.nx/cache | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store | |
- name: Install dependencies | |
run: | | |
corepack enable | |
pnpm install | |
- name: Lint CSS | |
working-directory: ./packages/devextreme-scss | |
run: pnpx nx lint | |
pnpm_lock: | |
runs-on: devextreme-shr2 | |
timeout-minutes: 10 | |
steps: | |
- name: Get sources | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- uses: pnpm/action-setup@v3 | |
with: | |
version: 9 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: | | |
${{ env.STORE_PATH }} | |
.nx/cache | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store | |
- name: Update lock-file | |
run: | | |
node -v | |
pnpm -v | |
pnpm install | |
- name: Upload lock-file | |
uses: actions/upload-artifact@v3 | |
with: | |
name: package-lock.json | |
path: ./package-lock.json | |
retention-days: 1 | |
- name: Check lock-file | |
run: git diff --exit-code pnpm-lock.yaml | |
component_exports: | |
runs-on: devextreme-shr2 | |
timeout-minutes: 10 | |
steps: | |
- name: Get sources | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- uses: pnpm/action-setup@v3 | |
with: | |
version: 9 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: | | |
${{ env.STORE_PATH }} | |
.nx/cache | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store | |
- name: Install dependencies | |
run: | | |
corepack enable | |
pnpm install | |
- name: Check generated component reexports | |
working-directory: ./packages/devextreme | |
run: | | |
pnpm run update-ts-reexports | |
git add . -N | |
if git diff --exit-code ; then | |
echo "Generated component reexports are up-to-date" | |
else | |
echo "Generated component reexports are outdated. Execute 'pnpm run update-ts-reexports' and commit changes." | |
exit 1 | |
fi | |
wrappers: | |
runs-on: devextreme-shr2 | |
timeout-minutes: 10 | |
steps: | |
- name: Get sources | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- uses: pnpm/action-setup@v3 | |
with: | |
version: 9 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: | | |
${{ env.STORE_PATH }} | |
.nx/cache | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store | |
- name: Install dependencies | |
run: | | |
corepack enable | |
pnpm install | |
- name: Lint wrappers | |
run: pnpx nx run-many -t lint -p devextreme-angular devextreme-react devextreme-vue | |
notify: | |
runs-on: devextreme-shr2 | |
name: Send notifications | |
needs: [Renovation, TS, JS, CSS, texts, pnpm_lock, component_exports] | |
if: github.event_name != 'pull_request' && contains(needs.*.result, 'failure') | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: DevExpress/github-actions/send-teams-notification@v1 | |
with: | |
hook_url: ${{secrets.TEAMS_ALERT}} | |
bearer_token: ${{secrets.GITHUB_TOKEN}} | |
specific_repo: DevExpress/DevExtreme |