Merge pull request #1835 from digitallyinduced/bounded-tests-fix #3331
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: Binary Build | |
on: | |
push: | |
branches: '*' | |
pull_request: | |
branches: [master] # This allows us to test PRs without always needing to build locally. It's secure as all first time contributors first need to be approved for running GitHub actions | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, ARM64] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: cachix/install-nix-action@v22 | |
with: | |
nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/a95ed9fe764c3ba2bf2d2fa223012c379cd6b32e.tar.gz | |
if: matrix.os != 'ARM64' | |
- uses: cachix/cachix-action@v12 | |
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@v2 | |
with: | |
path: | | |
ihp-boilerplate/build | |
key: ${{ runner.os }}-ghc | |
if: matrix.os != 'ARM64' | |
- run: | | |
cd ihp-boilerplate | |
php ../.github/patch-flakes.php ${{ github.ref }} ${{ github.event.repository.full_name }} | |
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 |