Enabling github actions

Any chance we enable github actions for checking the status of the PR in all platforms and all extras / demos ? It will help a lot…

2 Likes

An example of runs Actions · kunitoki/JUCE · GitHub

I don’t understand why compiling all targets, juce-cmake is building each demo as a standalone executable. recompiling gazillions of time the same juce_library files.

If i use this, i will start a process which will take hours, because of the way it is configured.

cmake --build cmake-build

The alternative is that i build each target individually, but of course if an extra target is added or removed, then i need to change the CI scripts, not really optimal.

Also, any reason why i get demo stuff copied inside the AudioPluginHost bundle ?

Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/AudioLiveScrollingDisplay.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/AddPair.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/ApplyForce.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/BodyTypes.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Breakable.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Bridge.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/BulletTest.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Cantilever.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Car.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Chain.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/CharacterCollision.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/CollisionFiltering.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/CollisionProcessing.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/CompoundShapes.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Confined.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/ContinuousTest.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/DistanceTest.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Dominos.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/DumpShell.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/DynamicTreeTest.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/EdgeShapes.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/EdgeTest.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Gears.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/OneSidedPlatform.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Pinball.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/PolyCollision.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/PolyShapes.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Prismatic.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Pulleys.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Pyramid.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/RayCast.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Revolute.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Rope.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/RopeJoint.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/SensorTest.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/ShapeEditing.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/SliderCrank.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/SphereStack.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/TestEntries.cpp
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/TheoJansen.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Tiles.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/TimeOfImpact.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Tumbler.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/VaryingFriction.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/VaryingRestitution.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/VerticalStack.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Box2DTests/Web.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/DSPDemos_Common.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/DemoUtilities.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/images/ic_stat_name.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/images/ic_stat_name10.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/images/ic_stat_name2.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/images/ic_stat_name3.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/images/ic_stat_name4.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/images/ic_stat_name5.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/images/ic_stat_name6.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/images/ic_stat_name7.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/images/ic_stat_name8.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/images/ic_stat_name9.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/sounds/demonstrative.caf
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/sounds/demonstrative.mp3
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/sounds/isntit.caf
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/sounds/isntit.mp3
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/sounds/jinglebellssms.caf
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/sounds/jinglebellssms.mp3
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/sounds/served.caf
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/sounds/served.mp3
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/sounds/solemn.caf
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Notifications/sounds/solemn.mp3
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Ed.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Ed0.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Ed1.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Ed2.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Fabian.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Fabian0.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Fabian1.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Fabian2.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/JB.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/JB0.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/JB1.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/JB2.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Jules.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Jules0.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Jules1.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Jules2.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Lukasz.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Lukasz0.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Lukasz1.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Lukasz2.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Robot.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Robot0.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Robot1.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/Robot2.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Purchases/icon.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Signing/InAppPurchase.keystore
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/Signing/README.txt
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/WavefrontObjParser.h
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/cassette_recorder.wav
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/cello.wav
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/demo table data.xml
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/google-services.json
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/guitar_amp.wav
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/icons.zip
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/juce_icon.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/juce_icon_template.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/juce_module_info
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/portmeirion.jpg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/power.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/proaudio.path
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/reverb_ir.wav
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/singing.ogg
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/teapot.obj
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/tile_background.png
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Assets/treedemo.xml
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/Icon.icns
Copying OS X content extras/AudioPluginHost/AudioPluginHost_artefacts/Release/AudioPluginHost.app/Contents/Resources/RecentFilesMenuTemplate.nib

Some reported issues:

  1. BinaryBuilder fails linking on ubuntu-18.04

[100%] Linking CXX executable BinaryBuilder_artefacts/Release/BinaryBuilder
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so: undefined reference to pthread_create' /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so: undefined reference to pthread_detach’
collect2: error: ld returned 1 exit status

  1. Issues with running the UnitTestRunner in Debug on ubuntu-18.04

Starting test: Files / Reading…
!!! Test 8 failed

FAILED!! 1 test failed, out of a total of 21


Starting test: Files / Writing…
!!! Test 43 failed

FAILED!! 1 test failed, out of a total of 53

and

Starting test: MidiFile / ReadTrack returns available messages if input is truncated…
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
JUCE Assertion failure in juce_MidiMessage.cpp:82
All tests completed successfully

  1. When building on windows when using -DCMAKE_BUILD_TYPE= it is ignored (only on windows tho):

CMake Warning:
Manually-specified variables were not used by the project:

CMAKE_BUILD_TYPE

And then specifying Release will build Debug.

Any ideas ?

Whilst your efforts to improve JUCE are certainly appreciated, we’re not going to add GitHub actions to the repository.

Our internal CI suite consists of hundreds of jobs run on many different bits of hardware. It’s not something we can open up to the public. Getting things to build on the relatively limited options that GitHub Actions can provide is nowhere near the coverage of platforms and build configurations that we require, and we don’t want the overhead of maintaining a redundant CI pipeline.

Fair enough, even if not having something like this is against favouring people to provide quality PRs that are green among as much platforms as possible.

Can you open up which platforms are you building on?

Can you also explain the failures in UnitTests on linux debug? Are you testing those?

By default, CMake uses the latest “Visual Studio” generator on Windows, which is a multi-config generator. Multi-config generators ignore CMAKE_BUILD_TYPE, since they support selecting the build configuration at build time. Single-config generators (like Unix Makefiles, which is used by default on Linux and macOS) need to know the build configuration at configure time, thus they use CMAKE_BUILD_TYPE.

1 Like

Oh awesome, good to know. Thanks for the input!

One of the platforms we test on is Ubuntu 18.04. All tests pass.

  1. This is likely to be a runner and/or machine configuration issue.
  2. Also likely to be a runner and/or machine configuration issue. We test things like writing to /tmp which may not be allowed. Assertion failures are expected - we test things like reading misaligned memory access in the DSP functions and ill-formatted blocks of MIDI data.

We test the cross section of:

  • Building on different versions of macOS, Windows and Linux (and iOS and Android on each)
    • On each OS we test different deployment targets, platform SDKs, and compilers
      • On each of those we test different plug-in formats, types of application, project generation

Platforms: macOS 10.10 to 11.0 and ARM, Windows 8 to Windows 10, various Linux
Deployment targets: 10.7 to 11, SDKs 10.11 to 11
Compilers: VS 2015 to 2019, Xcode 8 to 12, Android Studio latest, GCC 4.8 to 10, LLVM 7 to 10
CMake: 3.12 and 3.15 and all the different generators on all the different platforms

2 Likes

We don’t expect PRs to be able to conform to every single platform-compiler-option combination. It’s not reasonable for people who don’t develop frameworks to understand or recognise what bits of code will be problematic, or even how to fix them for less common combinations.

Yeah that’s a bit of a hell to maintain. How long a full CI run take?

I still think a smaller platform subset in the public JUCE is a help for contributors and a help for you to get a glance on the status of a feature before considering for inclusion.

I’m doing my best to help you opening up more the public development of juce and obtain help in getting quick wins / improvements in the product. I will never stop doing that as i grew up with juce and Julian and contributed a fair amount of features and fixes since 2004 or so. And i still think we all can do much more for it…