feat(ci): add windows-nightly workflow
Builds and deploys Windows once a day (02:00 UTC) instead of on every push to main. Skips the build if no commits landed on main in the last 24 hours. Kept disabled (if: false) until a windows-runner is registered. Closes #77 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
fd00092b17
commit
902c0a7900
@@ -0,0 +1,49 @@
|
||||
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
|
||||
if: false
|
||||
continue-on-error: true
|
||||
|
||||
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'
|
||||
continue-on-error: 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'
|
||||
continue-on-error: true
|
||||
env:
|
||||
SSH_USER: ${{ secrets.SSH_USER }}
|
||||
SSH_HOST: ${{ secrets.SSH_HOST }}
|
||||
run: task deploy-windows-to-server
|
||||
Reference in New Issue
Block a user