Skip to content

check audio setup

check audio setup #207

Workflow file for this run

name: Java Audio Setup Check
on:
push:
branches:
- main
workflow_dispatch:
jobs:
check-audio:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17.0.6'
distribution: 'temurin'
- name: Install PulseAudio on Ubuntu
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y pulseaudio alsa-utils xvfb
pulseaudio --check || pulseaudio --start
pactl load-module module-null-sink sink_name=vspeaker sink_properties=device.description=virtual_speaker
pactl load-module module-remap-source master=vspeaker.monitor source_name=vmic source_properties=device.description=virtual_mic
Xvfb :99 -screen 0 1024x768x24 &
sleep 5
export DISPLAY=:99
aplay -l
pactl list modules
- name: Install BlackHole on macOS
if: matrix.os == 'macos-latest'
run: |
brew install blackhole-2ch
sudo mkdir -p /Library/Audio/Plug-Ins/HAL/BlackHole.driver
sudo cp -R /usr/local/Cellar/blackhole/0.6.0/BlackHole.driver /Library/Audio/Plug-Ins/HAL/
sudo launchctl kickstart -kp system/com.apple.audio.coreaudiod
- name: Install Scream on Windows
if: matrix.os == 'windows-latest'
shell: powershell
run: |
Invoke-WebRequest https://github.com/duncanthrax/scream/releases/download/4.0/Scream4.0.zip -OutFile Scream4.0.zip
Expand-Archive -Path Scream4.0.zip -DestinationPath Scream
openssl req -batch -verbose -x509 -newkey rsa -keyout ScreamCertificate.pvk -out ScreamCertificate.cer -nodes -extensions v3_req
openssl pkcs12 -export -nodes -in ScreamCertificate.cer -inkey ScreamCertificate.pvk -out ScreamCertificate.pfx -passout pass:
- name: Setup MSVC Dev Cmd
if: matrix.os == 'windows-latest'
uses: ilammy/msvc-dev-cmd@v1
- name: Sign and Install Scream Driver on Windows
if: matrix.os == 'windows-latest'
shell: powershell
run: |
$env:PATH += ';C:\Program Files (x86)\Windows Kits\10\bin\x64'
signtool sign /v /fd SHA256 /f ScreamCertificate.pfx Scream\Install\driver\x64\Scream.cat
Import-Certificate -FilePath ScreamCertificate.cer -CertStoreLocation Cert:\LocalMachine\root
Import-Certificate -FilePath ScreamCertificate.cer -CertStoreLocation Cert:\LocalMachine\TrustedPublisher
Scream\Install\helpers\devcon-x64.exe install Scream\Install\driver\x64\Scream.inf *Scream
timeout-minutes: 5
- name: Start Windows Audio Service
if: matrix.os == 'windows-latest'
run: net start audiosrv
shell: powershell
- name: Build with Gradle and run audio setup test
run: ./gradlew clean test --tests "com.github.natche.cyderutils.audio.AudioSetupTest" --info --stacktrace --no-daemon