Merge pull request #1088 from tidalcycles/tactus-tweaks #781
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build-listener-macosx | |
on: | |
push: | |
paths-ignore: | |
- "**.md" | |
pull_request: | |
paths-ignore: | |
- "**.md" | |
jobs: | |
build: | |
runs-on: macOS-latest | |
strategy: | |
matrix: | |
ghc: ['9.0.1'] | |
cabal: ['3.4.0.0'] | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v2 | |
- name: Setup Haskell | |
uses: haskell/actions/setup@v1 | |
id: setup-haskell-cabal | |
with: | |
ghc-version: ${{ matrix.ghc }} | |
cabal-version: ${{ matrix.cabal }} | |
- name: Freeze | |
run: | | |
cabal freeze | |
- name: Cache ~/.cabal/packages, ~/.cabal/store and dist-newstyle | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cabal/packages | |
~/.cabal/store | |
dist-newstyle | |
key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('tidal-listener/src') }} | |
- name: cabal update and build | |
run: | | |
cabal update | |
cabal build --enable-tests tidal-listener | |
cabal build | |
- name: move GHC libs and configs | |
run: | | |
mkdir -p tidal-listener/binary/haskell-libs/ghc-packages/ | |
cp -r ${{ steps.setup-haskell-cabal.outputs.ghc-path }}/../lib/ghc-${{ matrix.ghc }}/* tidal-listener/binary/haskell-libs/ghc-packages | |
- name: move installed packages | |
run: | | |
mkdir -p tidal-listener/binary/haskell-libs/packages/ | |
cp -r ${{ steps.setup-haskell-cabal.outputs.cabal-store }}/ghc-${{ matrix.ghc }}/* tidal-listener/binary/haskell-libs/packages | |
ls tidal-listener/binary/haskell-libs/packages | |
- name: change paths in config files (GHC) | |
run: | | |
export LANG=C | |
export LC_CTYPE=C | |
export LC_ALL=C | |
mv tidal-listener/binary/haskell-libs/ghc-packages/package.conf.d tidal-listener/binary/haskell-libs/package.conf.d | |
sed -i '' 's+/Users/runner/.ghcup/ghc/${{ matrix.ghc }}/lib/ghc-${{ matrix.ghc }}+${pkgroot}/ghc-packages+g' tidal-listener/binary/haskell-libs/package.conf.d/* | |
- name: change paths in config files (cabal) | |
run: | | |
export LANG=C | |
export LC_CTYPE=C | |
export LC_ALL=C | |
mv tidal-listener/binary/haskell-libs/packages/package.db tidal-listener/binary/haskell-libs/package.db | |
sed -i '' 's+/Users/runner/.cabal/store/ghc-8.10.1+${pkgroot}/packages+g' tidal-listener/binary/haskell-libs/package.db/* | |
- name: move ghc settings etc | |
run: | | |
mv tidal-listener/binary/haskell-libs/ghc-packages/settings tidal-listener/binary/haskell-libs/settings | |
mv tidal-listener/binary/haskell-libs/ghc-packages/platformConstants tidal-listener/binary/haskell-libs/platformConstants | |
mv tidal-listener/binary/haskell-libs/ghc-packages/llvm-targets tidal-listener/binary/haskell-libs/llvm-targets | |
mv tidal-listener/binary/haskell-libs/ghc-packages/llvm-passes tidal-listener/binary/haskell-libs/llvm-passes | |
- name: ghc-pkg recache | |
run: | | |
ghc-pkg --package-db=tidal-listener/binary/haskell-libs/package.conf.d recache | |
ghc-pkg --package-db=tidal-listener/binary/haskell-libs/package.db recache | |
ghc-pkg --package-db=tidal-listener/binary/haskell-libs/package.conf.d --package-db=tidal-listener/binary/haskell-libs/package.db check | |
- name: remove unneccessary libs | |
run: | | |
cd tidal-listener/binary/haskell-libs/ghc-packages | |
rm -r ghc-${{ matrix.ghc }} | |
rm -r Cabal-* | |
rm -r rts | |
- name: fake gcc | |
run: | | |
export LANG=C | |
export LC_CTYPE=C | |
export LC_ALL=C | |
mkdir -p tidal-listener/binary/haskell-libs/bin/ | |
cp -r tidal-listener/fake_gcc.sh tidal-listener/binary/haskell-libs/bin/fake_gcc.sh | |
sed -i '' 's+gcc+$topdir/bin/fake_gcc.sh+g' tidal-listener/binary/haskell-libs/settings | |
chmod 755 tidal-listener/binary/haskell-libs/bin/fake_gcc.sh | |
- name: move executables | |
run: | | |
cp -r dist-newstyle/build/x86_64-osx/ghc-${{ matrix.ghc }}/tidal-listener-0.1.0.0/x/tidal-listener/build/tidal-listener/tidal-listener tidal-listener/binary/tidal-listener | |
# cp -r dist-newstyle/build/x86_64-osx/ghc-${{ matrix.ghc }}/tidal-*/x/tidal/build/tidal/tidal tidal-listener/binary/tidal | |
- name: zip files | |
run: | | |
cd tidal-listener/ | |
tar cvfj macosx.tar binary/* | |
- uses: actions/upload-artifact@v2 | |
with: | |
path: tidal-listener/macosx.tar | |
release: | |
runs-on: ubuntu-latest | |
needs: build | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
- uses: actions/download-artifact@v2 | |
- run: ls */* | |
- uses: softprops/action-gh-release@v1 | |
with: | |
files: artifact/macosx.tar |