Skip to content

perf: avoid redundant data channel buffer copies #312

perf: avoid redundant data channel buffer copies

perf: avoid redundant data channel buffer copies #312

Workflow file for this run

name: Build
on:
push:
branches:
- main
paths:
- "**.cpp"
- "**.h"
- "**.java"
pull_request:
branches:
- main
workflow_dispatch:
env:
WEBRTC_CHECKOUT_FOLDER: webrtc
WEBRTC_INSTALL_FOLDER: webrtc/build
jobs:
build-windows:
strategy:
fail-fast: false
matrix:
platform:
- name: windows_x86_64
runs-on: windows-2022
- name: windows_arm64
runs-on: windows-2022
java: [17]
runs-on: ${{ matrix.platform.runs-on }}
steps:
- name: Checkout code
uses: actions/checkout@v6
- id: prepare
name: Prepare build
uses: ./.github/actions/prepare-windows
- id: maven-build
name: Maven build
uses: ./.github/actions/build
with:
java-version: ${{ matrix.java }}
platform-name: ${{ matrix.platform.name }}
maven-username: ${{ secrets.MAVEN_USERNAME }}
maven-password: ${{ secrets.MAVEN_TOKEN }}
- name: Upload natives for native testing
if: matrix.platform.name == 'windows_arm64'
uses: actions/upload-artifact@v4
with:
name: natives-${{ matrix.platform.name }}
path: webrtc-jni/target/webrtc-java-*.jar
if-no-files-found: error
build-linux:
strategy:
fail-fast: false
matrix:
platform:
- name: linux_arm
runs-on: ubuntu-22.04
- name: linux_arm64
runs-on: ubuntu-22.04
- name: linux_x86-64
runs-on: ubuntu-22.04
java: [17]
runs-on: ${{ matrix.platform.runs-on }}
steps:
- name: Checkout code
uses: actions/checkout@v6
- id: prepare
name: Prepare build
uses: ./.github/actions/prepare-linux
- id: maven-build
name: Maven build
uses: ./.github/actions/build
with:
java-version: ${{ matrix.java }}
platform-name: ${{ matrix.platform.name }}
maven-username: ${{ secrets.MAVEN_USERNAME }}
maven-password: ${{ secrets.MAVEN_TOKEN }}
- name: Upload natives for native testing
if: matrix.platform.name == 'linux_arm' || matrix.platform.name == 'linux_arm64'
uses: actions/upload-artifact@v4
with:
name: natives-${{ matrix.platform.name }}
path: webrtc-jni/target/webrtc-java-*.jar
if-no-files-found: error
build-macos:
strategy:
fail-fast: false
matrix:
platform:
- name: macos_x86-64
runs-on: macos-14
- name: macos_arm64
runs-on: macos-14
java: [17]
runs-on: ${{ matrix.platform.runs-on }}
steps:
- name: Checkout code
uses: actions/checkout@v6
- id: prepare-build
name: Prepare build
uses: ./.github/actions/prepare-macos
- id: maven-build-arm64
name: Maven build - Apple Silicon
if: matrix.platform.name == 'macos_arm64'
uses: ./.github/actions/build
with:
java-version: ${{ matrix.java }}
platform-name: ${{ matrix.platform.name }}
maven-username: ${{ secrets.MAVEN_USERNAME }}
maven-password: ${{ secrets.MAVEN_TOKEN }}
- id: maven-build-x86_64
name: Maven build - Intel
if: matrix.platform.name == 'macos_x86-64'
uses: ./.github/actions/build-macos-x86_64
with:
java-version: ${{ matrix.java }}
platform-name: ${{ matrix.platform.name }}
maven-username: ${{ secrets.MAVEN_USERNAME }}
maven-password: ${{ secrets.MAVEN_TOKEN }}
test-natives:
needs: [build-windows, build-linux]
strategy:
fail-fast: false
matrix:
platform:
- name: windows_arm64
runs-on: windows-11-arm
classifier: windows-aarch64
profile: windows-aarch64
java-distribution: microsoft
java-architecture: aarch64
- name: linux_arm64
runs-on: ubuntu-22.04-arm
classifier: linux-aarch64
profile: linux-aarch64
java-distribution: temurin
java-architecture: ''
- name: linux_arm
runs-on: ubuntu-22.04-arm
classifier: linux-aarch32
profile: linux-aarch32
java-distribution: liberica
java-architecture: armv7
runs-on: ${{ matrix.platform.runs-on }}
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Test natives
uses: ./.github/actions/test-natives
with:
platform-name: ${{ matrix.platform.name }}
classifier: ${{ matrix.platform.classifier }}
profile: ${{ matrix.platform.profile }}
java-distribution: ${{ matrix.platform.java-distribution }}
java-architecture: ${{ matrix.platform.java-architecture }}