- tests/: 55 тестов web-панели, авторизации, сети и обновлений, все страницы рендерятся на замоканных virsh/systemctl; - GitHub Actions: pyflakes + pytest на Python 3.11–3.13, shellcheck, сборка ISO amd64/arm64 по тегу v* или вручную; - Makefile: make check / make test / make iso; - docs/IMAGE.md и README: установка с ISO, продакшен-настройки, разработка; - updates/versions.json: описание версии 0.10.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
46 строки
1.3 KiB
YAML
46 строки
1.3 KiB
YAML
name: Build ISO image
|
|
|
|
on:
|
|
push:
|
|
tags: ["v*"]
|
|
workflow_dispatch:
|
|
inputs:
|
|
arch:
|
|
description: "Architecture"
|
|
type: choice
|
|
options: [amd64, arm64, both]
|
|
default: amd64
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
iso:
|
|
name: ISO ${{ matrix.arch }}
|
|
runs-on: ubuntu-24.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
arch: ${{ fromJSON(github.event_name == 'workflow_dispatch' && (inputs.arch == 'both' && '["amd64","arm64"]' || format('["{0}"]', inputs.arch)) || '["amd64","arm64"]') }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- run: sudo apt-get update && sudo apt-get install -y xorriso
|
|
- uses: actions/cache@v4
|
|
with:
|
|
path: .cache/iso
|
|
key: ubuntu-iso-${{ matrix.arch }}-${{ hashFiles('image/build-iso.sh') }}
|
|
restore-keys: ubuntu-iso-${{ matrix.arch }}-
|
|
- run: make iso ARCH=${{ matrix.arch }}
|
|
# Ubuntu server ISOs are larger than the 2 GB GitHub release asset limit,
|
|
# so images are published as workflow artifacts.
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: virtuality-iso-${{ matrix.arch }}
|
|
path: |
|
|
dist/*.iso
|
|
dist/*.sha256
|
|
compression-level: 0
|
|
retention-days: 30
|