-
Notifications
You must be signed in to change notification settings - Fork 1
114 lines (102 loc) · 3.92 KB
/
Copy pathheif-dependency.yml
File metadata and controls
114 lines (102 loc) · 3.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
name: Build HEIF Dependency
on:
push:
tags:
- "deps-libheif-*"
workflow_dispatch:
inputs:
triplet:
description: "vcpkg triplet to package"
required: true
default: "x64-windows"
type: string
vcpkg_ref:
description: "vcpkg commit, tag, or branch"
required: true
default: "aa40adda5352e87655b8583cfb2451d5e9e276fd"
type: string
vcpkg_package:
description: "vcpkg package to install"
required: true
default: "libheif"
type: string
vcpkg_features:
description: "comma-separated vcpkg features to install without default features"
required: true
default: "aom"
type: string
codec_flavor:
description: "dependency artifact flavor suffix"
required: true
default: "decode-av1"
type: string
permissions:
contents: write
jobs:
build:
name: Build and publish HEIF dependency
runs-on: windows-2022
env:
HEIF_TRIPLET: ${{ inputs.triplet || 'x64-windows' }}
VCPKG_REF: ${{ inputs.vcpkg_ref || 'aa40adda5352e87655b8583cfb2451d5e9e276fd' }}
VCPKG_PACKAGE: ${{ inputs.vcpkg_package || 'libheif' }}
VCPKG_FEATURES: ${{ inputs.vcpkg_features || 'aom' }}
HEIF_CODEC_FLAVOR: ${{ inputs.codec_flavor || 'decode-av1' }}
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Build HEIF
shell: pwsh
run: |
.\build\Build-HeifDependency.ps1 `
-Triplet $env:HEIF_TRIPLET `
-VcpkgRef $env:VCPKG_REF `
-VcpkgPackage $env:VCPKG_PACKAGE `
-VcpkgFeatures $env:VCPKG_FEATURES
- name: Package dependency
id: package
shell: pwsh
run: |
$packageSuffix = "$($env:HEIF_CODEC_FLAVOR)-$($env:HEIF_TRIPLET)"
$packageName = "Q1View-libheif-$packageSuffix.zip"
$hashFile = "$packageName.sha256.txt"
$tagName = "deps-libheif-$packageSuffix"
if ($env:GITHUB_REF_TYPE -eq "tag") {
$tagName = $env:GITHUB_REF_NAME
}
$installRoot = ".deps\vcpkg\installed\$($env:HEIF_TRIPLET)"
if (-not (Test-Path "$installRoot\include\libheif\heif.h")) {
throw "HEIF install root was not found at $installRoot"
}
Compress-Archive -Path "$installRoot\*" -DestinationPath $packageName -Force
$hash = (Get-FileHash -LiteralPath $packageName -Algorithm SHA256).Hash.ToLowerInvariant()
"$hash $packageName" | Out-File -LiteralPath $hashFile -Encoding ascii
@(
"# HEIF dependency for Q1View",
"",
"- vcpkg ref: $env:VCPKG_REF",
"- vcpkg package: $env:VCPKG_PACKAGE",
"- vcpkg features: $env:VCPKG_FEATURES",
"- vcpkg default features: disabled",
"- Triplet: $env:HEIF_TRIPLET",
"- Codec flavor: $env:HEIF_CODEC_FLAVOR",
"- Package: $packageName",
"- SHA256: $hash",
"",
"Set Q1VIEW_HEIF_SHA256 or Q1ViewHeifSha256 to this hash when strict verification is required."
) | Out-File -LiteralPath RELEASE_NOTES.md -Encoding utf8
"package_name=$packageName" | Out-File $env:GITHUB_OUTPUT -Encoding utf8 -Append
"hash_file=$hashFile" | Out-File $env:GITHUB_OUTPUT -Encoding utf8 -Append
"tag_name=$tagName" | Out-File $env:GITHUB_OUTPUT -Encoding utf8 -Append
- name: Upload dependency release
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ steps.package.outputs.tag_name }}
target_commitish: ${{ github.sha }}
name: HEIF dependency ${{ env.HEIF_TRIPLET }}
body_path: RELEASE_NOTES.md
overwrite_files: true
fail_on_unmatched_files: true
files: |
${{ steps.package.outputs.package_name }}
${{ steps.package.outputs.hash_file }}