56 lines
1.8 KiB
YAML
56 lines
1.8 KiB
YAML
name: zig-recent-release-regression
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
versions:
|
|
description: JSON array of stable SkiaSharp versions from this branch major
|
|
type: string
|
|
default: '["4.150.3","4.150.5","4.153.1"]'
|
|
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
|
|
jobs:
|
|
resolve:
|
|
runs-on: ubuntu-24.04
|
|
outputs:
|
|
releases: ${{ steps.locks.outputs.releases }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- id: locks
|
|
env:
|
|
VERSIONS: ${{ inputs.versions }}
|
|
run: |
|
|
python3 - <<'PY'
|
|
import json, os, pathlib, subprocess
|
|
versions = json.loads(os.environ['VERSIONS'])
|
|
if not isinstance(versions, list) or not 1 <= len(versions) <= 5:
|
|
raise SystemExit('Expected one to five stable versions')
|
|
releases = []
|
|
for version in versions:
|
|
subprocess.run(['python3', 'scripts/resolve-release-lock.py', '--version', version], check=True)
|
|
lock = json.loads(pathlib.Path('build/linux-toolchain/release.lock.json').read_text())
|
|
releases.append({'version': version, 'lock': json.dumps(lock)})
|
|
with open(os.environ['GITHUB_OUTPUT'], 'a') as output:
|
|
output.write('releases=' + json.dumps(releases, separators=(',', ':')) + '\n')
|
|
PY
|
|
|
|
toolchain:
|
|
needs: resolve
|
|
uses: ./.github/workflows/zig-toolchain-image.yml
|
|
|
|
build:
|
|
needs: [resolve, toolchain]
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
release: ${{ fromJSON(needs.resolve.outputs.releases) }}
|
|
uses: ./.github/workflows/static-graphics-zig-cross.yml
|
|
with:
|
|
skiasharp_version: ${{ matrix.release.version }}
|
|
source_lock: ${{ matrix.release.lock }}
|
|
toolchain_image: ${{ needs.toolchain.outputs.image }}
|
|
artifact_prefix: regression-${{ matrix.release.version }}
|