Skip to content

Merge pull request #1 from bjornfor/fix-example #22

Merge pull request #1 from bjornfor/fix-example

Merge pull request #1 from bjornfor/fix-example #22

Workflow file for this run

name: Build projects
on:
pull_request:
push:
workflow_call:
jobs:
build:
runs-on: ubuntu-latest
steps:
# Why are we doing this?
#
# The hosted GitHub runners have free disk space split
# between the root partition and a temporary partition,
# leaving limited space for builds. We work around this
# with easimon/maximize-build-space which creates a LVM
# volume to combine the free space in both.
#
# We mount this new volume at /nix, and set TMPDIR so
# all builds happen inside the volume.
- name: Create mount point for Nix store
run: |
sudo mkdir /nix
- name: Maximize disk space for builds
uses: easimon/maximize-build-space@v10
with:
build-mount-path: /nix
- name: Set Nix store ownership
run: |
sudo chown root:root /nix
- name: Checkout
uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v13
- name: Override nix-daemon build directory
run: |
sudo mkdir -p /nix/tmp
sudo chmod ug=rwx,o=rwxt /nix/tmp
sudo mkdir -p /etc/systemd/system/nix-daemon.service.d
sudo tee /etc/systemd/system/nix-daemon.service.d/override.conf >/dev/null <<EOF
[Service]
Environment=TMPDIR=/nix/tmp
EOF
sudo systemctl daemon-reload
sudo systemctl restart nix-daemon
- name: Setup automatic caching
uses: DeterminateSystems/magic-nix-cache-action@v7
- name: Build known packages
run: |
for i in dewclaw-env dewclaw-book; do
nix build ".#$i"
mkdir -p "out/$i"
output=$(readlink -f result)
cp -vr --dereference "$output/." "out/$i"
done
- name: Upload archive to Artifacts
uses: actions/upload-artifact@v4
with:
name: 'out'
path: 'out'
if-no-files-found: error