Update to Plinth 1.65 #105
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: CI | |
| on: | |
| pull_request: | |
| types: [opened, synchronize] | |
| push: | |
| branches: [master, ghc-9.6-plinth] | |
| workflow_dispatch: | |
| jobs: | |
| cabal: | |
| name: ${{ matrix.os }} / ghc ${{ matrix.ghc }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest] | |
| ghc: ['9.6.7'] | |
| steps: | |
| - name: Free disk space | |
| uses: jlumbroso/free-disk-space@main | |
| with: | |
| # this might remove tools that are actually needed, | |
| # if set to "true" but frees about 6 GB | |
| tool-cache: false | |
| # all of these default to true, but feel free to set to | |
| # "false" if necessary for your workflow | |
| android: true | |
| dotnet: true | |
| haskell: false | |
| # left off: it is slow (~1-2 min) and the bulk of the build now lives | |
| # on /mnt, so reclaiming large packages on / is not needed. | |
| large-packages: false | |
| docker-images: true | |
| swap-storage: true | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: false | |
| # The runner's workspace disk (/) has ~21 GB free; the ephemeral disk at | |
| # /mnt has ~70 GB. Build everything under _build on /mnt to avoid running | |
| # out of space. Both plinth-build.sh and plinth-test.sh write under _build. | |
| # We bind-mount (rather than symlink) so _build stays a real directory: | |
| # a symlinked build root can confuse path tracking in Hadrian/Cabal. | |
| - name: Build on the large /mnt disk | |
| run: | | |
| sudo mkdir -p /mnt/_build | |
| mkdir -p "$GITHUB_WORKSPACE/_build" | |
| sudo mount --bind /mnt/_build "$GITHUB_WORKSPACE/_build" | |
| sudo chown "$USER" "$GITHUB_WORKSPACE/_build" | |
| - name: Setup SSH for submodules | |
| run: | | |
| mkdir -p ~/.ssh | |
| echo "${{ secrets.SUBMODULE_SSH_KEY }}" > ~/.ssh/id_rsa | |
| chmod 600 ~/.ssh/id_rsa | |
| ssh-keyscan github.com >> ~/.ssh/known_hosts | |
| - name: Init and update submodules | |
| run: | | |
| git submodule sync | |
| # Shallow (single-commit) submodule clones: the build never needs | |
| # submodule history, and these 29 submodules (notably plutus) carry a | |
| # lot of it. --jobs fetches them in parallel. GitHub allows fetching | |
| # the pinned SHA directly, so depth 1 works even when it isn't a | |
| # branch tip. | |
| git submodule update --init --recursive --depth 1 --jobs 4 | |
| - uses: haskell-actions/setup@v2 | |
| id: setup | |
| name: Setup Haskell tools | |
| with: | |
| ghc-version: ${{ matrix.ghc }} | |
| cabal-version: "latest" | |
| cabal-update: true | |
| - name: Build uplc-ghc | |
| run: ./plinth-build.sh | |
| # - name: Test uplc-ghc | |
| # run: ./plinth-test.sh |