Skip to content

Merge pull request #1967 from digitallyinduced/ghc-linker-patch #3499

Merge pull request #1967 from digitallyinduced/ghc-linker-patch

Merge pull request #1967 from digitallyinduced/ghc-linker-patch #3499

Workflow file for this run

name: Binary Build
on:
push:
branches:
- master
- 'v.+'
tags: ['**']
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, ARM64]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v26
with:
nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/d899609c2a22bbd345d2ed200c6ebc08a772ccc9.tar.gz
if: matrix.os != 'ARM64'
- uses: cachix/cachix-action@v14
with:
name: digitallyinduced
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
if: matrix.os != 'ARM64'
- run: git clone https://github.com/digitallyinduced/ihp-boilerplate.git
- name: Cache build directory
uses: actions/cache@v4
with:
path: |
ihp-boilerplate/build
key: ${{ runner.os }}-ghc
if: matrix.os != 'ARM64'
- run: |
cd ihp-boilerplate
nix-shell -p php --run "php ../.github/patch-flakes.php ${{ github.ref }} ${{ github.event.repository.full_name }} ${{ github.sha }}"
cat flake.nix
mv Makefile Makefile.old
echo 'GHC_OPTIONS+= -rtsopts=all\n.SHELLFLAGS := -eu -o pipefail -c\n\n'|cat - Makefile.old > Makefile
nix develop --impure --command bash -c "new-application Web && make build/bin/RunUnoptimizedProdServer"
- name: Build IHP app
run: |
cd ihp-boilerplate && nix develop --impure --profile ihp-boilerplate-profile --command "true"
- name: Install jq
run: nix profile install nixpkgs#jq
if: matrix.os != 'ARM64'
- name: Push IHP app to cachix
run: |
cd ihp-boilerplate
# Cachix doesn't natively support nix flakes in it's cachix-action
# See https://github.com/cachix/cachix-action/issues/47
cachix push digitallyinduced ihp-boilerplate-profile
# Pushing runtime closure
nix develop --impure --command bash -c 'make -s all; new-application Web'
git add . # So the generated files are available to nix flakes
nix build --json --impure | jq -r '.[].outputs | to_entries[].value' | cachix push digitallyinduced
# Also build the framework's dev env
- name: Build framework devShell
run: nix develop --impure --profile ihp-profile --command "true"
- name: Push framework devShell to cachix
run: cachix push digitallyinduced ihp-profile