Skip to content

Cherry pick new Boot changes and adjust to incorporate recent changes #742

Cherry pick new Boot changes and adjust to incorporate recent changes

Cherry pick new Boot changes and adjust to incorporate recent changes #742

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