Create workflow for Windows builds (#638)
Co-authored-by: FreezyLemon <freezylemon@protonmail.com>
This commit is contained in:
parent
7af57610c8
commit
8f617ec68f
90
.github/workflows/windows-build.yml
vendored
Normal file
90
.github/workflows/windows-build.yml
vendored
Normal file
|
@ -0,0 +1,90 @@
|
|||
name: Build Av1an (Windows x64)
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2022
|
||||
|
||||
env:
|
||||
vsynth_ver: R58
|
||||
vsynth_path: C:\Program Files\Vapoursynth
|
||||
|
||||
steps:
|
||||
- name: Python 3.10 setup
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '~3.10'
|
||||
architecture: x64
|
||||
|
||||
- name: NASM setup
|
||||
uses: ilammy/setup-nasm@v1
|
||||
with:
|
||||
version: 2.15.05
|
||||
from-source: false
|
||||
|
||||
- name: PowerShell module installation
|
||||
uses: potatoqualitee/psmodulecache@v4.5
|
||||
with:
|
||||
modules-to-cache: 7Zip4Powershell
|
||||
|
||||
- name: FFmpeg hashsum
|
||||
run: |
|
||||
$hashSum = (Invoke-WebRequest 'https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full-shared.7z.sha256').Content
|
||||
echo "ff_hash=$hashSum" | Out-File $env:GITHUB_ENV -Append
|
||||
Write-Output "Latest release: $hashSum"
|
||||
|
||||
- name: FFmpeg cache check
|
||||
id: cache-ff
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: C:\ffmpeg
|
||||
key: ff-${{ env.ff_hash }}
|
||||
|
||||
- if: steps.cache-ff.outputs.cache-hit != 'true'
|
||||
name: FFmpeg installation
|
||||
run: |
|
||||
$tempFile = New-TemporaryFile
|
||||
Invoke-WebRequest 'https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full-shared.7z' -OutFile $tempFile -TimeoutSec 10
|
||||
Expand-7Zip $tempFile 'C:\ffmpeg'
|
||||
|
||||
- name: FFmpeg environment variable
|
||||
run: |
|
||||
$ffDir = Get-Item "C:\ffmpeg\ffmpeg*shared" | Select-Object -First 1 -ExpandProperty FullName
|
||||
echo "FFMPEG_DIR=$ffDir" | Out-File $env:GITHUB_ENV -Append
|
||||
|
||||
- name: VapourSynth cache check
|
||||
id: cache-vsynth
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ env.vsynth_path }}
|
||||
key: vsynth-${{ env.vsynth_ver }}
|
||||
|
||||
- if: steps.cache-vsynth.outputs.cache-hit != 'true'
|
||||
name: VapourSynth installation
|
||||
run: |
|
||||
$tempFile = New-TemporaryFile
|
||||
$uri = 'https://github.com/vapoursynth/vapoursynth/releases/download/VER/VapourSynth64-Portable-VER.7z'.Replace('VER', "${{ env.vsynth_ver }}")
|
||||
Invoke-WebRequest $uri -OutFile $tempFile -TimeoutSec 10
|
||||
Expand-7Zip $tempFile $env:vsynth_path
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Package cache check
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~\.cargo\git
|
||||
~\.cargo\registry
|
||||
key: cargo-${{ hashFiles('**\Cargo.toml', '**\Cargo.lock') }}
|
||||
restore-keys: cargo-
|
||||
|
||||
- name: Av1an build
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
run: cargo build -rv
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: av1an
|
||||
path: target/release/av1an.exe
|
Loading…
Reference in a new issue