Skip to content

Relase 0.6.0

Relase 0.6.0 #19

Workflow file for this run

name: Create release builds
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
katvan_version: "${{ steps.get_version.outputs.katvan_version }}"
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Determine version
id: get_version
run: echo "katvan_version=$(grep project CMakeLists.txt | head -1 | cut -d"\"" -f2)" >> $GITHUB_OUTPUT
create-source-tarball:
runs-on: ubuntu-latest
needs: [prepare]
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Collect tarball
run: |
mkdir dist
tar cfz dist/katvan-${{ needs.prepare.outputs.katvan_version }}-src.tar.gz \
--transform "flags=r;s|^|katvan-${{ needs.prepare.outputs.katvan_version }}/|" \
--exclude-vcs \
--exclude .github \
--exclude dist *
- name: Upload tarball
uses: actions/upload-artifact@v4
with:
name: tarball
path: dist/katvan-${{ needs.prepare.outputs.katvan_version }}-src.tar.gz
if-no-files-found: error
build-linux-appimage:
runs-on: ubuntu-22.04
needs: [prepare]
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: 6.7.*
arch: linux_gcc_64
modules: 'qtpdf'
cache: true
- name: Install additional packages
run: sudo apt install -y libhunspell-dev g++-10 libfuse2
- name: Install AppImage tools
uses: miurahr/install-linuxdeploy-action@v1
with:
plugins: qt appimage
- name: Configure
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
env:
CXX: g++-10
- name: Build
run: cmake --build build -j $(nproc)
- name: Initialize AppDir
run: cmake --build build --target install DESTDIR=AppDir
- name: Generate AppImage
run: |
linuxdeploy-x86_64.AppImage --appdir build/AppDir --plugin qt --output appimage
mv Katvan-x86_64.AppImage Katvan-${{ needs.prepare.outputs.katvan_version }}-linux-x86_64.AppImage
env:
EXTRA_QT_PLUGINS: waylandcompositor
EXTRA_PLATFORM_PLUGINS: libqwayland-generic.so
- name: Upload AppImage
uses: actions/upload-artifact@v4
with:
name: AppImage
path: Katvan-${{ needs.prepare.outputs.katvan_version }}-linux-x86_64.AppImage
if-no-files-found: error
build-windows-zip:
runs-on: windows-2019
needs: [prepare]
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: 6.7.*
modules: 'qtpdf'
cache: true
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '53bef8994c541b6561884a8395ea35715ece75db'
- name: Install dependencies
run: vcpkg install hunspell pkgconf
- name: Configure
run: cmake -S . -B build -DKATVAN_PORTABLE_BUILD=ON -DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}\vcpkg\scripts\buildsystems\vcpkg.cmake"
- name: Build
run: cmake --build build -j --config Release
- name: Create distribution
run: |
mkdir Katvan
cp build\src\Release\katvan.exe Katvan
cp build\src\Release\*.dll Katvan
windeployqt --release `
--translations en,he `
--skip-plugin-types generic,imageformats,networkinformation,tls `
--no-system-d3d-compiler `
--no-opengl-sw `
--no-compiler-runtime `
Katvan\katvan.exe
mkdir Katvan\hunspell
7z a katvan-${{ needs.prepare.outputs.katvan_version }}-windows-x64-portable.zip Katvan\*
- name: Upload distribution
uses: actions/upload-artifact@v4
with:
name: Windows
path: katvan-${{ needs.prepare.outputs.katvan_version }}-windows-x64-portable.zip
if-no-files-found: error
create-release:
runs-on: ubuntu-latest
needs: [create-source-tarball, build-linux-appimage, build-windows-zip]
permissions:
contents: write
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Create draft release
run: gh release create --draft --verify-tag ${{ github.ref_name }} tarball/* AppImage/* Windows/*
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}