52 lines
1.9 KiB
YAML
52 lines
1.9 KiB
YAML
|
name: Build a system
|
||
|
on:
|
||
|
workflow_call:
|
||
|
inputs:
|
||
|
hostname:
|
||
|
required: true
|
||
|
type: string
|
||
|
secrets:
|
||
|
NIX_CACHE_KEY:
|
||
|
required: true
|
||
|
AWS_CREDENTIALS:
|
||
|
required: true
|
||
|
jobs:
|
||
|
build:
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- name: Checkout repository
|
||
|
uses: actions/checkout@v3
|
||
|
- name: Set up QEMU
|
||
|
uses: docker/setup-qemu-action@v2
|
||
|
- name: Cleanup Disk
|
||
|
uses: curoky/cleanup-disk-action@v2.0
|
||
|
with:
|
||
|
retain: ''
|
||
|
- name: Install Nix
|
||
|
uses: cachix/install-nix-action@v18
|
||
|
with:
|
||
|
nix_path: nixpkgs=channel:nixos-unstable
|
||
|
extra_nix_config: |
|
||
|
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
||
|
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nixcache:8KKuGz95Pk4UJ5W/Ni+pN+v+LDTkMMFV4yrGmAYgkDg= hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs=
|
||
|
experimental-features = nix-command flakes ca-derivations
|
||
|
post-build-hook = ${{ github.workspace }}/scripts/post-build-hook
|
||
|
substituters = https://cache.chir.rs/ https://cache.nixos.org/
|
||
|
extra-platforms = armv7l-linux aarch64-linux powerpc-linux powerpc64-linux powerpc64le-linux riscv32-linux riscv64-linux wasm32-wasi i686-linux
|
||
|
sandbox = false
|
||
|
- name: Download patched nix
|
||
|
run: nix build github:DarkKirb/nix-packages#nix-s3-dedup
|
||
|
- name: Set up secrets
|
||
|
run: |
|
||
|
echo "$NIX_CACHE_KEY" > ~/cache.key
|
||
|
sudo mkdir /root/.aws
|
||
|
echo "$AWS_CREDENTIALS" | sudo tee /root/.aws/credentials > /dev/null
|
||
|
env:
|
||
|
NIX_CACHE_KEY: ${{secrets.NIX_CACHE_KEY}}
|
||
|
AWS_CREDENTIALS: ${{secrets.AWS_CREDENTIALS}}
|
||
|
- name: Build ${{ inputs.hostname }}
|
||
|
run: |
|
||
|
nix build '.#hydraJobs.${{ inputs.hostname }}'
|
||
|
env:
|
||
|
NIXPKGS_ALLOW_UNFREE: 1
|