Skip to content

Update libshv

Update libshv #53

Workflow file for this run

name: Build
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
permissions:
contents: write
id-token: write
pages: write
env:
emsdk_cache_dir: "emsdk-cache"
jobs:
linux-qt6:
name: Linux / Qt 6.5.3
runs-on: ubuntu-22.04
steps:
- name: Clone the repository
uses: actions/checkout@v4
with:
submodules: true
- name: Setup CMake
uses: ./.github/actions/cmake
with:
use_qt6: ON
modules: qtserialport qtwebsockets qtnetworkauth
additional_cmake_args: -DCMAKE_INSTALL_PREFIX='${{ github.workspace }}/install/usr'
- name: Create AppImage
uses: ./.github/actions/appimage
with:
use_qt6: ON
linux-qt68:
name: Linux / Qt 6.8.0
runs-on: ubuntu-22.04
steps:
- name: Clone the repository
uses: actions/checkout@v4
with:
submodules: true
- name: Setup CMake
uses: ./.github/actions/cmake
with:
use_qt6: ON
modules: qtserialport qtwebsockets qtnetworkauth
additional_cmake_args: -DCMAKE_INSTALL_PREFIX='${{ github.workspace }}/install/usr'
linux-qt5:
name: Linux / Qt 5.15.2
runs-on: ubuntu-22.04
env:
CXXFLAGS: -Wno-stringop-overflow
steps:
- name: Clone the repository
uses: actions/checkout@v4
with:
submodules: true
- name: Setup CMake
uses: ./.github/actions/cmake
with:
qt_version: 5.15.2
use_qt6: OFF
modules: ""
additional_cmake_args: -DCMAKE_INSTALL_PREFIX='${{ github.workspace }}/install/usr'
- name: Create AppImage
uses: ./.github/actions/appimage
with:
use_qt6: OFF
windows-qt6:
name: Windows / Qt 6.5.3
runs-on: windows-2022
steps:
- name: Clone the repository
uses: actions/checkout@v4
with:
submodules: true
- name: Setup CMake
uses: ./.github/actions/cmake
with:
qt_arch: win64_mingw
use_qt6: ON
modules: qtserialport qtwebsockets qtnetworkauth
additional_cmake_args: -DCMAKE_INSTALL_PREFIX='${{ github.workspace }}/install'
- name: Build
run: cmake --build '${{github.workspace}}/build' --parallel "$(nproc)"
- name: Install
run: cmake --install '${{ github.workspace }}/build'
- name: Run windeployqt
run: windeployqt -websockets -serialport '${{ github.workspace }}/install/bin/shvspy.exe'
- name: Copy MinGW runtime libraries
# windeployqt is unable to copy those, because it looks for them next to where g++.exe is. On the GitHub runner,
# they are in a different directory.
run: cp /c/mingw64/bin/{libstdc++-6.dll,libgcc_s_seh-1.dll,libwinpthread-1.dll} '${{ github.workspace }}/install/bin'
shell: bash
- name: Get app version
run: echo "VERSION=$(grep APP_VERSION shvspy/src/appversion.h | cut -d\" -f2)" >> "$GITHUB_ENV"
shell: bash
- name: Create installer
run: iscc "-DBUILD_DIR=${{ github.workspace }}/install" "-DVERSION=${{ env.VERSION }}" shvspy/shvspy.iss
- name: Upload installer
uses: actions/upload-artifact@v4
with:
name: shvspy-${{ env.VERSION }}-setup.exe
path: ${{ github.workspace }}/install/_inno/shvspy/shvspy-*-setup.exe
wasm-qt6:
name: WebAssembly / Qt 6.6.3
runs-on: ubuntu-22.04
steps:
- name: Clone the repository
uses: actions/checkout@v4
with:
submodules: true
- name: Setup emsdk cache
uses: actions/cache@v4
with:
key: emsdk-cache
path: ${{ env.emsdk_cache_dir }}
- uses: mymindstorm/setup-emsdk@v14
with:
version: 3.1.37
actions-cache-folder: ${{ env.emsdk_cache_dir }}
- name: Setup CMake
uses: ./.github/actions/cmake
with:
qt_version: 6.6.3
qt_arch: wasm_singlethread
use_qt6: ON
modules: qtwebsockets
- name: Build
run: cmake --build '${{github.workspace}}/build' --parallel "$(nproc)"
shell: bash
- name: Consolidate WebAssembly artifacts
run: |
mkdir gh-sources
cp '${{github.workspace}}'/build/shvspy/*.{js,wasm,html} gh-sources/
mv gh-sources/shvspy.html gh-sources/index.html
cp '${{github.workspace}}'/distro/shvspy.AppDir/shvspy.svg gh-sources/qtlogo.svg
shell: bash
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: 'gh-sources/'
deploy-github-pages:
name: Deploy GitHub Pages
if: github.ref == 'refs/heads/master'
needs: [wasm-qt6]
runs-on: ubuntu-22.04
steps:
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4
create-nightly-release:
name: Create nightly
if: github.ref == 'refs/heads/master'
needs: [linux-qt6, linux-qt5, windows-qt6, wasm-qt6]
runs-on: ubuntu-22.04
steps:
- name: Consolidate artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Rename artifacts
run: |
mv artifact.tar shvspy-wasm-nightly.tar
mv shvspy-*-setup.exe shvspy-nightly-setup.exe
mv shvspy-qt5-*-x86_64.AppImage shvspy-qt5-nightly-x86_64.AppImage
mv shvspy-qt6-*-x86_64.AppImage shvspy-qt6-nightly-x86_64.AppImage
- name: Release
uses: softprops/action-gh-release@v2
with:
name: Nightly
tag_name: nightly
fail_on_unmatched_files: true
body: |
The latest and greatest ShvSpy.
This is a nightly release. If you find any bugs, please report them to the repository's issue tracker.
files: |
shvspy-*