Skip to content

FE CORE: fix duplicate + lost messages in history/realtime merge #3651

FE CORE: fix duplicate + lost messages in history/realtime merge

FE CORE: fix duplicate + lost messages in history/realtime merge #3651

Workflow file for this run

name: OpenFrame OSS Libs Test
permissions:
contents: read
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches: [main]
# =============================================================================
# JOBS
# =============================================================================
jobs:
changes:
name: Changes
uses: ./.github/workflows/changes.yml
if: |
github.event_name == 'pull_request' &&
!github.event.pull_request.draft
matrix:
name: Matrix
uses: ./.github/workflows/matrix.yml
if: |
github.event_name == 'pull_request' &&
!github.event.pull_request.draft
test-java:
name: Test Java
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.java == 'true'
steps:
- uses: actions/checkout@v4
- name: Set up Java 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Build
run: |
mvn clean install \
-am \
-Dcompress \
--threads 2C \
--batch-mode \
--no-transfer-progress \
-Dmaven.javadoc.skip=true
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: java-artifacts
path: |
**/target/*.jar
!**/target/original-*.jar
!**/target/*-sources.jar
!**/target/*-javadoc.jar
retention-days: 1
if-no-files-found: warn
test-node:
name: Test Node (${{ matrix.name }})
runs-on: ubuntu-latest
needs: [changes, matrix]
strategy:
matrix:
include: ${{ fromJson(needs.matrix.outputs.node_matrix) }}
steps:
- name: Check if should run
id: should_run
run: echo "run=${{ fromJSON(toJSON(needs.changes.outputs))[matrix.name] == 'true' }}" >> $GITHUB_OUTPUT
- uses: actions/checkout@v4
if: steps.should_run.outputs.run == 'true'
- name: Setup Node.js
if: steps.should_run.outputs.run == 'true'
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Install Dependencies
if: steps.should_run.outputs.run == 'true'
working-directory: ${{ matrix.path }}
run: npm install
- name: Type Check
if: steps.should_run.outputs.run == 'true'
working-directory: ${{ matrix.path }}
run: npm run type-check
continue-on-error: true
- name: Test
if: steps.should_run.outputs.run == 'true'
working-directory: ${{ matrix.path }}
run: npm run test:run
- name: Build
if: steps.should_run.outputs.run == 'true'
working-directory: ${{ matrix.path }}
run: npm run build
- name: Upload Build Artifacts
if: steps.should_run.outputs.run == 'true'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}-artifacts
path: ${{ matrix.path }}/dist/
retention-days: 1
if-no-files-found: error
test-rust:
name: "Test Rust (${{ matrix.os }})"
needs: changes
if: needs.changes.outputs.rust == 'true'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest]
defaults:
run:
shell: bash
env:
OPENFRAME_VERSION: 0.0.0-dev
CARGO_INCREMENTAL: 0
steps:
- uses: actions/checkout@v4
- name: Prepare Rust tools
uses: ./.github/steps/rust-setup
with:
path: clients/openframe-client
components: clippy,rustfmt
shared-key: openframe-client-${{ matrix.os }}
- name: Lint (cargo fmt --check + cargo clippy -D warnings)
run: make -C clients/openframe-client lint
- name: Build client binary
run: make -C clients/openframe-client build-bin
- name: Test
run: make -C clients/openframe-client test
all-checks:
name: "All Checks"
needs: [test-java, test-node, test-rust]
runs-on: ubuntu-latest
if: always()
steps:
- if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
run: exit 1
- run: echo "All checks passed"