diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml index a894b1c..57c9b83 100644 --- a/.github/workflows/nightly.yaml +++ b/.github/workflows/nightly.yaml @@ -1,6 +1,7 @@ name: Nightly Releases on: + workflow_dispatch: push: branches: [ dev, ci/** ] @@ -18,7 +19,7 @@ jobs: with: name: docs path: build/sc_ref - + macbuild: runs-on: macos-11 steps: @@ -31,6 +32,7 @@ jobs: name: macbuild path: install + winbuild: runs-on: windows-latest steps: @@ -47,6 +49,7 @@ jobs: name: winbuild path: install + linuxbuild: runs-on: ubuntu-18.04 steps: @@ -81,6 +84,7 @@ jobs: - name: compress win run: zip -r ../FluCoMa-SC-Mac-nightly.zip . working-directory: mac + - uses: actions/download-artifact@v2 with: @@ -94,9 +98,11 @@ jobs: run: zip -r ../FluCoMa-SC-Windows-nightly.zip . working-directory: win + - uses: actions/download-artifact@v2 with: name: linuxbuild + path: linux - name: copy docs to linux @@ -105,6 +111,7 @@ jobs: - name: compress linux run: zip -r ../FluCoMa-SC-Linux-nightly.zip . working-directory: linux + - uses: dev-drprasad/delete-tag-and-release@v0.2.0 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a38b51f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,101 @@ +name: Release + +on: + workflow_dispatch: + inputs: + base: + description: 'Base branch to deploy core from' + required: false + default: 'main' + +jobs: + macbuild: + runs-on: macos-11 + steps: + - uses: actions/checkout@v2 + - uses: flucoma/actions/env@v4 + with: + branch: ${{ github.event.inputs.base }} + - uses: flucoma/actions/sc@v4 + + - name: zip release + run: zip -r ../FluCoMa-SC-Mac-nightly.zip FluidCorpusManipulation + working-directory: install + + - uses: actions/upload-artifact@v2 + with: + name: macbuild + path: FluCoMa-SC-Mac-"${{ needs.linuxbuild.outputs.version }}".zip + + winbuild: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - uses: flucoma/actions/env@v4 + with: + branch: ${{ github.event.inputs.base }} + - uses: flucoma/actions/sc@v4 + + - name: remove pdb files + run: Remove-Item install -Recurse -Include *.pdb + + - name: zip release + run: Compress-Archive install/FluidCorpusManipulation FluCoMa-SC-Windows-nightly.zip + + - uses: actions/upload-artifact@v2 + with: + name: winbuild + path: FluCoMa-SC-Windows-"${{ needs.linuxbuild.outputs.version }}".zip + + linuxbuild: + runs-on: ubuntu-18.04 + outputs: + version: ${{ steps.get-version.outputs.version }} + steps: + - uses: actions/checkout@v2 + - uses: flucoma/actions/env@v4 + with: + branch: ${{ github.event.inputs.base }} + - uses: flucoma/actions/sc@v4 + + - name: zip release + run: zip -r ../FluCoMa-SC-Linux-nightly.zip FluidCorpusManipulation + working-directory: install + + - id: get-version + run: echo "::set-output name=version::$(cat flucoma.version.rc)" + working-directory: core + + - uses: actions/upload-artifact@v2 + with: + name: linuxbuild + path: FluCoMa-SC-Linux-"${{ needs.linuxbuild.outputs.version }}".zip + + release: + runs-on: ubuntu-latest + needs: [macbuild, winbuild, linuxbuild] + steps: + - uses: actions/download-artifact@v2 + with: + name: macbuild + path: . + + - uses: actions/download-artifact@v2 + with: + name: winbuild + path: . + + - uses: actions/download-artifact@v2 + with: + name: linuxbuild + path: . + + - name: package and upload + uses: softprops/action-gh-release@v1 + with: + name: ${{ needs.linuxbuild.outputs.version }} + body: "This is a release build of the FluCoMa SuperCollider package. The build hash is ${{ github.sha }}" + files: FluCoMa*.zip + prerelease: true + tag_name: ${{ needs.linuxbuild.outputs.version }} + draft: false diff --git a/README.md b/README.md index 27be0b9..a1692f3 100644 --- a/README.md +++ b/README.md @@ -2,34 +2,26 @@ This repository hosts code for generating the SC objects and documentation resources for the Fluid Corpus Manipulation Project. Much of the actual code that does the exciting stuff lives in this repository's principal dependency, the [Fluid Corpus Manipulation Library](https://github.com/flucoma/flucoma-core). + You can also download the most [recent release](https://learn.flucoma.org/installation/sc) or the most recent [nightly build](https://github.com/flucoma/flucoma-sc/releases/tag/nightly). Note that on macOS you may need to [dequarantine](https://learn.flucoma.org/installation/sc#step-3-dequarantine-scx-extensions) the binary files. ## Pre-requisites -- [CMake](http://cmake.org) >= 3.11 -- A C++ 14 compliant compiler for Mac or Windows (via XCode tools on Mac, and Visual Studio 17 >= 15.9 on Windows) - -## Dependencies - -- [SC Source Code](https://github.com/supercollider/supercollider): this is the only dependency we don't (optionally) manage for you, so there must be a version available to point to when you run, using the CMake Variable `SC_PATH` (see below). It can live anywhere on your file system. - -These will be downloaded and configured automatically, unless you pass CMake a source code location on disk for each (see below): -- [Fluid Corpus Manipulation Library](https://github.com/flucoma/flucoma-core) -- [Eigen](https://gitlab.com/libeigen/eigen) (3.3.5) -- [HISSTools Library](https://github.com/AlexHarker/HISSTools_Library) +* C++14 compliant compiler (clang, GCC or MSVC) +* cmake +* make (or Ninja or XCode or VisualStudio) +* git +* an internet connection +* [SuperCollider Source Code](https://github.com/supercollider/supercollider) -## I'm in a Hurry... +CMake will automatically download the other dependencies needed -...and you already have a development environment set up, understand CMake, and have the SC source available? - -Cool: - -``` +```bash mkdir -p build && cd build -cmake -DSC_PATH= .. +cmake -DSC_PATH= .. make install ``` @@ -68,6 +60,8 @@ For ARM, we use the following default set of flags (with the Bela in mind): ``` -march=armv7-a -mtune=cortex-a8 -mfloat-abi=hard -mfpu=neon ``` +======= +This will assemble a package in `release-packaging`. ## Credits #### FluCoMa core development team (in alphabetical order)