Merge remote-tracking branch 'origin/master' #973
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: Compile Windows binaries | |
on: | |
push: | |
branches: [ master, project-upgrade ] | |
pull_request: | |
branches: [ master ] | |
release: | |
types: | |
- published | |
- prereleased | |
workflow_dispatch: | |
jobs: | |
build-x64: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.101 | |
- name: Restore dependencies | |
run: dotnet restore -r win-x64 --configfile GalaxyBudsClient/nuget.config GalaxyBudsClient/GalaxyBudsClient.csproj | |
- name: Build x64 | |
run: dotnet publish -r win-x64 -o bin_win64 -c Release -p:PublishSingleFile=true --self-contained true --no-restore GalaxyBudsClient/GalaxyBudsClient.csproj | |
#- name: Sign executable | |
# uses: GabrielAcostaEngler/[email protected] | |
# with: | |
# certificate: ${{ secrets.SIGN_CERTIFICATE }} | |
# cert-password: ${{ secrets.SIGN_PASSWORD }} | |
# cert-sha1: 048de957759a1837a967e61b8c97c442f7b9ec24 | |
# folder: bin_win64/ | |
# timestamp-server: http://timestamp.digicert.com | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: GalaxyBudsClient_win64_portable | |
path: bin_win64/ | |
build-x86: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.101 | |
- name: Restore dependencies | |
run: dotnet restore -r win-x86 --configfile GalaxyBudsClient/nuget.config GalaxyBudsClient/GalaxyBudsClient.csproj | |
- name: Build x86 | |
run: dotnet publish -r win-x86 -o bin_win32 -c Release -p:PublishSingleFile=true --self-contained true --no-restore GalaxyBudsClient/GalaxyBudsClient.csproj | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: GalaxyBudsClient_win32_portable | |
path: bin_win32/ | |
make-nsis-installer: | |
runs-on: windows-latest | |
needs: [build-x64, build-x86] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Prepare version information (1/3) | |
uses: oprypin/[email protected] | |
with: | |
repository: timschneeb/GalaxyBudsClient | |
releases-only: true | |
id: last_release | |
- name: Prepare version information (2/3) | |
uses: benjlevesque/[email protected] | |
id: short-sha | |
with: | |
length: 6 | |
- name: Prepare version information (3/3) | |
shell: bash | |
run: echo 'version=${{steps.last_release.outputs.tag}}-${{steps.short-sha.outputs.sha}}' >> $GITHUB_OUTPUT | |
id: version | |
# Make x64 installer | |
- name: Download artifact (x64) | |
uses: actions/download-artifact@v4 | |
with: | |
name: GalaxyBudsClient_win64_portable | |
- name: Rename artifact (x64) | |
run: ren GalaxyBudsClient.exe "Galaxy Buds Client.exe" | |
- name: Create nsis installer (x64) | |
uses: joncloud/[email protected] | |
with: | |
script-file: "install.nsi" | |
arguments: "-DBASE_DIR=\"D:\\a\\GalaxyBudsClient\\GalaxyBudsClient\" -DPRODUCT_VERSION=\"${{steps.version.outputs.version}}\" -DPRODUCT_ARCH=\"64bit\"" | |
#- name: Sign installer | |
# uses: GabrielAcostaEngler/[email protected] | |
# with: | |
# certificate: ${{ secrets.SIGN_CERTIFICATE }} | |
# cert-password: ${{ secrets.SIGN_PASSWORD }} | |
# cert-sha1: 048de957759a1837a967e61b8c97c442f7b9ec24 | |
# folder: . | |
# timestamp-server: http://timestamp.digicert.com | |
- name: Upload artifact (x64) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: GalaxyBudsClient_Setup_64bit_${{steps.version.outputs.version}}.exe | |
path: GalaxyBudsClient_Setup_64bit_${{steps.version.outputs.version}}.exe | |
- name: Clean artifacts | |
run: del "Galaxy Buds Client.exe" | |
# Make x86 installer | |
- name: Download artifact (x86) | |
uses: actions/download-artifact@v4 | |
with: | |
name: GalaxyBudsClient_win32_portable | |
- name: Rename artifact (x86) | |
run: ren GalaxyBudsClient.exe "Galaxy Buds Client.exe" | |
- name: Create nsis installer (x86) | |
uses: joncloud/[email protected] | |
with: | |
script-file: "install.nsi" | |
arguments: "-DBASE_DIR=\"D:\\a\\GalaxyBudsClient\\GalaxyBudsClient\" -DPRODUCT_VERSION=\"${{steps.version.outputs.version}}\" -DPRODUCT_ARCH=\"32bit\"" | |
#- name: Sign installer | |
# uses: GabrielAcostaEngler/[email protected] | |
# with: | |
# certificate: ${{ secrets.SIGN_CERTIFICATE }} | |
# cert-password: ${{ secrets.SIGN_PASSWORD }} | |
# cert-sha1: 048de957759a1837a967e61b8c97c442f7b9ec24 | |
# folder: . | |
# timestamp-server: http://timestamp.digicert.com | |
- name: Upload artifact (x86) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: GalaxyBudsClient_Setup_32bit_${{steps.version.outputs.version}}.exe | |
path: GalaxyBudsClient_Setup_32bit_${{steps.version.outputs.version}}.exe | |
attach-to-release: | |
runs-on: windows-latest | |
needs: [make-nsis-installer] | |
if: github.event_name == 'release' | |
steps: | |
- name: Prepare version information (1/3) | |
uses: oprypin/[email protected] | |
with: | |
repository: timschneeb/GalaxyBudsClient | |
releases-only: true | |
id: last_release | |
- name: Prepare version information (2/3) | |
uses: benjlevesque/[email protected] | |
id: short-sha | |
with: | |
length: 6 | |
- name: Prepare version information (3/3) | |
shell: bash | |
run: echo 'version=${{steps.last_release.outputs.tag}}-${{steps.short-sha.outputs.sha}}' >> $GITHUB_OUTPUT | |
id: version | |
- name: Download setup artifact (x64) | |
uses: actions/download-artifact@v4 | |
with: | |
name: GalaxyBudsClient_Setup_64bit_${{steps.version.outputs.version}}.exe | |
- name: Download portable artifact (x64) | |
uses: actions/download-artifact@v4 | |
with: | |
name: GalaxyBudsClient_win64_portable | |
- name: Rename (x64) | |
run: | | |
ren GalaxyBudsClient_Setup_64bit_${{steps.version.outputs.version}}.exe GalaxyBudsClient_Windows_64bit_Setup.exe | |
ren GalaxyBudsClient.exe GalaxyBudsClient_Windows_64bit_Portable.exe | |
- uses: AButler/[email protected] | |
with: | |
files: '*.exe' | |
repo-token: ${{ secrets.GH_TOKEN }} | |
release-on-winget: | |
runs-on: windows-latest | |
needs: [attach-to-release] | |
if: github.event_name == 'release' | |
steps: | |
- name: Prepare version information (1/2) | |
uses: oprypin/[email protected] | |
with: | |
repository: timschneeb/GalaxyBudsClient | |
releases-only: true | |
id: last_release | |
- name: Prepare version information (2/2) | |
uses: benjlevesque/[email protected] | |
id: short-sha | |
with: | |
length: 6 | |
- name: Release on WinGet | |
uses: vedantmgoyal9/winget-releaser@main | |
with: | |
identifier: timschneeb.GalaxyBudsClient | |
version: '${{steps.last_release.outputs.tag}}-${{steps.short-sha.outputs.sha}}' | |
token: ${{ secrets.WINGET_TOKEN }} | |