Skip to content

Commit

Permalink
Merge pull request #3118 from sonic-pi-net/dev
Browse files Browse the repository at this point in the history
v4 Release
  • Loading branch information
samaaron authored Jul 6, 2022
2 parents ddecffb + bc5f326 commit 1945763
Show file tree
Hide file tree
Showing 16,712 changed files with 835,261 additions and 243,124 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
182 changes: 140 additions & 42 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
name: Build

on:
# Do it on every push or PR on these branches
push:
branches: [ dev, main, workflow_dispatch, features/new-layout-and-api ]
branches: [ dev, stable ]
pull_request:
branches: [ dev, main, workflow_dispatch, features/new-layout-and-api ]
branches: [ dev, stable ]
# Do build on demand
workflow_dispatch:

jobs:
# Build Sonic Pi
build:
name: "${{matrix.title}} (${{matrix.cc}}, ${{matrix.arch}}, ${{matrix.build_type}})"
runs-on: ${{matrix.os}}
Expand All @@ -18,8 +22,8 @@ jobs:
- { title: "Linux", os: "ubuntu-latest", cc: "clang", arch: "x64", build_type: "Debug" }
- { title: "Linux", os: "ubuntu-latest", cc: "gcc", arch: "x64", build_type: "Release" }
- { title: "Linux", os: "ubuntu-latest", cc: "gcc", arch: "x64", build_type: "Debug" }
- { title: "Windows", os: "windows-latest", cc: "vs2019", arch: "x64", build_type: "Release" }
- { title: "Windows", os: "windows-latest", cc: "vs2019", arch: "x64", build_type: "Debug" }
- { title: "Windows", os: "windows-latest", cc: "vs2022", arch: "x64", build_type: "Release" }
- { title: "Windows", os: "windows-latest", cc: "vs2022", arch: "x64", build_type: "Debug" }
- { title: "Mac", os: "macos-latest", cc: "clang", arch: "x64", build_type: "Release" }
- { title: "Mac", os: "macos-latest", cc: "clang", arch: "x64", build_type: "Debug" }

Expand All @@ -28,20 +32,24 @@ jobs:
# Get the code
- uses: actions/checkout@v2

# hardcode cmake version
- name: Setup cmake
uses: jwlawson/[email protected]
with:
cmake-version: '3.22.3'

# Install Ruby for the windows build
- uses: ruby/setup-ruby@v1
id: ruby-inst
with:
ruby-version: 2.7
ruby-version: 3.1
if: matrix.os == 'windows-latest'

# Install gems Windows
- name: Setup Ruby Windows
working-directory: ${{github.workspace}}/app
run: |
gem install win32-process
gem install rugged --version 0.27.1
gem install ffi
gem install rugged
gem install test-unit
if: matrix.os == 'windows-latest'

Expand All @@ -64,102 +72,192 @@ jobs:

# Keep a cached copy of the Qt build so we can speed up subsequent builds
- name: Cache Qt
id: cache-qt2
id: cache-qt6
uses: actions/cache@v1
with:
path: ../Qt2
key: ${{ runner.os }}-QtCache2
path: ../Qt6
key: ${{ runner.os }}-Qt6Cache

# Get Qt
- name: Install Qt
- name: Install Qt 6
uses: jurplel/install-qt-action@v2
with:
cached: ${{ steps.cache-qt2.outputs.cache-hit }}
modules: "qtwebenginewidgets"
version: '6.2.2'
cached: ${{ steps.cache-qt6.outputs.cache-hit }}

# Latest Erlang on Ubuntu
- uses: gleam-lang/[email protected]
# Install Elixir on Ubuntu
- name: Linux Elixir
uses: erlef/setup-beam@v1
with:
otp-version: 23.2.1
otp-version: '24'
elixir-version: '1.12'
if: matrix.os == 'ubuntu-latest'

- name: Mac Erlang
# Install Elixir on Windows
- name: Win Elixir
uses: erlef/setup-beam@v1
with:
otp-version: '24'
elixir-version: '1.12'
if: matrix.os == 'windows-latest'

# Install Elixir on MacOS
- name: Mac Elixir
continue-on-error: true
run: |
export HOMEBREW_NO_INSTALL_CLEANUP=1
brew update
brew install erlang
brew install elixir
if: matrix.os == 'macos-latest'

# Prebuild on Ubuntu
- name: Prebuild Linux
working-directory: ${{github.workspace}}/app
env:
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt5_DIR}}
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt6_DIR}}
run: |
sudo apt install -y libssl-dev ruby-dev supercollider-server sc3-plugins-server alsa-utils jackd2 libjack-jackd2-dev libjack-jackd2-0 libasound2-dev librtmidi-dev pulseaudio-module-jack
./linux-prebuild.sh --build-aubio
sudo apt install -y pulseaudio dbus-x11 libssl-dev ruby-dev supercollider-server sc3-plugins-server alsa-base alsa-utils jackd2 libjack-jackd2-dev libjack-jackd2-0 libasound2-dev librtmidi-dev pulseaudio-module-jack
./linux-prebuild.sh
if: matrix.os == 'ubuntu-latest'


# Prebuild on Mac
- name: Prebuild Mac
working-directory: ${{github.workspace}}/app
env:
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt5_DIR}}
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt6_DIR}}
run: |
./mac-prebuild.sh
if: matrix.os == 'macos-latest'

# Note that we 'hide' the msys folders on windows to stop conflicts when building

# Prebuild on Windows
# Note that we 'hide' the msys folders on windows to stop conflicts when building
# Flac
- name: Prebuild Windows
working-directory: ${{github.workspace}}/app
shell: cmd
env:
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt5_DIR}}
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt6_DIR}}
run: |
mv c:/msys64 c:/__msys64
win-prebuild.bat
if: matrix.os == 'windows-latest'

#- name: Setup tmate session
# uses: mxschmitt/action-tmate@v3


# Run Configuration Config on Ubuntu
- name: Config Linux
working-directory: ${{github.workspace}}/app
env:
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt5_DIR}}
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt6_DIR}}
run: |
./linux-config.sh
if: matrix.os == 'ubuntu-latest'


# Run Configuration Config on Mac
- name: Config Mac
working-directory: ${{github.workspace}}/app
env:
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt5_DIR}}
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt6_DIR}}
run: |
./mac-config.sh
if: matrix.os == 'macos-latest'


# Run Configuration Config on Windows
- name: Config Windows
working-directory: ${{github.workspace}}/app
shell: cmd
env:
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt5_DIR}}
CC: ${{ matrix.cc }}
QT_INSTALL_LOCATION: ${{env.Qt6_DIR}}
run: |
win-config.bat
if: matrix.os == 'windows-latest'


# Finally: Build
- name: Do build
working-directory: ${{github.workspace}}/app/build
run: cmake --build . --config ${{ matrix.build_type }}


- name: BEAM Tests Windows
shell: cmd
working-directory: ${{github.workspace}}/app/server/beam/tau
run: mix test
env:
TAU_ENV: test
TAU_LOG_PATH: ${{github.workspace}}/tau_log.txt
if: matrix.os == 'windows-latest'

- name: BEAM Tests (Linux)
working-directory: ${{github.workspace}}/app/server/beam/tau
run: mix test
env:
TAU_ENV: test
TAU_LOG_PATH: ${{github.workspace}}/tau_log.txt
if: matrix.os == 'ubuntu-latest'

- name: BEAM Tests (macOS)
working-directory: ${{github.workspace}}/app/server/beam/tau
run: mix test
env:
TAU_ENV: test
TAU_LOG_PATH: ${{github.workspace}}/tau_log.txt
if: matrix.os == 'macos-latest'

- name: Ruby Tests (Mac/Linux)
working-directory: ${{github.workspace}}/app/server/ruby
run: rake test
run: rake test
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'

- name: API Tests - Mac
working-directory: ${{github.workspace}}/app/build/api-tests
env:
SONIC_PI_ENV: test
run: ctest --verbose
if: matrix.os == 'macos-latest'

- name: API Tests - Linux
working-directory: ${{github.workspace}}/app/build/api-tests
env:
SONIC_PI_ENV: test
run: |
jackd -rd dummy &
ctest --verbose
if: matrix.os == 'ubuntu-latest'

- name: API Tests Windows - Install Scream Audio Device
shell: powershell
run: |
Start-Service audio*
Invoke-WebRequest https://github.com/duncanthrax/scream/releases/download/3.6/Scream3.6.zip -OutFile C:\Scream3.6.zip
Extract-7Zip -Path C:\Scream3.6.zip -DestinationPath C:\Scream
$cert = (Get-AuthenticodeSignature C:\Scream\Install\driver\Scream.sys).SignerCertificate
$store = [System.Security.Cryptography.X509Certificates.X509Store]::new("TrustedPublisher", "LocalMachine")
$store.Open("ReadWrite")
$store.Add($cert)
$store.Close()
cd C:\Scream\Install\driver
C:\Scream\Install\helpers\devcon install Scream.inf *Scream
if: matrix.os == 'windows-latest'

- name: API Tests - Windows
shell: cmd
working-directory: ${{github.workspace}}/app/build/api-tests
env:
SONIC_PI_ENV: test
run: ctest --verbose
if: matrix.os == 'windows-latest'

- name: Archive Logs
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: Logs_${{matrix.title}}_${{matrix.cc}}_${{matrix.arch}}_${{matrix.build_type}}
path: |
~/.sonic-pi/log/*.log
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ build32
# Core dumps
*.dump

# Ignore vcpkg
app/vcpkg

# QT GUI
# --------

Expand All @@ -58,6 +61,7 @@ app/gui/qt/moc_mainwindow.cpp
app/gui/qt/moc_sonicpiudpserver.cpp
app/gui/qt/qrc_SonicPi.cpp
app/gui/qt/utils/ruby_help.h
app/gui/qt/utils/lang_list.h
app/gui/qt/help/*.html
app/gui/qt/help_files.qrc
app/gui/qt/lang/*.qm
Expand Down
Loading

0 comments on commit 1945763

Please sign in to comment.