Closes #415 ## Summary - Adds missing `timeout-minutes` to `ci.yml` (`check` job, 60 min) and `windows-nightly.yml` (90 min, ready for when the Windows runner is registered) - Wraps `ssh-keyscan` and `ssh -f -N -L` tunnel creation in `setup_dagger_remote.sh` with `timeout 30`; emits a `::warning::` annotation when either takes more than 10 s - Adds `timeout --kill-after=10 <N>` to all bare `dagger call` invocations in `Taskfile.yml`: 600 s for test/query tasks, 1800 s for build/deploy tasks, 60 s for `ci-graph`; `stalwart` and `check-dagger` (already protected) left untouched - Adds `timeout --kill-after=10 2400` per attempt in `run_firebase_test.sh`; emits `::warning::` on exit 124 instead of silently retrying ## Test plan - CI passes on this PR (the `check` job now has `timeout-minutes: 60` and will self-enforce) - All `dagger call` lines in `Taskfile.yml` now have a `timeout` prefix (visible in the diff) - `setup_dagger_remote.sh` logic is unchanged — only the two network calls are wrapped Co-authored-by: Thomas SharedInbox <sharedinbox@thomas-guettler.de> Reviewed-on: https://codeberg.org/guettli/sharedinbox/pulls/432
48 lines
1.4 KiB
YAML
48 lines
1.4 KiB
YAML
name: Windows Nightly
|
|
|
|
on:
|
|
schedule:
|
|
- cron: '0 2 * * *'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
windows-nightly:
|
|
# Disabled until a self-hosted runner with label "windows-runner" is registered.
|
|
name: Build & Deploy Windows (Nightly)
|
|
runs-on: windows-runner
|
|
timeout-minutes: 90
|
|
if: false
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Check for recent changes on main
|
|
run: |
|
|
$changes = git log --oneline --since "24 hours ago" origin/main
|
|
if (-not $changes) {
|
|
Write-Output "No changes in last 24 hours, skipping build."
|
|
Add-Content -Path $env:GITHUB_ENV -Value "SKIP_BUILD=true"
|
|
}
|
|
|
|
- name: Build Windows
|
|
if: env.SKIP_BUILD != 'true'
|
|
run: task build-windows-release
|
|
|
|
- name: Set up SSH key
|
|
if: env.SKIP_BUILD != 'true'
|
|
env:
|
|
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
run: |
|
|
mkdir -p $env:USERPROFILE\.ssh
|
|
$env:SSH_PRIVATE_KEY | Out-File -FilePath "$env:USERPROFILE\.ssh\id_rsa" -Encoding ascii
|
|
icacls "$env:USERPROFILE\.ssh\id_rsa" /inheritance:r /grant:r "$env:USERNAME:F"
|
|
|
|
- name: Deploy Windows to server
|
|
if: env.SKIP_BUILD != 'true'
|
|
env:
|
|
SSH_USER: ${{ secrets.SSH_USER }}
|
|
SSH_HOST: ${{ secrets.SSH_HOST }}
|
|
run: task deploy-windows-to-server
|