Build Windows Packages #148
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |