Fix/8262 orderby props nested selector #8153
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: | |
| pull_request: | |
| branches: | |
| - main | |
| - main-version-* | |
| concurrency: | |
| group: ci-new-2-${{ github.event.pull_request.number }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| check-changes: | |
| name: Check for Changes | |
| runs-on: ubuntu-latest | |
| outputs: | |
| website_changes: ${{ steps.check-website.outputs.website_changes }} | |
| website_next_changes: ${{ steps.check-website-next.outputs.website_next_changes }} | |
| library_changes: ${{ steps.check-library.outputs.library_changes }} | |
| src_changes: ${{ steps.check-src.outputs.src_changes }} | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| fetch-depth: 2 | |
| show-progress: false | |
| - name: Check for changes in website directory | |
| id: check-website | |
| run: | | |
| changes=$(git diff --name-only HEAD~1 HEAD -- ./website) | |
| if [[ -n "$changes" ]]; then | |
| echo "website_changes=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "website_changes=false" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Check for changes in website-next directory | |
| id: check-website-next | |
| run: | | |
| changes=$(git diff --name-only HEAD~1 HEAD -- ./website-next) | |
| if [[ -n "$changes" ]]; then | |
| echo "website_next_changes=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "website_next_changes=false" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Check for changes outside website directory | |
| id: check-library | |
| run: | | |
| changes=$(git diff --name-only HEAD~1 HEAD -- ':!./website' ':!./website-next') | |
| if [[ -n "$changes" ]]; then | |
| echo "library_changes=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "library_changes=false" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Check for changes in src directory or CI workflow | |
| id: check-src | |
| run: | | |
| src_changes=$(git diff --name-only HEAD~1 HEAD -- ./src) | |
| ci_changes=$(git diff --name-only HEAD~1 HEAD -- .github/workflows/ci.yml) | |
| if [[ -n "$src_changes" ]] || [[ -n "$ci_changes" ]]; then | |
| echo "src_changes=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "src_changes=false" >> $GITHUB_OUTPUT | |
| fi | |
| spellcheck: | |
| name: "Spellcheck Documentation" | |
| runs-on: ubuntu-latest | |
| needs: check-changes | |
| if: needs.check-changes.outputs.website_changes == 'true' || needs.check-changes.outputs.website_next_changes == 'true' | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| name: Check out the code | |
| with: | |
| show-progress: false | |
| - name: Install Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| node-version: 24 | |
| - name: Install cspell | |
| run: npm install -g cspell@10.0.0 | |
| - name: run cspell (website) | |
| if: needs.check-changes.outputs.website_changes == 'true' | |
| run: cspell --config ./cspell.json "website/src/**/*.md" --no-progress --no-cache | |
| - name: run cspell (website-next) | |
| if: needs.check-changes.outputs.website_next_changes == 'true' | |
| run: cspell --config ./cspell.json "website-next/content/**/*.md" --no-progress --no-cache | |
| linting: | |
| name: "Markdown linting" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| name: Check out the code | |
| with: | |
| show-progress: false | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| name: Setup node | |
| with: | |
| node-version: 24 | |
| - run: npm install -g markdownlint-cli2@0.22.0 | |
| name: Install markdownlint-cli2 | |
| - run: markdownlint-cli2 "*.md" "website/src/**/*.md" | |
| name: run Markdownlint | |
| website-tests: | |
| name: "Website Tests" | |
| needs: check-changes | |
| if: needs.check-changes.outputs.website_changes == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| show-progress: false | |
| - name: Install Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| node-version: 24 | |
| cache: "yarn" | |
| cache-dependency-path: "website/yarn.lock" | |
| - name: Cache Yarn Packages | |
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 | |
| with: | |
| path: | | |
| website/.yarn/cache | |
| website/.next/cache | |
| key: ${{ runner.os }}-yarn-${{ hashFiles('website/yarn.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn- | |
| - name: Cache Optimized Images | |
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 | |
| with: | |
| path: website/.next/cache/images | |
| key: ${{ runner.os }}-optimized-images-${{ hashFiles('website/public/images/**', 'website/public/docs/**/*.png', 'website/public/docs/**/*.jpg', 'website/public/docs/**/*.webp') }} | |
| restore-keys: | | |
| ${{ runner.os }}-optimized-images- | |
| - name: Install Packages | |
| run: yarn --immutable --network-timeout 100000 | |
| working-directory: website | |
| - name: Build Website | |
| run: yarn build | |
| working-directory: website | |
| website-next-tests: | |
| name: "Website Next Tests" | |
| needs: check-changes | |
| if: needs.check-changes.outputs.website_next_changes == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| show-progress: false | |
| - name: Install Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| node-version: 24 | |
| cache: "yarn" | |
| cache-dependency-path: "website-next/yarn.lock" | |
| - name: Cache Yarn Packages | |
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 | |
| with: | |
| path: | | |
| website-next/.yarn/cache | |
| website-next/.next/cache | |
| key: ${{ runner.os }}-yarn-next-${{ hashFiles('website-next/yarn.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn-next- | |
| - name: Install Packages | |
| run: yarn --immutable --network-timeout 100000 | |
| working-directory: website-next | |
| - name: Install Playwright Chromium | |
| run: yarn playwright install --with-deps chromium | |
| working-directory: website-next | |
| - name: Lint | |
| run: yarn lint | |
| working-directory: website-next | |
| - name: Build | |
| run: yarn build | |
| working-directory: website-next | |
| configure: | |
| name: Generate Test Matrix | |
| runs-on: ubuntu-latest | |
| needs: check-changes | |
| if: needs.check-changes.outputs.library_changes == 'true' | |
| outputs: | |
| matrix: ${{ steps.set-matrix.outputs.matrix }} | |
| steps: | |
| - name: Checkout to repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| show-progress: false | |
| - name: Generate Test Matrix | |
| id: set-matrix | |
| uses: ./.github/actions/generate-test-matrix | |
| library-tests: | |
| name: Run ${{ matrix.name }} | |
| runs-on: ubuntu-latest | |
| needs: [configure, check-changes] | |
| if: needs.check-changes.outputs.library_changes == 'true' | |
| env: | |
| DOCKER_CONFIG: ${{ github.workspace }}/.docker | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJson(needs.configure.outputs.matrix) }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| show-progress: false | |
| - name: Install .NET | |
| uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5 | |
| with: | |
| dotnet-version: | | |
| 8.x | |
| 9.x | |
| 10.x | |
| - name: Run Build | |
| id: run-build | |
| run: dotnet build ${{ matrix.path }} --framework net10.0 --verbosity q | |
| timeout-minutes: 5 | |
| - name: Log in to Docker Hub | |
| # Run step only if branch is local (not from a fork). | |
| if: > | |
| github.event_name != 'pull_request' || | |
| (github.event_name == 'pull_request' && | |
| github.event.pull_request.head.repo.full_name == github.repository) | |
| uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4 | |
| with: | |
| username: ${{ vars.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - name: Run tests | |
| id: run-tests | |
| timeout-minutes: 15 | |
| continue-on-error: false | |
| run: > | |
| dotnet test ${{ matrix.path }} | |
| --collect:"XPlat Code Coverage;Format=opencover" | |
| --framework net10.0 | |
| --logger trx | |
| --no-build | |
| -- | |
| DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.ExcludeByFile="**/test/**" | |
| env: | |
| CI_BUILD: true | |
| - name: Upload Test Results as Artifact | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: test-results-${{ matrix.name }} | |
| path: ${{ matrix.directoryPath }}/TestResults/*.trx | |
| - name: Upload Coverage File as Artifact | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: coverage-${{ matrix.name }} | |
| # The * matches a single directory that is named with a GUID. | |
| # Take note of https://github.com/microsoft/vstest/issues/2334. | |
| path: ${{ matrix.directoryPath }}/TestResults/*/coverage.opencover.xml | |
| - name: Upload mismatch files as Artifact | |
| if: steps.run-tests.outcome == 'failure' | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: mismatch-files-${{ matrix.name }} | |
| path: ${{ matrix.directoryPath }}/**/__mismatch__/* | |
| upload-coverage: | |
| name: Upload Coverage | |
| needs: library-tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Download all coverage artifacts | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 | |
| with: | |
| path: ./output/download | |
| pattern: coverage-* | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5 | |
| timeout-minutes: 10 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| name: graphql-platform | |
| files: "./output/download/coverage-*/*/coverage.opencover.xml" | |
| disable_search: true | |
| flags: unittests | |
| fail_ci_if_error: true | |
| validate-nitro-client: | |
| name: Validate Nitro Client | |
| runs-on: ubuntu-latest | |
| needs: check-changes | |
| if: needs.check-changes.outputs.src_changes == 'true' | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| show-progress: false | |
| - name: Validate Client | |
| uses: ChilliCream/nitro-client-validate@e9856650fe21377cd2a7f0c82002cf121dbe9a30 # v16.0.13 | |
| with: | |
| client-id: ${{ secrets.NITRO_API_CLIENT_ID }} | |
| operations-file: src/Nitro/Common/src/ChilliCream.Nitro.Client/persisted/operations.json | |
| stage: Dev | |
| api-key: ${{ secrets.NITRO_API_KEY }} | |
| comment-mode: "review" | |
| verify-nitro-npm-package: | |
| name: Verify Nitro npm package | |
| runs-on: ubuntu-latest | |
| needs: check-changes | |
| if: needs.check-changes.outputs.src_changes == 'true' | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| show-progress: false | |
| - name: Setup Node | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| node-version: 24 | |
| - name: Enable corepack | |
| run: corepack enable | |
| - name: Install dependencies | |
| working-directory: src/Nitro/CommandLine/src/npm/chillicream-nitro | |
| run: yarn install --immutable | |
| - name: Build | |
| working-directory: src/Nitro/CommandLine/src/npm/chillicream-nitro | |
| run: yarn build | |
| - name: Inject optionalDependencies | |
| working-directory: src/Nitro/CommandLine/src/npm/chillicream-nitro | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| jq --arg v "0.0.0-ci" ' | |
| .optionalDependencies = { | |
| "@chillicream/nitro-linux-arm64": $v, | |
| "@chillicream/nitro-linux-musl-x64": $v, | |
| "@chillicream/nitro-linux-x64": $v, | |
| "@chillicream/nitro-osx-arm64": $v, | |
| "@chillicream/nitro-osx-x64": $v, | |
| "@chillicream/nitro-win-x64": $v, | |
| "@chillicream/nitro-win-x86": $v | |
| } | |
| ' package.json > package.json.tmp | |
| mv package.json.tmp package.json | |
| - name: Pack | |
| working-directory: src/Nitro/CommandLine/src/npm/chillicream-nitro | |
| run: npm pack --dry-run | |
| ci-status-check: | |
| name: "CI Status Check" | |
| needs: | |
| [ | |
| library-tests, | |
| website-tests, | |
| website-next-tests, | |
| validate-nitro-client, | |
| verify-nitro-npm-package, | |
| ] | |
| if: always() | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check if Library Tests or Website Tests failed | |
| run: exit 1 | |
| if: | | |
| always() && | |
| (needs.library-tests.result == 'failure' || | |
| needs.website-tests.result == 'failure' || | |
| needs.website-next-tests.result == 'failure' || | |
| needs.verify-nitro-npm-package.result == 'failure') |