updates #1
Workflow file for this run
This file contains hidden or 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: Native and Python Quality | |
| on: | |
| push: | |
| pull_request: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: "23 3 * * 2" | |
| permissions: | |
| contents: read | |
| jobs: | |
| release-audit: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - name: Checkout pinned vcpkg | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: microsoft/vcpkg | |
| ref: f87344cac03158cbf1467264565f1fd36b382a24 | |
| path: .vcpkg | |
| - run: ./.vcpkg/bootstrap-vcpkg.sh -disableMetrics | |
| - name: Generate SPDX document | |
| run: >- | |
| python oracle/generate_sbom.py --axklib-root . | |
| --output build/native/audit/axklib.spdx.json | |
| - name: Configure release audit | |
| env: | |
| VCPKG_ROOT: ${{ github.workspace }}/.vcpkg | |
| AXK_PATH_REMAP_FROM: ${{ github.workspace }} | |
| run: >- | |
| cmake -S . -B build/native/audit -G Ninja | |
| -DCMAKE_BUILD_TYPE=Release | |
| -DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake | |
| -DVCPKG_TARGET_TRIPLET=x64-linux-axk | |
| -DVCPKG_OVERLAY_TRIPLETS=${{ github.workspace }}/cpp/cmake/triplets | |
| -DAXK_SBOM_FILE=${{ github.workspace }}/build/native/audit/axklib.spdx.json | |
| -DAXK_BUILD_CLI=OFF -DBUILD_TESTING=OFF -DAXK_BUILD_BENCHMARKS=ON | |
| - run: cmake --build build/native/audit | |
| - name: Benchmark and threshold check | |
| run: | | |
| build/native/audit/cpp/axk_workflow_benchmark \ | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds \ | |
| build/native/audit/benchmark.json | |
| python oracle/check_benchmark.py \ | |
| cpp/benchmarks/baseline-linux-x64.json build/native/audit/benchmark.json | |
| - name: Install and inspect SDK | |
| run: | | |
| cmake --install build/native/audit --prefix build/native/audit-install | |
| test -f build/native/audit-install/share/axklib/axklib.spdx.json | |
| python oracle/inspect_package.py build/native/audit-install \ | |
| --allow-library libaxklib_c.so \ | |
| --allow-library libaxklib_c.so.0 \ | |
| --allow-library libaxklib_c.so.0.1.0 | |
| fuzz-smoke: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Checkout pinned vcpkg | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: microsoft/vcpkg | |
| ref: f87344cac03158cbf1467264565f1fd36b382a24 | |
| path: .vcpkg | |
| - run: ./.vcpkg/bootstrap-vcpkg.sh -disableMetrics | |
| - name: Configure fuzzers | |
| env: | |
| CC: clang | |
| CXX: clang++ | |
| VCPKG_ROOT: ${{ github.workspace }}/.vcpkg | |
| run: >- | |
| cmake -S . -B build/native/fuzz -G Ninja | |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo | |
| -DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake | |
| -DAXK_BUILD_CLI=OFF -DBUILD_TESTING=OFF -DAXK_BUILD_FUZZERS=ON | |
| - run: cmake --build build/native/fuzz | |
| - name: Fixed-budget parser smoke | |
| shell: bash | |
| run: | | |
| runs=200 | |
| if [[ "${{ github.event_name }}" == "schedule" ]]; then runs=20000; fi | |
| targets=( | |
| bytes sfs_superblock sfs_index sfs_directory object_header | |
| object_smpl object_sbnk object_sbac object_prog object_sequ object_prf3 | |
| fat_record iso_record build_manifest transaction | |
| ) | |
| for target in "${targets[@]}"; do | |
| corpora=(cpp/fuzz/corpus/${target}) | |
| if [[ "$target" == sfs_* ]]; then | |
| corpora+=(tests/fixtures/images/sampler-authored) | |
| fi | |
| build/native/fuzz/cpp/axk_${target}_fuzz \ | |
| "${corpora[@]}" -runs=${runs} -max_len=4194304 | |
| done | |
| thread-sanitizer: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Checkout pinned vcpkg | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: microsoft/vcpkg | |
| ref: f87344cac03158cbf1467264565f1fd36b382a24 | |
| path: .vcpkg | |
| - run: ./.vcpkg/bootstrap-vcpkg.sh -disableMetrics | |
| - name: Configure | |
| env: | |
| VCPKG_ROOT: ${{ github.workspace }}/.vcpkg | |
| run: cmake --preset tsan | |
| - run: cmake --build --preset tsan | |
| - run: ctest --preset tsan -R 'CApi|Cancellation|Concurrent' | |
| native: | |
| env: | |
| PYTHONPATH: ${{ github.workspace }}/oracle/python | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - windows-latest | |
| - macos-14 | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - uses: astral-sh/setup-uv@v5 | |
| with: | |
| enable-cache: true | |
| - run: uv sync --project oracle/python --locked | |
| - name: Checkout pinned vcpkg | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: microsoft/vcpkg | |
| ref: f87344cac03158cbf1467264565f1fd36b382a24 | |
| path: .vcpkg | |
| - name: Bootstrap vcpkg (Unix) | |
| if: runner.os != 'Windows' | |
| run: ./.vcpkg/bootstrap-vcpkg.sh -disableMetrics | |
| - name: Bootstrap vcpkg (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: .\.vcpkg\bootstrap-vcpkg.bat -disableMetrics | |
| - name: Configure | |
| env: | |
| VCPKG_ROOT: ${{ github.workspace }}/.vcpkg | |
| run: cmake --preset debug | |
| - name: Build | |
| run: cmake --build --preset debug | |
| - name: Test | |
| run: ctest --preset debug | |
| - name: Configure clang-tidy | |
| if: runner.os == 'Linux' | |
| env: | |
| VCPKG_ROOT: ${{ github.workspace }}/.vcpkg | |
| run: cmake --preset clang-tidy | |
| - name: Run clang-tidy build | |
| if: runner.os == 'Linux' | |
| run: cmake --build --preset clang-tidy | |
| - name: Python/C++ SFS differential (Unix) | |
| if: runner.os != 'Windows' | |
| run: >- | |
| uv run --project oracle/python python oracle/run_sfs_differential.py | |
| --cpp-cli build/native/debug/cpp/axklib | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds | |
| - name: Python/C++ SFS differential (Windows) | |
| if: runner.os == 'Windows' | |
| run: >- | |
| uv run --project oracle/python python oracle/run_sfs_differential.py | |
| --cpp-cli build/native/debug/cpp/axklib.exe | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds | |
| - name: Python/C++ object differential (Unix) | |
| if: runner.os != 'Windows' | |
| run: | | |
| uv run --project oracle/python python oracle/generate_current_object_fixture.py --output build/native-oracle/current-objects.hds | |
| uv run --project oracle/python python oracle/run_object_differential.py \ | |
| --cpp-cli build/native/debug/cpp/axklib \ | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds \ | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds \ | |
| build/native-oracle/current-objects.hds | |
| - name: Python/C++ object differential (Windows) | |
| if: runner.os == 'Windows' | |
| run: | | |
| uv run --project oracle/python python oracle/generate_current_object_fixture.py --output build/native-oracle/current-objects.hds | |
| uv run --project oracle/python python oracle/run_object_differential.py ` | |
| --cpp-cli build/native/debug/cpp/axklib.exe ` | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds ` | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds ` | |
| build/native-oracle/current-objects.hds | |
| - name: Python/C++ semantic differential (Unix) | |
| if: runner.os != 'Windows' | |
| run: | | |
| uv run --project oracle/python python oracle/run_semantic_differential.py \ | |
| --cpp-cli build/native/debug/cpp/axklib \ | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds \ | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds \ | |
| build/native-oracle/current-objects.hds | |
| - name: Python/C++ semantic differential (Windows) | |
| if: runner.os == 'Windows' | |
| run: | | |
| uv run --project oracle/python python oracle/run_semantic_differential.py ` | |
| --cpp-cli build/native/debug/cpp/axklib.exe ` | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds ` | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds ` | |
| build/native-oracle/current-objects.hds | |
| - name: Python/C++ exact WAV differential (Unix) | |
| if: runner.os != 'Windows' | |
| run: >- | |
| uv run --project oracle/python python oracle/run_audio_differential.py | |
| --cpp-cli build/native/debug/cpp/axklib | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds | |
| build/native-oracle/current-objects.hds | |
| - name: Python/C++ exact WAV differential (Windows) | |
| if: runner.os == 'Windows' | |
| run: >- | |
| uv run --project oracle/python python oracle/run_audio_differential.py | |
| --cpp-cli build/native/debug/cpp/axklib.exe | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds | |
| build/native-oracle/current-objects.hds | |
| - name: Generate stereo export input | |
| run: >- | |
| uv run --project oracle/python python oracle/generate_stereo_export_fixture.py | |
| --output build/native-oracle/stereo-export.hds | |
| - name: Python/C++ structured audio and SFZ differential (Unix) | |
| if: runner.os != 'Windows' | |
| run: >- | |
| uv run --project oracle/python python oracle/run_structured_audio_differential.py | |
| --cpp-cli build/native/debug/cpp/axklib | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds | |
| build/native-oracle/current-objects.hds | |
| build/native-oracle/stereo-export.hds | |
| - name: Python/C++ structured audio and SFZ differential (Windows) | |
| if: runner.os == 'Windows' | |
| run: >- | |
| uv run --project oracle/python python oracle/run_structured_audio_differential.py | |
| --cpp-cli build/native/debug/cpp/axklib.exe | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds | |
| build/native-oracle/current-objects.hds | |
| build/native-oracle/stereo-export.hds | |
| - name: Python/C++ preview differential (Unix) | |
| if: runner.os != 'Windows' | |
| run: >- | |
| uv run --project oracle/python python oracle/run_preview_differential.py | |
| --cpp-cli build/native/debug/cpp/axklib | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds | |
| build/native-oracle/stereo-export.hds | |
| - name: Python/C++ preview differential (Windows) | |
| if: runner.os == 'Windows' | |
| run: >- | |
| uv run --project oracle/python python oracle/run_preview_differential.py | |
| --cpp-cli build/native/debug/cpp/axklib.exe | |
| tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds | |
| tests/fixtures/images/sampler-authored/HD00_512_multi_sbnk_authored.hds | |
| build/native-oracle/stereo-export.hds | |
| - name: Remaining Python/C++ differential matrix (Unix) | |
| if: runner.os != 'Windows' | |
| run: >- | |
| uv run --project oracle/python python oracle/run_remaining_differential.py | |
| --cpp-cli build/native/debug/cpp/axklib | |
| --fixture tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds | |
| --output-dir build/native-oracle/remaining | |
| - name: Remaining Python/C++ differential matrix (Windows) | |
| if: runner.os == 'Windows' | |
| run: >- | |
| uv run --project oracle/python python oracle/run_remaining_differential.py | |
| --cpp-cli build/native/debug/cpp/axklib.exe | |
| --fixture tests/fixtures/images/sampler-authored/HD00_512_single_sbnk_authored.hds | |
| --output-dir build/native-oracle/remaining | |
| python: | |
| env: | |
| PYTHONPATH: ${{ github.workspace }}/oracle/python | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - uses: astral-sh/setup-uv@v5 | |
| with: | |
| enable-cache: true | |
| - run: uv sync --project oracle/python --locked --all-groups | |
| - run: uv run --project oracle/python ruff check oracle/python/axklib oracle/python/tests oracle | |
| - run: cd oracle/python && uv run mypy --explicit-package-bases axklib | |
| - run: uv run --project oracle/python pytest oracle/python/tests | |
| - run: uv run --project oracle/python --group docs mkdocs build --strict | |
| - run: python oracle/check_production_boundary.py . |