Skip to content

Merge pull request #31 from marco-calautti/msgbox-fix #44

Merge pull request #31 from marco-calautti/msgbox-fix

Merge pull request #31 from marco-calautti/msgbox-fix #44

Workflow file for this run

name: Build
on:
push:
branches: [ "master" ]
tags:
- 'v*'
pull_request:
branches: [ "master" ]
workflow_dispatch:
env:
BUILD_TYPE: Release
wxBUILD_SHARED: OFF
wxBUILD_USE_STATIC_RUNTIME: ON
jobs:
create_release:
name: Create Release if Needed
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- if: contains(github.ref, 'refs/tags/')
name: Get Tag Message
id: get_tag_message
run: |
cd ${{github.workspace}}
git fetch --tags --force
echo "TAG_MESSAGE<<EOF" >> "$GITHUB_OUTPUT"
echo "$(git for-each-ref ${{github.ref}} --format='%(contents)')" >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
- if: contains(github.ref, 'refs/tags/')
name: Prepare Release
uses: softprops/action-gh-release@v1
with:
name: Delta Patcher ${{ github.ref_name }}
body: ${{ steps.get_tag_message.outputs.TAG_MESSAGE }}
draft: false
prerelease: false
generate_release_notes: false
build_release:
name: Build
needs: create_release
strategy:
matrix:
include:
- os: ubuntu-latest
release_package: linux_bin_gtk3_x86_64
- os: macos-11
release_package: macos_bin_universal
- os: windows-2022
release_package: windows_bin_x86_64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- if: startsWith(matrix.os, 'ubuntu')
name: Pull dependencies
run: sudo apt install -y build-essential cmake git libgtk-3-dev
- if: startsWith(matrix.os, 'windows')
name: Configure CMake Windows
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DwxBUILD_SHARED=${{env.wxBUILD_SHARED}} -DwxBUILD_USE_STATIC_RUNTIME=${{env.wxBUILD_USE_STATIC_RUNTIME}}
- if: startsWith(matrix.os, 'ubuntu')
name: Configure CMake Linux
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DwxBUILD_SHARED=${{env.wxBUILD_SHARED}}
- if: startsWith(matrix.os, 'macOS')
name: Configure CMake MacOS
run: cmake -B ${{github.workspace}}/build -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DwxBUILD_SHARED=${{env.wxBUILD_SHARED}} -DwxBUILD_USE_STATIC_RUNTIME=${{env.wxBUILD_USE_STATIC_RUNTIME}}
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel 2
- if: startsWith(matrix.os, 'windows')
name: Package Windows
run: |
cp ${{github.workspace}}/CHANGELOG.txt ${{github.workspace}}/build/app/
cp ${{github.workspace}}/build/app/Release/DeltaPatcher.exe ${{github.workspace}}/build/app/
cd ${{github.workspace}}/build/app/
Compress-Archive -Path DeltaPatcher.exe,CHANGELOG.txt -Destination ${{ matrix.release_package }}.zip
- if: startsWith(matrix.os, 'ubuntu')
name: Package Linux
run: |
cp ${{github.workspace}}/CHANGELOG.txt ${{github.workspace}}/build/app/
cd ${{github.workspace}}/build/app/
strip -s DeltaPatcher
zip ${{ matrix.release_package }}.zip DeltaPatcher CHANGELOG.txt
- if: startsWith(matrix.os, 'macOS')
name: Package MacOS
run: |
cp ${{github.workspace}}/CHANGELOG.txt ${{github.workspace}}/build/app
cd ${{github.workspace}}/build/app
zip -r ${{ matrix.release_package }}.zip DeltaPatcher.app/ CHANGELOG.txt
- uses: actions/upload-artifact@v3
with:
name: ${{ matrix.release_package }}
path: ${{github.workspace}}/build/app/${{ matrix.release_package }}.zip
- if: contains(github.ref, 'refs/tags/') && startsWith(matrix.os, 'windows')
name: Define Asset Path Windows
id: asset_path_win
run: |
$ass_path = "${{github.workspace}}/build/app/${{ matrix.release_package }}.zip" -replace '\\','/'
echo "ASSET_PATH=$ass_path" >> $env:GITHUB_OUTPUT
- if: contains(github.ref, 'refs/tags/') && startsWith(matrix.os, 'windows')
name: Upload Release Assets Windows
uses: softprops/action-gh-release@v1
with:
files: ${{ steps.asset_path_win.outputs.ASSET_PATH }}
- if: contains(github.ref, 'refs/tags/') && !startsWith(matrix.os, 'windows')
name: Upload Release Assets
uses: softprops/action-gh-release@v1
with:
files: ${{github.workspace}}/build/app/${{ matrix.release_package }}.zip