Nix aarch64 builds #166
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: Nix aarch64 builds | |
on: | |
workflow_dispatch: # allows manual triggering | |
schedule: | |
# Rebuild daily rather than on every push because QEMU is expensive (e.g. | |
# 1.5h instead of minutes with the cold cache). | |
# | |
# randint(0, 59), randint(0, 23) | |
- cron: '26 12 * * *' | |
# But also rebuild if we touched any of the Nix expressions: | |
push: | |
branches: | |
- master | |
paths: ['**/*.nix', 'flake.lock'] | |
pull_request: | |
types: [opened, synchronize, reopened] | |
paths: ['**/*.nix', 'flake.lock'] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} | |
cancel-in-progress: true | |
# Fine-grant permission | |
# https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token | |
permissions: | |
# https://github.com/DeterminateSystems/nix-installer-action?tab=readme-ov-file#with-flakehub | |
id-token: write | |
contents: read | |
jobs: | |
nix-build-aarch64: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install QEMU | |
# Copy-paste from https://github.com/orgs/community/discussions/8305#discussioncomment-5888654 | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y qemu-user-static qemu-system-aarch64 | |
sudo usermod -a -G kvm $USER | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@v9 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
extra-conf: | | |
extra-platforms = aarch64-linux | |
extra-system-features = nixos-test kvm | |
extra-substituters = https://llama-cpp.cachix.org https://cuda-maintainers.cachix.org | |
extra-trusted-public-keys = llama-cpp.cachix.org-1:H75X+w83wUKTIPSO1KWy9ADUrzThyGs8P5tmAbkWhQc= cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E= | |
- uses: DeterminateSystems/magic-nix-cache-action@v2 | |
with: | |
upstream-cache: https://${{ matrix.cachixName }}.cachix.org | |
- name: Set-up cachix to push the results to | |
uses: cachix/cachix-action@v13 | |
with: | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
name: llama-cpp | |
- name: Show all output paths | |
run: > | |
nix run github:nix-community/nix-eval-jobs | |
-- --gc-roots-dir gcroot | |
--flake | |
".#packages.aarch64-linux" | |
- name: Build | |
run: > | |
nix run github:Mic92/nix-fast-build | |
-- --skip-cached --no-nom | |
--systems aarch64-linux | |
--flake | |
".#checks.aarch64-linux" |