Skip to content

CI: Use github actions for Windows CI #309

CI: Use github actions for Windows CI

CI: Use github actions for Windows CI #309

name: Checks
on: [push, pull_request]
jobs:
windows:
strategy:
matrix:
include:
- arch: Win32
qt_ver: 5.15
qt_arch: win64_msvc2019_64
- arch: x64
qt_ver: 5.15
qt_arch: win32_msvc2019
fail-fast: false
name: Windows (${{ matrix.arch }})
runs-on: windows-latest
steps:
- name: Set up Qt
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt_ver }}
arch: ${{ matrix.qt_arch }}
modules: qtwebengine
- name: Get zlib info
id: zlib-info
run: |
ls $Env:QT_ROOT_DIR\lib
('hash=' + ((git ls-remote https://github.com/MediaArea/zlib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
('path=' + (Get-Location) + '\zlib') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
- name: zlib cache
id: zlib-cache
uses: actions/cache@v4
with:
path: ${{ steps.zlib-info.outputs.path }}
key: windows-${{ matrix.arch }}-zlib-${{ steps.zlib-info.outputs.hash }}
- name: Checkout zlib
if: steps.zlib-cache.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: MediaArea/zlib
path: zlib
- name: Get libxml2 info
id: libxml2-info
run: |
('hash=' + ((git ls-remote https://github.com/MediaArea/libxml2.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
('path=' + (Get-Location) + '\libxml2') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
- name: libxml2 cache
id: libxml2-cache
uses: actions/cache@v4
with:
path: ${{ steps.libxml2-info.outputs.path }}
key: windows-${{ matrix.arch }}-libxml2-${{ steps.libxml2-info.outputs.hash }}
- name: Checkout libxml2
if: steps.libxml2-cache.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: MediaArea/libxml2
path: libxml2
- name: Get libxslt info
id: libxslt-info
run: |
('hash=' + ((git ls-remote https://github.com/MediaArea/libxslt.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
('path=' + (Get-Location) + '\libxslt') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
- name: libxslt cache
id: libxslt-cache
uses: actions/cache@v4
with:
path: ${{ steps.libxslt-info.outputs.path }}
key: windows-${{ matrix.arch }}-libxslt-${{ steps.libxslt-info.outputs.hash }}
- name: Checkout libxslt
if: steps.libxslt-cache.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: MediaArea/libxslt
path: libxslt
- name: Get libevent info
id: libevent-info
run: |
('hash=' + ((git ls-remote https://github.com/MediaArea/libevent.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
('path=' + (Get-Location) + '\libevent') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
- name: libevent cache
id: libevent-cache
uses: actions/cache@v4
with:
path: ${{ steps.libevent-info.outputs.path }}
key: windows-${{ matrix.arch }}-libevent-${{ steps.libevent-info.outputs.hash }}
- name: Checkout libevent
if: steps.libevent-cache.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: MediaArea/libevent
path: libevent
- name: Get jansson info
id: jansson-info
run: |
('hash=' + ((git ls-remote https://github.com/MediaArea/jansson.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
('path=' + (Get-Location) + '\jansson') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
- name: jansson cache
id: jansson-cache
uses: actions/cache@v4
with:
path: ${{ steps.jansson-info.outputs.path }}
key: windows-${{ matrix.arch }}-jansson-${{ steps.jansson-info.outputs.hash }}
- name: Checkout jansson
if: steps.jansson-cache.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: MediaArea/jansson
path: jansson
- name: Get ZenLib info
id: zenlib-info
run: |
('hash=' + ((git ls-remote https://github.com/MediaArea/ZenLib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
('path=' + (Get-Location) + '\ZenLib') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
- name: ZenLib cache
id: zenlib-cache
uses: actions/cache@v4
with:
path: ${{ steps.zenlib-info.outputs.path }}
key: windows-${{ matrix.arch }}-zenlib-${{ steps.zenlib-info.outputs.hash }}
- name: Checkout ZenLib
if: steps.zenlib-cache.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: MediaArea/ZenLib
path: ZenLib
- name: Get MediaInfoLib info
id: mediainfolib-info
run: |
('hash=' + ((git ls-remote https://github.com/MediaArea/MediaInfoLib.git HEAD) -Split "`t")[0]) | Out-File -FilePath $env:GITHUB_OUTPUT -Append
('path=' + (Get-Location) + '\MediaInfoLib') | Out-File -FilePath $env:GITHUB_OUTPUT -Append
- name: MediaInfoLib cache
id: mediainfolib-cache
uses: actions/cache@v4
with:
path: ${{ steps.mediainfolib-info.outputs.path }}
key: windows-${{ matrix.arch }}-mediainfolib-${{ steps.mediainfolib-info.outputs.hash }}
- name: Checkout MediaInfoLib
if: steps.mediainfolib-cache.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: MediaArea/MediaInfoLib
path: MediaInfoLib
- name: Checkout MediaConch
uses: actions/checkout@v4
with:
path: MediaConch
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v2
with:
msbuild-architecture: x64
- name: Build
run: |
$Env:IncludePath="$Env:QT_ROOT_DIR\include\QtGui;$Env:QT_ROOT_DIR\include\QtWidgets;$Env:QT_ROOT_DIR\include\QtCore;$Env:QT_ROOT_DIR\include\QtWebEngine;$Env:QT_ROOT_DIR\include\QtWebEngineWidgets;$Env:QT_ROOT_DIR\include\QtWebEngineCore;$Env:QT_ROOT_DIR\include\QtWebChannel;$Env:QT_ROOT_DIR\include;$Env:IncludePath"
$Env:LINK="/LIBPATH:$Env:QT_ROOT_DIR\lib"
MSBuild /p:Configuration=Release`;Platform=${{ matrix.arch }} MediaConch\Project\MSVC2022\MediaConch.sln