Skip to content

scratch: trigger timing workflow on push instead of workflow_dispatch #1

scratch: trigger timing workflow on push instead of workflow_dispatch

scratch: trigger timing workflow on push instead of workflow_dispatch #1

name: Scratch mmap vs zstd-jni timing
# Throwaway, manual: compares MemorySegment mmap zero-copy compression against
# zstd-jni's classic stream API on the same synthetic file across OS/arch, to
# check whether a page-fault-driven mmap penalty observed on macOS also shows
# up on Linux and Windows. Lives only on the scratch/cross-os-mmap-timing
# branch; not part of ci.yml.
on:
push:
branches: [scratch/cross-os-mmap-timing]
jobs:
time:
name: ${{ matrix.classifier }}
strategy:
fail-fast: false
matrix:
include:
- { os: ubuntu-latest, classifier: linux-x86_64 }
- { os: windows-latest, classifier: windows-x86_64 }
- { os: macos-14, classifier: osx-aarch64 }
runs-on: ${{ matrix.os }}
steps:
- name: Checkout (with zstd submodule)
uses: actions/checkout@v7
with:
submodules: recursive
- name: Set up JDK 25
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: '25'
cache: maven
- name: Set up Zig
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2
with:
version: 0.16.0
- name: Build (skip tests)
shell: bash
run: ./mvnw -B -ntp -q -pl integration-tests -am test-compile -DskipTests
- name: Run timing harness
shell: bash
run: |
{
echo "### ${{ matrix.classifier }}"
echo '```'
./mvnw -B -ntp -q -pl integration-tests exec:java \
-Dexec.mainClass=io.github.dfa1.zstd.it.scratch.TimingMain \
-Dexec.classpathScope=test
echo '```'
} | tee -a "$GITHUB_STEP_SUMMARY"