Skip to content

Workflow management over the heartbeat command tunnel #1134

Workflow management over the heartbeat command tunnel

Workflow management over the heartbeat command tunnel #1134

Workflow file for this run

# 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