JavaScript Connection upcall count fix, and comment cleanup. #4354
Workflow file for this run
This file contains 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: Build and test | |
on: | |
workflow_dispatch: | |
push: | |
branches: ["main"] | |
pull_request: | |
# The branches below must be a subset of the branches above | |
branches: ["main"] | |
# See https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value | |
concurrency: | |
group: ${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
ci: | |
name: ${{ matrix.config }} on ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# Release builds | |
- os: macos-15 | |
config: "release" | |
- os: ubuntu-24.04 | |
config: "release" | |
- os: windows-2022 | |
config: "release" | |
build_flags: "/p:Platform=x64" | |
test_flags: "--platform=x64" | |
- os: windows-2022 | |
config: "cpp-win32-release" | |
working_directory: "cpp" | |
build_flags: "/p:Platform=Win32" | |
msbuild_project: "msbuild/ice.proj" | |
test_flags: "--platform=Win32" | |
# Debug builds | |
- os: macos-15 | |
config: "debug" | |
build_flags: "OPTIMIZE=no" | |
test_flags: "--swift-config=debug" | |
- os: ubuntu-24.04 | |
config: "debug" | |
build_flags: "OPTIMIZE=no" | |
# TODO - figure out how to properly install debug Python | |
- os: windows-2022 | |
config: "debug" | |
working_directory: "cpp" | |
build_flags: "/p:Platform=x64 /p:Configuration=Debug" | |
test_flags: "--platform=x64 --config=Debug" | |
msbuild_project: "msbuild/ice.proj" | |
# # Xcode SDK builds | |
# # TODO - Should we also test the debug config here as well? | |
# - macos-15 | |
# config: "xcodesdk" | |
# working_directory: "cpp" | |
# build_flags: "CONFIGS=xcodesdk PLATFORMS=iphonesimulator" | |
# test_flags: "--config=xcodesdk --platform=iphonesimulator --controller-app" | |
# build_cpp_and_python: true | |
# MATLAB | |
- os: ubuntu-24.04 | |
config: "matlab" | |
working_directory: "matlab" | |
build_cpp_and_python: true | |
- os: windows-2022 | |
config: "matlab" | |
working_directory: "matlab" | |
build_flags: "/p:Platform=x64" | |
msbuild_project: "msbuild/ice.proj" | |
test_flags: "--platform=x64" | |
build_cpp_and_python: true | |
# Cross tests | |
- os: ubuntu-24.04 | |
config: "cross" | |
test_flags: "--all-cross" | |
- os: macos-15 | |
config: "cross" | |
# We want to test C++ and Swift only (in each direction) | |
test_flags: "--all-cross --filter cpp --filter swift" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Dependencies | |
uses: ./.github/actions/setup-dependencies | |
with: | |
use_matlab: ${{ matrix.config == 'matlab' }} | |
- name: Build ${{ matrix.config }} on ${{ matrix.os }} | |
uses: ./.github/actions/build | |
timeout-minutes: 90 | |
with: | |
working_directory: ${{ matrix.working_directory || '.' }} | |
build_cpp_and_python: ${{ matrix.build_cpp_and_python || false }} | |
build_flags: ${{ matrix.build_flags || '' }} | |
msbuild_project: ${{ matrix.msbuild_project || 'ice.proj' }} | |
- name: Test ${{ matrix.config }} on ${{ matrix.os }} | |
uses: ./.github/actions/test | |
timeout-minutes: 30 | |
with: | |
working_directory: ${{ matrix.working_directory || '.' }} | |
flags: ${{ matrix.test_flags }} | |
# Don't test matlab on Windows (see setup-dependencies/action.yml) | |
if: matrix.config != 'matlab' || runner.os != 'Windows' | |
- name: Upload test logs | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-logs-${{ matrix.config }}-${{ matrix.os }} | |
path: ${{ matrix.working_directory || '.' }}/**/*.log | |
if-no-files-found: ignore | |
if: always() | |
- name: Upload macOS crash diagnostics | |
uses: actions/upload-artifact@v4 | |
with: | |
name: crash-diagnostics-${{ matrix.config }}-${{ matrix.os }} | |
path: ~/Library/Logs/DiagnosticReports/*.ips | |
if-no-files-found: ignore | |
if: runner.os == 'macOS' && always() |