NixOS-based container for running GitHub actions
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

next test

+35 -37
+1
flake.nix
··· 242 242 defaultNixConf = { 243 243 cores = "1"; 244 244 max-jobs = "1"; 245 + http-connections = "5"; 245 246 sandbox = "true"; 246 247 build-users-group = "nixbld"; 247 248 trusted-users = [
+1 -4
src/bash.zig
··· 16 16 var argv: std.ArrayList([]const u8) = .empty; 17 17 defer argv.deinit(arena); 18 18 19 - try argv.append(arena, "bash"); 20 - 21 19 var it = try init.minimal.args.iterateAllocator(arena); 22 20 defer it.deinit(); 23 21 24 - _ = it.next(); 25 22 while (it.next()) |arg| { 26 23 try argv.append(arena, arg); 27 24 } 28 25 29 26 try lib.switchToUser(); 30 27 31 - try lib.exec(init.gpa, options.bash, argv, &environ_map); 28 + try lib.exec(init.gpa, options.bash, argv.items, &environ_map); 32 29 33 30 // const err = std.process.replace(io, .{ 34 31 // .argv = argv.items,
+3 -5
src/execas.zig
··· 4 4 const std = @import("std"); 5 5 const options = @import("options"); 6 6 7 + const lib = @import("lib.zig"); 8 + 7 9 pub fn main(init: std.process.Init) !void { 8 10 const arena: std.mem.Allocator = init.arena.allocator(); 9 11 const io = init.io; 10 12 11 - const rc = std.os.linux.setuid(options.uid); 12 - switch (std.os.linux.errno(rc)) { 13 - .SUCCESS => {}, 14 - else => |err| return std.posix.unexpectedErrno(err), 15 - } 13 + try lib.switchToUser(); 16 14 17 15 var argv: std.ArrayList([]const u8) = .empty; 18 16
+2 -2
src/lib/process.zig
··· 19 19 const rc = std.os.linux.execve( 20 20 path0.ptr, 21 21 argv0.ptr, 22 - block, 22 + block.slice, 23 23 ); 24 24 25 - return std.posix.unexpectedErrno(rc); 25 + return std.posix.unexpectedErrno(std.os.linux.errno(rc)); 26 26 }
+10 -11
src/sh.zig
··· 6 6 7 7 const lib = @import("lib.zig"); 8 8 9 - pub fn main(init: std.process.Init) !u8 { 9 + pub fn main(init: std.process.Init) !void { 10 10 const arena: std.mem.Allocator = init.arena.allocator(); 11 - const io = init.io; 11 + // const io = init.io; 12 12 13 13 var environ_map = try lib.fixupEnvironMap(arena, init.environ_map, .user); 14 14 defer environ_map.deinit(); 15 15 16 16 var argv: std.ArrayList([]const u8) = .empty; 17 17 defer argv.deinit(arena); 18 - 19 - try argv.append(arena, options.sh); 20 18 21 19 var it = try init.minimal.args.iterateAllocator(arena); 22 20 defer it.deinit(); 23 21 24 - _ = it.next(); 25 22 while (it.next()) |arg| { 26 23 try argv.append(arena, arg); 27 24 } 28 25 29 26 try lib.switchToUser(); 30 27 31 - const err = std.process.replace(io, .{ 32 - .argv = argv.items, 33 - .environ_map = &environ_map, 34 - }); 28 + try lib.exec(init.gpa, options.sh, argv.items, &environ_map); 29 + 30 + // const err = std.process.replace(io, .{ 31 + // .argv = argv.items, 32 + // .environ_map = &environ_map, 33 + // }); 35 34 36 - std.debug.print("unable to execute: {t}\n", .{err}); 35 + // std.debug.print("unable to execute: {t}\n", .{err}); 37 36 38 - return 127; 37 + // return 127; 39 38 }
+18 -15
src/tail.zig
··· 31 31 std.process.setCurrentDir(io, dir) catch break :cwd; 32 32 } 33 33 34 - const err = std.process.replace(io, .{ 35 - .argv = &.{ 36 - options.nix, 37 - "daemon", 38 - }, 39 - .environ_map = &environ_map, 40 - }); 34 + try lib.exec(init.gpa, options.nix, &.{ "nix", "daemon" }, &environ_map); 35 + // const err = std.process.replace(io, .{ 36 + // .argv = &.{ 37 + // options.nix, 38 + // "daemon", 39 + // }, 40 + // .environ_map = &environ_map, 41 + // }); 41 42 42 - std.debug.print("unable to execute: {t}\n", .{err}); 43 - return; 43 + // std.debug.print("unable to execute: {t}\n", .{err}); 44 + // return; 44 45 } 45 46 46 47 var environ_map = try lib.fixupEnvironMap(arena, init.environ_map, .user); ··· 49 50 var argv: std.ArrayList([]const u8) = .empty; 50 51 defer argv.deinit(arena); 51 52 52 - try argv.append(arena, options.tail); 53 + try argv.append(arena, "tail"); 53 54 54 55 var it = try init.minimal.args.iterateAllocator(arena); 55 56 defer it.deinit(); ··· 61 62 62 63 try lib.switchToUser(); 63 64 64 - const err = std.process.replace(io, .{ 65 - .argv = argv.items, 66 - .environ_map = &environ_map, 67 - }); 65 + try lib.exec(init.gpa, options.tail, argv.items, &environ_map); 68 66 69 - std.debug.print("unable to execute: {t}\n", .{err}); 67 + // const err = std.process.replace(io, .{ 68 + // .argv = argv.items, 69 + // .environ_map = &environ_map, 70 + // }); 71 + 72 + // std.debug.print("unable to execute: {t}\n", .{err}); 70 73 }