Skip to content

Build Windows Packages #148

Build Windows Packages

Build Windows Packages #148

name: Build Windows Packages
on:
workflow_dispatch:
release:
types: [published]
jobs:
build:
strategy:
fail-fast: false
matrix:
config:
- { arch: 'x64', 'portable': false }
#- { arch: 'win32', 'portable': false }
- { arch: 'x64', 'portable': true }
#- { arch: 'win32', 'portable': true }
runs-on: windows-latest
env:
PORTABLE: ${{ matrix.config.portable }}
steps:
- name: Checkout
#run: svn co https://github.com/smplayer-dev/smplayer-build.git/trunk .
run: git clone https://github.com/smplayer-dev/smplayer-build.git .
#- name: Install sources
# run: .\download_packages.cmd
- name: Install sources (normal)
if: ${{ matrix.config.portable == false }}
uses: actions/checkout@v4
with:
path: packages/smplayer
fetch-depth: 0
- name: Install sources (portable)
if: ${{ matrix.config.portable == true }}
uses: actions/checkout@v4
with:
path: packages/smplayer-portable
fetch-depth: 0
- name: Install themes
run: |
#svn co https://github.com/smplayer-dev/smplayer-themes.git/trunk packages\smplayer-themes
#svn co https://github.com/smplayer-dev/smplayer-skins.git/trunk packages\smplayer-skins
git clone --depth 1 https://github.com/smplayer-dev/smplayer-themes.git packages\smplayer-themes
git clone --depth 1 https://github.com/smplayer-dev/smplayer-skins.git packages\smplayer-skins
- name: Install mplayer and mpv
run: .\uncompress_players.cmd
- name: Install Qt (32 bit)
if: ${{ matrix.config.arch == 'win32' }}
uses: jurplel/install-qt-action@v3
with:
version: '5.15.2'
arch: 'win32_mingw81'
#tools: 'tools_mingw,8.1.0-1,qt.tools.win32_mingw810'
tools: 'tools_mingw,qt.tools.win32_mingw810'
- name: Install Qt (64 bit)
if: ${{ matrix.config.arch == 'x64' }}
uses: jurplel/install-qt-action@v3
with:
version: '5.15.2'
arch: 'win64_mingw81'
#tools: 'tools_mingw,8.1.0-1,qt.tools.win64_mingw810'
tools: 'tools_mingw,qt.tools.win64_mingw810'
- name: Set mingw32 path (32 bit)
if: ${{ matrix.config.arch == 'win32' }}
run: echo "$env:IQTA_TOOLS\mingw810_32\bin\" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Set mingw32 path (64 bit)
if: ${{ matrix.config.arch == 'x64' }}
run: echo "$env:IQTA_TOOLS\mingw810_64\bin\" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Compile themes
run: .\compile_themes.cmd
- name: Compile smplayer
run: |
if ($env:PORTABLE -eq $true) {
.\compile_smplayer.cmd pe
} else {
.\compile_smplayer.cmd
}
- name: Install
run: |
if ($env:PORTABLE -eq $true) {
.\install.cmd pe
} else {
.\install.cmd
}
- name: Create installer
if: ${{ matrix.config.portable == false }}
run: |
.\nsis.cmd
$filename = Get-Content packages\BUILD\installer_filename.txt -TotalCount 1
echo "PACKAGEFILENAME=$filename" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Rename installer
if: ${{ matrix.config.portable == false }}
shell: bash
run: |
installer=${{env.PACKAGEFILENAME}}
filename=${installer/.exe/-unsigned.exe}
mv packages/BUILD/output/$installer packages/BUILD/output/$filename
echo "PACKAGEFILENAME=$filename" >> $GITHUB_ENV
- name: Create 7z package
if: ${{ matrix.config.portable == true }}
run: |
.\create_portable_package.cmd
$filename = Get-Content packages\BUILD\portable_filename.txt -TotalCount 1
echo "PACKAGEFILENAME=$filename" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Create artifact
if: github.event_name != 'release'
uses: actions/upload-artifact@v4
with:
name: ${{ env.PACKAGEFILENAME }}
path: packages\BUILD\output\${{ env.PACKAGEFILENAME }}
- name: Upload package to release
if: github.event_name == 'release'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: packages/BUILD/output/${{ env.PACKAGEFILENAME }}
tag: ${{ github.ref }}
overwrite: true
file_glob: true