check audio setup #207
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: 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 |