MicroHs Nightly #217
This file contains hidden or 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: MicroHs Nightly | |
| # Compile on all architectures only nightly. | |
| on: | |
| schedule: | |
| - cron: '0 3 * * *' # Every day at 03:00 UTC | |
| jobs: | |
| build-linux-x86_64: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: make | |
| run: make | |
| - name: make everytestmhs | |
| run: make everytestmhs | |
| build-linux-gmp-x86_64: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: install GMP (headers + libs) | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libgmp-dev | |
| - name: make | |
| run: make MHSGMPCCFLAGS=-DWANT_GMP=1 MCABALGMP=-fgmp MHSGMP=-ilib/gmp MHSGMPCCLIBS=-lgmp | |
| - name: make everytestmhs | |
| run: make MHSGMPCCFLAGS=-DWANT_GMP=1 MCABALGMP=-fgmp MHSGMP=-ilib/gmp MHSGMPCCLIBS=-lgmp everytestmhs | |
| - name: make install | |
| run: make MHSGMPCCFLAGS=-DWANT_GMP=1 MCABALGMP=-fgmp MHSGMP=-ilib/gmp MHSGMPCCLIBS=-lgmp minstall | |
| build-macos: | |
| runs-on: macos-latest | |
| steps: | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: make | |
| run: make | |
| - name: make everytestmhs | |
| run: make everytestmhs | |
| build-linux-x86_64-cabal: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: Cabal cache | |
| uses: actions/cache@v3 | |
| env: | |
| cache-name: cache-cabal | |
| with: | |
| path: ~/.cabal | |
| key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }} | |
| restore-keys: | | |
| ${{ runner.os }}-build-${{ env.cache-name }}- | |
| ${{ runner.os }}-build- | |
| ${{ runner.os }}- | |
| - name: Install dependencies | |
| run: | | |
| cabal update | |
| cabal build --only-dependencies | |
| - name: Build | |
| run: cabal build | |
| build-linux-micro-x86_64: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: make | |
| run: make CONF=micro | |
| build-windows: | |
| runs-on: windows-latest | |
| steps: | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: set up MSVC | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: nmake | |
| run: nmake -f Makefile.windows | |
| - name: nmake exampletest | |
| run: nmake -f Makefile.windows exampletest | |
| build-linux-aarch64: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: jirutka/setup-alpine@v1 | |
| with: | |
| arch: aarch64 | |
| branch: v3.15 | |
| packages: > | |
| build-base | |
| gcc | |
| make | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: make | |
| run: make | |
| shell: alpine.sh {0} | |
| - name: make everytestmhs | |
| run: make everytestmhs | |
| shell: alpine.sh {0} | |
| build-linux-s390x: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: jirutka/setup-alpine@v1 | |
| with: | |
| arch: s390x | |
| branch: v3.15 | |
| packages: > | |
| build-base | |
| gcc | |
| make | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: make | |
| run: make | |
| shell: alpine.sh {0} | |
| - name: make everytestmhs | |
| run: make everytestmhs | |
| shell: alpine.sh {0} | |
| build-linux-x86: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: jirutka/setup-alpine@v1 | |
| with: | |
| arch: x86 | |
| branch: v3.15 | |
| packages: > | |
| build-base | |
| gcc | |
| make | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: make | |
| run: make | |
| shell: alpine.sh {0} | |
| - name: make everytestmhs | |
| run: make everytestmhs | |
| shell: alpine.sh {0} | |
| build-linux-armv7: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: jirutka/setup-alpine@v1 | |
| with: | |
| arch: armv7 | |
| branch: v3.15 | |
| packages: > | |
| build-base | |
| gcc | |
| make | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: make | |
| run: make | |
| shell: alpine.sh {0} | |
| - name: make everytestmhs | |
| run: make everytestmhs | |
| shell: alpine.sh {0} | |
| build-linux-riscv64: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: jirutka/setup-alpine@v1 | |
| with: | |
| arch: riscv64 | |
| branch: v3.20 | |
| packages: > | |
| build-base | |
| gcc | |
| make | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: make | |
| run: make | |
| shell: alpine.sh {0} | |
| - name: make everytestmhs | |
| run: make everytestmhs | |
| shell: alpine.sh {0} | |
| build-linux-ppc64le: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: jirutka/setup-alpine@v1 | |
| with: | |
| arch: ppc64le | |
| branch: v3.15 | |
| packages: > | |
| build-base | |
| gcc | |
| make | |
| - name: checkout repo | |
| uses: actions/checkout@v4 | |
| - name: make | |
| run: make | |
| shell: alpine.sh {0} | |
| - name: make everytestmhs | |
| run: make everytestmhs | |
| shell: alpine.sh {0} | |
| # build-linux-ppc64be: | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - uses: jirutka/setup-alpine@v1 | |
| # with: | |
| # arch: ppc64be | |
| # branch: v3.15 | |
| # packages: > | |
| # build-base | |
| # gcc | |
| # make | |
| # - name: checkout repo | |
| # uses: actions/checkout@v4 | |
| # - name: make | |
| # run: make | |
| # shell: alpine.sh {0} | |
| # - name: make everytestmhs | |
| # run: make everytestmhs | |
| # shell: alpine.sh {0} | |
| build-emscripten: | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: mymindstorm/setup-emsdk@v13 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - uses: haskell-actions/setup@v2 | |
| - name: make newmhs | |
| run: make newmhs | |
| - name: run emscripten tests | |
| run: make runtestemscripten | |
| # Build packages on a 64 bit big endian platform | |
| build-hackage-x86: | |
| runs-on: ubuntu-latest | |
| steps: | |
| # mhs | |
| - uses: jirutka/setup-alpine@v1 | |
| with: | |
| arch: s390x | |
| branch: v3.15 | |
| packages: > | |
| build-base | |
| gcc | |
| make | |
| curl | |
| git | |
| - name: checkout mhs repo | |
| uses: actions/checkout@v4 | |
| with: | |
| path: mhs | |
| - name: make and install mhs | |
| run: | | |
| cd mhs | |
| make minstall | |
| echo "$HOME/.mcabal/bin" >> "$GITHUB_PATH" | |
| shell: alpine.sh {0} | |
| # Build hackage packages | |
| - name: compile and install packages | |
| run: | | |
| cd mhs | |
| make -f Makefile.packages | |
| shell: alpine.sh {0} | |
| # DONE | |
| - name: cleanup | |
| run: | | |
| rm -rf $HOME/.mcabal |