gogins / csound-vst3-opcodes

The "vst3" opcodes enable Csound to host VST3 plugin instruments and effects.
GNU General Public License v3.0
5 stars 2 forks source link

Implement continuous integration build and release for Linux, Windows, and Mac OS #5

Closed gogins closed 2 years ago

gogins commented 3 years ago

Doing this will perhaps tell me if I should try to do the same for csound-extended.

gogins commented 3 years ago

Some hints: https://gist.github.com/youhide/121750fc4878801ea8e908080b535beb. I should of course also look at how Csound does this.

gogins commented 3 years ago

Csound doesn't do binary releases for native Csound.

One of these may help produce releases:

gogins commented 3 years ago

Starting to build but need dependencies:

-- Checking for module 'xcb-util'
--   No package 'xcb-util' found
gogins commented 3 years ago

See https://www.codeproject.com/Articles/5265628/Writing-CI-Pipeline-using-GitHub-Actions-to-Build.

gogins commented 3 years ago
gogins commented 3 years ago

Targets are built in the following locations:

Linux

151797 4868 -rwxr-xr-x 1 runner docker 4981360 May 7 11:27 ./lib/Debug/libvst3_plugins.so

Windows

562949953435630 988 -rwxr-xr-x 1 runneradmin 197121 1010176 May 7 11:26 ./lib/Debug/vst3_plugins.dll 281474976724978 4 -rw-r--r-- 1 runneradmin 197121 1091 May 7 11:26 ./lib/Debug/vst3_plugins.exp 562949953435627 5676 -rw-r--r-- 1 runneradmin 197121 5810296 May 7 11:26 ./lib/Debug/vst3_plugins.ilk 281474976724979 4 -rw-r--r-- 1 runneradmin 197121 2326 May 7 11:26 ./lib/Debug/vst3_plugins.lib 562949953435631 5004 -rw-r--r-- 1 runneradmin 197121 5124096 May 7 11:26 ./lib/Debug/vst3_plugins.pdb

Mac OS

./lib/Debug/libvst3_plugins.so

This should have .dylib not .so.

gogins commented 3 years ago

I am trying to upload the artifacts. It is clear this will happen reliably but the path globs need to be correct. OK, it's working now.

gogins commented 3 years ago

I think it's better to have a separate workflow, triggered by a GitHub release or tag, that copies the artifacts into the release, as in this: https://github.com/marketplace/actions/github-action-publish-binaries

gogins commented 3 years ago

Uploading the artifacts and releasing them is not going to work this way. I will have to write a script to create a zip file and upload that, for each operating system.

gogins commented 3 years ago

I created nice archives but now the actual Csound plugin library is missing. That is because SMTG_MYPLUGINS_SRC_PATH is not parsed correctly by CMake on the runner machines. I looked at the CMake documentation and it looks like only an absolute path is reliable. I have to come up with this either by hard-coding or by using some trick.

gogins commented 3 years ago

At least on Windows, must be built for release so as not to require the debug DLLs.

gogins commented 3 years ago

I keep seeing /MDd in the compiler command.

gogins commented 3 years ago

Got the Release build to compile with --config Release. Fixed paths in the .csd. Crashes on the first call to the audio rate method. I had to fix one insufficient implicit type cast in the preset stream, I should look for similar cases in the audio rate method. The crash happened right after the message starting vst3audio: input channels: 0.

gogins commented 2 years ago

Builds are completing for Ubuntu, Windows, and macOS. I have tagged and released these builds.

I can't proceed on this issue without some data from Windows, so I am closing this issue until I get that data.