use Cirrus CI
- Make more economic use of the free CI resources by removing redundant build tasks:
- Build unstable pkgs in a single separate task ("pkgs_unstable").
- All stable pkgs are implicitly built by the modules tests.
- The build script (ci/build.sh) can now be executed locally for easier
debugging.
- Use an explicit 'cachix push' command instead of helper/wait-for-network-idle.rb.
This is simpler and more reliable.
This commit is contained in:
@@ -1,29 +0,0 @@
|
||||
#!/usr/bin/env ruby
|
||||
require 'open3'
|
||||
|
||||
# Wait until the given PID had no network activity for `Timeout` seconds, then exit.
|
||||
|
||||
pid = ARGV.first
|
||||
Timeout = 2
|
||||
|
||||
stdin, out, err, wait_thread = Open3.popen3("strace -f -e trace=network -s 1 -q -p #{pid}")
|
||||
while IO.select([err], nil, nil, Timeout)
|
||||
begin
|
||||
out = err.read_nonblock(1 << 10)
|
||||
rescue EOFError
|
||||
status = wait_thread.value
|
||||
if status.success?
|
||||
puts "Monitored process #{pid} exited"
|
||||
exit 0
|
||||
else
|
||||
puts "Strace failed with exit code #{status.to_i}. Last output:\n#{out}"
|
||||
# strace often fails with code 256 which looks like success to shells. fail with 1 instead.
|
||||
exit 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# If we exit without an explicit kill,
|
||||
# ptrace can fail on reattachment: ptrace(PTRACE_SEIZE, $PID): Operation not permitted
|
||||
# Only relevant for testing.
|
||||
Process.kill("TERM", wait_thread.pid)
|
||||
Reference in New Issue
Block a user