fix(joint-router-avoid): fire idle after incremental main-thread chan… #30
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: SonarQube Analysis | |
| # Trigger this workflow on: | |
| on: | |
| push: # Primarily on push to master branch | |
| branches: | |
| - master | |
| workflow_dispatch: {} # Also allow manual triggering | |
| # Reset permissions and grant them explicitly per job. | |
| permissions: {} | |
| jobs: | |
| sonarqube: | |
| if: ${{ github.repository == 'clientIO/joint' }} # Skip for forks | |
| name: SonarQube Scan | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read # checkout only - results go to SonarQube, not to GitHub | |
| steps: | |
| # Echo run information | |
| - name: Information | |
| id: information | |
| run: | | |
| cat >> $GITHUB_STEP_SUMMARY << 'EOF' | |
| ## Run information | |
| | | | | |
| |---|---| | |
| | **Triggered by** | `${{ github.event_name }}` | | |
| | **Workflow branch** | `${{ github.ref_name }}` | | |
| EOF | |
| # Checkout contents of joint repo | |
| - name: Checkout code | |
| id: checkout-joint | |
| uses: actions/checkout@v7 | |
| with: | |
| # Full history for SonarQube blame/SCM attribution (read from the local clone) | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| # Install environment packages | |
| # Fonts - util.breakText - international characters | |
| - name: Install environment packages | |
| id: install-environment-packages | |
| uses: awalsh128/cache-apt-pkgs-action@v1 | |
| with: | |
| packages: | | |
| fonts-arphic-ukai \ | |
| fonts-arphic-uming \ | |
| fonts-ipafont-mincho \ | |
| fonts-ipafont-gothic \ | |
| fonts-unfonts-core \ | |
| fonts-noto-core | |
| version: 1.0 | |
| # Set up Node.js version for building | |
| - name: Setup Node.js v22 | |
| id: setup-node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 22.14.0 | |
| # Cache Yarn packages to speed up CI | |
| - name: Cache Yarn | |
| id: cache-yarn | |
| uses: actions/cache@v6 | |
| with: | |
| path: | | |
| .yarn/cache | |
| key: yarn-cache-${{ hashFiles('yarn.lock') }} | |
| # Install all dependencies from the joint repo | |
| - name: Install dependencies | |
| id: install-dependencies | |
| run: yarn install --immutable | |
| # Build the joint project (needed for tests) | |
| - name: Prepare joint | |
| id: prepare-joint | |
| run: yarn run dist | |
| # Evaluate test coverage in the joint project | |
| # NOTE: Falling below local coverage thresholds aborts the workflow | |
| - name: Test joint coverage | |
| id: test-coverage | |
| run: yarn run test-coverage-lcov | |
| # Resolve the version to report to SonarQube | |
| - name: Resolve project version | |
| id: resolve-project-version | |
| run: echo "SONAR_PROJECT_VERSION=$(node -p 'require("./package.json").version')" >> $GITHUB_ENV | |
| # Start SonarQube analysis | |
| - name: SonarQube Scan | |
| id: sonar-scan | |
| uses: sonarsource/sonarqube-scan-action@v8.2.1 | |
| with: | |
| args: -Dsonar.projectVersion=${{ env.SONAR_PROJECT_VERSION }} | |
| env: | |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
| SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} | |
| # Poll SonarQube for analysis results | |
| - name: SonarQube Quality Gate check | |
| id: sonar-quality-gate | |
| uses: sonarsource/sonarqube-quality-gate-action@v1.2.1 | |
| timeout-minutes: 5 | |
| env: | |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
| SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} |