Workflow management over the heartbeat command tunnel #1134
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
| # Copyright (c) 2025, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. | |
| # | |
| # WSO2 Inc. licenses this file to you under the Apache License, | |
| # Version 2.0 (the "License"); you may not use this file except | |
| # in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, | |
| # software distributed under the License is distributed on an | |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| # KIND, either express or implied. See the License for the | |
| # specific language governing permissions and limitations | |
| # under the License. | |
| name: Run Tests | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| build: | |
| name: Build, test and coverage | |
| permissions: | |
| contents: read | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "21" | |
| - name: Setup Ballerina | |
| uses: ballerina-platform/setup-ballerina@v1.1.0 | |
| with: | |
| version: 2201.13.4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v2 | |
| with: | |
| version: 8 | |
| - name: Check Prettier formatting | |
| run: | | |
| cd frontend | |
| npx prettier --check . | |
| - name: Install frontend dependencies | |
| run: | | |
| cd frontend | |
| pnpm install | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v3 | |
| # OpenSearch (E2E observability) needs a higher mmap count than the runner default. | |
| - name: Raise vm.max_map_count for OpenSearch | |
| run: sudo sysctl -w vm.max_map_count=262144 | |
| - name: Build (unit on H2 + E2E on MySQL + combined coverage) | |
| # A single `build` runs the Ballerina unit tests (self-contained H2, no MySQL) and the E2E | |
| # suite (MySQL via Testcontainers), then emits the combined line-coverage report from both | |
| # dumps. Add -Picp.coverage.min=<pct> to gate on combined coverage. | |
| run: ./gradlew --no-daemon -PplaywrightWithDeps build | |
| - name: Upload combined coverage report | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: combined-coverage | |
| path: e2e-tests/build/reports/combined/coverage/ | |
| if-no-files-found: ignore | |
| retention-days: 7 | |
| - name: Upload E2E reports | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: e2e-reports | |
| path: | | |
| e2e-tests/build/reports/ | |
| e2e-tests/build/test-results/ | |
| if-no-files-found: ignore | |
| retention-days: 7 |