mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 04:19:19 -08:00
CI: make work with aarch64 possibly. nixdirfmt
This commit is contained in:
parent
f3d9d61e80
commit
ff5c0846ef
25 changed files with 390 additions and 216 deletions
30
ci/nodes.nix
30
ci/nodes.nix
|
|
@ -1,11 +1,39 @@
|
|||
{ lib, channels, env, ... }: with lib; {
|
||||
{ lib, config, channels, env, ... }: with lib; {
|
||||
name = "nodes";
|
||||
ci.gh-actions.enable = true;
|
||||
ci.gh-actions.export = true;
|
||||
channels.nixfiles.path = ../.;
|
||||
|
||||
nix.config.extraPlatforms = "aarch64-linux";
|
||||
|
||||
gh-actions = {
|
||||
jobs.ci.step.aarch64 = {
|
||||
order = 201;
|
||||
name = "prepare for aarch64 builds";
|
||||
run = ''
|
||||
sudo aarch64binfmt
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# ensure sources are fetched and available in the local store before evaluating host configs
|
||||
environment.bootstrap = {
|
||||
aarch64binfmt =
|
||||
let
|
||||
makeQemuWrapper = name: ''
|
||||
mkdir -f /run/binfmt
|
||||
rm -f /run/binfmt/${name}
|
||||
cat > /run/binfmt/${name} << 'EOF'
|
||||
#!${channels.cipkgs.bash}/bin/sh
|
||||
exec -- ${channels.cipkgs.qemu}/bin/qemu-${name} "$@"
|
||||
EOF
|
||||
chmod +x /run/binfmt/${name}
|
||||
''; in
|
||||
channels.cipkgs.writeShellScriptBin "aarch64binfmt" ''
|
||||
${makeQemuWrapper "aarch64"}
|
||||
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
|
||||
echo ':aarch64-linux:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\x00\xff\xfe\xff\xff\xff:/run/binfmt/aarch64:' > /proc/sys/fs/binfmt_misc/register
|
||||
'';
|
||||
sourceCache = channels.cipkgs.runCommand "sources"
|
||||
{
|
||||
srcs = attrNames channels.nixfiles.sourceCache.local;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue