diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..59601858 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,50 @@ +on: [push] +name: build +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + ghc: ['8.10'] + os: [ubuntu-latest] + name: Haskell GHC ${{ matrix.ghc }} + steps: + - uses: actions/checkout@v2 + - uses: haskell/actions/setup@v1.2.9 + id: setup-haskell-build + with: + ghc-version: ${{ matrix.ghc }} # Resolves to the latest point release of GHC 8.8 + cabal-version: '3.6.2.0' # Exact version of Cabal + enable-stack: true + stack-version: '2.7' + - name: Install dependencies + run: sudo apt-get install -y libxml2-utils libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev libpulse-dev libblas-dev liblapack-dev libasound2-dev + - name: Cabal update + run: cabal update + - name: Freeze Cabal plan + run: cabal freeze + - name: Cache Cabal build artifacts + uses: actions/cache@v2 + with: + path: | + ${{ steps.setup-haskell-build.outputs.cabal-store }} + dist-newstyle + key: ${{ runner.os }}-cabal-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }} + restore-keys: | + ${{ runner.os }}-cabal-${{ matrix.ghc }} + - name: Cabal build dependencies + run: | + cabal build all --enable-tests --only-dependencies + - name: Cabal build all + run: | + cabal build all --enable-tests + - name: Cabal test + run: | + cabal test all --enable-tests + - name: Cache stack build artifacts + uses: freckle/stack-cache-action@v1.0.1 + with: + stack-yaml: stack.yaml + - name: Stack build and test (lts-18.21 - ghc 8.10.7) + run: | + stack build --system-ghc --test diff --git a/essence-of-live-coding-vivid/essence-of-live-coding-vivid.cabal b/essence-of-live-coding-vivid/essence-of-live-coding-vivid.cabal index 5786eb6a..b89041e1 100644 --- a/essence-of-live-coding-vivid/essence-of-live-coding-vivid.cabal +++ b/essence-of-live-coding-vivid/essence-of-live-coding-vivid.cabal @@ -30,7 +30,7 @@ library build-depends: base >= 4.7 - , vivid >= 0.5 + , vivid >= 0.5.2.0 , essence-of-live-coding >= 0.2.5 hs-source-dirs: src default-language: Haskell2010 diff --git a/essence-of-live-coding-vivid/src/LiveCoding/Vivid.hs b/essence-of-live-coding-vivid/src/LiveCoding/Vivid.hs index 18b27eb2..882bc71a 100644 --- a/essence-of-live-coding-vivid/src/LiveCoding/Vivid.hs +++ b/essence-of-live-coding-vivid/src/LiveCoding/Vivid.hs @@ -58,7 +58,6 @@ vividHandleParametrised = ParametrisedHandle { .. } -- Synthdef or start/stop state changed, need to release and reinitialise changeParametrised old new synth = defaultChange createParametrised destroyParametrised old new synth -deriving instance Eq (SynthDef args) deriving instance Data SynthState deriving instance KnownSymbol a => Data (I a) diff --git a/stack.8.10.3.yaml b/stack.8.10.7.yaml similarity index 89% rename from stack.8.10.3.yaml rename to stack.8.10.7.yaml index 86c2c7ae..090d3e96 100644 --- a/stack.8.10.3.yaml +++ b/stack.8.10.7.yaml @@ -1,4 +1,4 @@ -resolver: lts-17.15 +resolver: lts-18.21 packages: - essence-of-live-coding @@ -18,7 +18,7 @@ extra-deps: - Yampa-0.13.1@sha256:4612a2646c27bcd3ac55c90dbc34249303e28aa5b3bc3e0c6fa9ce58b889843c,5436 - http-client-0.7.8@sha256:ed76dcd7edec3aaebe012541ca0a52594405e9b21d69420d26c0223bc4d5dc82,5400 - PortMidi-0.2.0.0@sha256:0671e36ec72e95138bf396234b205864a8a6d0ee353e09e01cbfd57004c56f40,2383 -- vivid-0.5.1.0@sha256:fb8b2055ed3d13e267bd2d92052e659ff1a6bc11f2d9d4a753094d35204353ec,8330 +- vivid-0.5.2.0@sha256:c3b8a9994c44fe347c1ed0b0d48cd0572e71e91b793c0e2e1887afa2bb01e595,8330 - vivid-osc-0.5.0.0@sha256:633e5c1c87633feaa26019442c3ae63946001c7afe2afa4d2cf22586bd4b182c,2786 - vivid-supercollider-0.4.1.2@sha256:c7493f2a67b04589df8943e58a7445803e3365c6ad439603bf35695734b9bd65,1738 diff --git a/stack.yaml b/stack.yaml index 664457ea..eb30fea6 120000 --- a/stack.yaml +++ b/stack.yaml @@ -1 +1 @@ -stack.8.10.3.yaml \ No newline at end of file +stack.8.10.7.yaml \ No newline at end of file diff --git a/stack.yaml.lock b/stack.yaml.lock new file mode 100644 index 00000000..868d557e --- /dev/null +++ b/stack.yaml.lock @@ -0,0 +1,54 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: +- completed: + hackage: Yampa-0.13.1@sha256:4612a2646c27bcd3ac55c90dbc34249303e28aa5b3bc3e0c6fa9ce58b889843c,5436 + pantry-tree: + size: 4039 + sha256: 2ebdfafc0143a66132e1f790fc3909c93654ee89fbe468574c5c2a36070dc6b3 + original: + hackage: Yampa-0.13.1@sha256:4612a2646c27bcd3ac55c90dbc34249303e28aa5b3bc3e0c6fa9ce58b889843c,5436 +- completed: + hackage: http-client-0.7.8@sha256:ed76dcd7edec3aaebe012541ca0a52594405e9b21d69420d26c0223bc4d5dc82,5400 + pantry-tree: + size: 2459 + sha256: 76613a317255d72133176fccb5f2da9228c36bccd9d587b8a2dd3e5a6491cd48 + original: + hackage: http-client-0.7.8@sha256:ed76dcd7edec3aaebe012541ca0a52594405e9b21d69420d26c0223bc4d5dc82,5400 +- completed: + hackage: PortMidi-0.2.0.0@sha256:0671e36ec72e95138bf396234b205864a8a6d0ee353e09e01cbfd57004c56f40,2383 + pantry-tree: + size: 1818 + sha256: c9936666afc390560319024c25ecb184e2518ae4d3be5ae14081231091c1f073 + original: + hackage: PortMidi-0.2.0.0@sha256:0671e36ec72e95138bf396234b205864a8a6d0ee353e09e01cbfd57004c56f40,2383 +- completed: + hackage: vivid-0.5.2.0@sha256:c3b8a9994c44fe347c1ed0b0d48cd0572e71e91b793c0e2e1887afa2bb01e595,8330 + pantry-tree: + size: 3767 + sha256: dac5c08ce0d42214067b585df487b8b4df81dad1400382cdd257c6a6dce7c941 + original: + hackage: vivid-0.5.2.0@sha256:c3b8a9994c44fe347c1ed0b0d48cd0572e71e91b793c0e2e1887afa2bb01e595,8330 +- completed: + hackage: vivid-osc-0.5.0.0@sha256:633e5c1c87633feaa26019442c3ae63946001c7afe2afa4d2cf22586bd4b182c,2786 + pantry-tree: + size: 261 + sha256: 913a6edc636304ef5f3f92f0967b218a29fa611fdb2ba66c81a8c3b2694a3ef3 + original: + hackage: vivid-osc-0.5.0.0@sha256:633e5c1c87633feaa26019442c3ae63946001c7afe2afa4d2cf22586bd4b182c,2786 +- completed: + hackage: vivid-supercollider-0.4.1.2@sha256:c7493f2a67b04589df8943e58a7445803e3365c6ad439603bf35695734b9bd65,1738 + pantry-tree: + size: 441 + sha256: 10fc26fdd7213c555698cf6a377434f3623af1a2af208eb5c72070b5aec568ab + original: + hackage: vivid-supercollider-0.4.1.2@sha256:c7493f2a67b04589df8943e58a7445803e3365c6ad439603bf35695734b9bd65,1738 +snapshots: +- completed: + size: 586110 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/18/21.yaml + sha256: ce4fb8d44f3c6c6032060a02e0ebb1bd29937c9a70101c1517b92a87d9515160 + original: lts-18.21