You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
921 B
Plaintext

# notify when the latest ci pipeline completes
export def notify [] {
while (info | get status) == "running" {
sleep 1sec;
};
let name = ($env.PWD | path basename)
notify-send $"CI ($name)" "Job completed"
}
export def watch [] {
loop {
while (info | get status) != "running" {
sleep 10sec;
}
notify
}
}
export def info [] {
if (get-ci) == "gitlab" {
glab ci get -F json | from json
} else {
gh run list --json conclusion,name,startedAt,status | from json | first
}
}
# notify in background
export def notify-bg [] {
use task.nu
task spawn -l "ci-notify" {
ci notify
}
}
export def watch-bg [] {
use task.nu
task spawn -l "ci-watch" {
ci watch
}
}
export def get-ci [] {
let remote = (git remote get-url --all origin)
if ($remote | str contains gitlab) {
"gitlab"
} else if ($remote | str contains github.com) {
"github"
}
}