diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
new file mode 100644
index 0000000..604639e
--- /dev/null
+++ b/.github/workflows/release.yaml
@@ -0,0 +1,118 @@
+---
+name: Make Release
+
+on:
+ push:
+ tags:
+ - 'v*.*.*'
+
+jobs:
+ linux-artefact:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ dotnet_version: ['6.0.x']
+ os:
+ - ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-dotnet@v1
+ - run: cd src && dotnet build --configuration Release
+ - name: Create artifact linux
+ run: |
+ dotnet tool install --global dotnet-rpm
+ dotnet tool install --global dotnet-deb
+ dotnet tool install --global dotnet-tarball
+ echo "building packeges"
+ dotnet restore src/LacmusApp.sln
+ mkdir -p bin/linux
+ cd src/LacmusApp.Avalonia
+ dotnet rpm install
+ dotnet deb install
+ dotnet tarball install
+ dotnet rpm --framework net6.0 -c Release --runtime="linux-x64" -o ../../bin/linux LacmusApp.Avalonia.csproj
+ dotnet deb --framework net6.0 -c Release --runtime="linux-x64" -o ../../bin/linux LacmusApp.Avalonia.csproj
+ dotnet tarball --framework net6.0 -c Release --runtime="linux-x64" -o ../../bin/linux LacmusApp.Avalonia.csproj
+ shell: bash
+ - uses: actions/upload-artifact@v3
+ with:
+ name: artifact-linux-deb
+ path: |
+ ./bin/linux/*.deb
+ - uses: actions/upload-artifact@v3
+ with:
+ name: artifact-linux-rpm
+ path: |
+ ./bin/linux/*.rpm
+ - uses: actions/upload-artifact@v3
+ with:
+ name: artifact-linux-tar
+ path: |
+ ./bin/linux/*.tar.gz
+ windows-artefact:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ dotnet_version: ['6.0.x']
+ os:
+ - windows-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-dotnet@v1
+ - name: Create artifact windows
+ run: |
+ dotnet tool install --global dotnet-zip
+ echo "building packeges"
+ dotnet restore src/LacmusApp.sln
+ mkdir -p bin/windows
+ mkdir -p bin/windows/app
+ mkdir -p bin/windows/installer
+ cd src/LacmusApp.Avalonia
+ dotnet zip install
+ dotnet zip --framework net6.0 -c Release --runtime="win-x64" -o ../../bin/windows LacmusApp.Avalonia.csproj
+ dotnet publish --framework net6.0 -c Release --runtime="win-x64" -o ../../bin/windows/app LacmusApp.Avalonia.csproj
+ cd ../../
+ curl -L --output bin/windows/installer/temp.zip https://github.com/lacmus-foundation/inno-setup-gihtub-action/releases/download/v.1.0.0/innoSetupCli.zip
+ unzip bin/windows/installer/temp.zip -d bin/windows/installer
+ ./bin/windows/installer/ISCC.exe packages/windows/script.iss
+ shell: bash
+ - uses: actions/upload-artifact@v3
+ with:
+ name: artifact-windows-zip
+ path: |
+ ./bin/windows/*.zip
+ - uses: actions/upload-artifact@v3
+ with:
+ name: artifact-windows-setup
+ path: |
+ ./bin/windows/lacmusSetup.exe
+ osx-artefact:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ dotnet_version: ['6.0.x']
+ os:
+ - osx-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-dotnet@v1
+ - name: Create artifact osx
+ run: |
+ bash packages/osx/build-osx.sh
+ dotnet tool install --global dotnet-tarball
+ echo "building packeges"
+ dotnet restore src/LacmusApp.sln
+ cd src/LacmusApp.Avalonia
+ dotnet tarball install
+ dotnet tarball --framework net6.0 -c Release --runtime="osx-x64" -o ../../bin/osx LacmusApp.Avalonia.csproj
+ shell: bash
+ - uses: actions/upload-artifact@v3
+ with:
+ name: artifact-osx-tar
+ path: |
+ ./bin/osx/*.tar.gz
+ - uses: actions/upload-artifact@v3
+ with:
+ name: artifact-osx-app
+ path: |
+ ./bin/osx/*.zip
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 0000000..d761386
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+
+ 0.1.220-*
+ all
+
+
+
\ No newline at end of file
diff --git a/packages/linux/copyright b/packages/linux/copyright
new file mode 100755
index 0000000..dd683bf
--- /dev/null
+++ b/packages/linux/copyright
@@ -0,0 +1,28 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Lacmus Application
+Upstream-Contact: Lacmus Foundation
+Source: https://github.com/lacmus-foundation
+
+Files: *
+Copyright: Copyright 2020 Lacmus Foundation
+License: GPL-3
+
+License: GPL-3
+ Indicator Weather is free software; you can redistribute it
+ and/or modify it under the terms of the GNU General Public
+ License version 3 as published by the Free Software Foundation.
+ .
+ Indicator Weather is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the GNU General Public License for more
+ details. http://www.gnu.org/licenses/
+ .
+ You should have received a copy of the GNU General Public
+ License along with this package; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 3 can be found in the file
+ `/usr/share/common-licenses/GPL-3'.
diff --git a/packages/linux/lacmus.desktop b/packages/linux/lacmus.desktop
new file mode 100755
index 0000000..21e8939
--- /dev/null
+++ b/packages/linux/lacmus.desktop
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Lacmus
+StartupWMClass=Lacmus
+Comment=Lacmus Desktop Application
+GenericName=Program for searching and saving people
+Name[ru]=Lacmus
+GenericName[ru]=Приложение Lacmus
+Comment[ru]=Программа для поиска и спасения людей
+Exec=/usr/share/LacmusApp.Avalonia/LacmusApp.Avalonia
+Icon=/usr/share/pixmaps/lacmus.png
+Terminal=true
+Type=Application
+Categories=ImageProcessing;Photography;Utility;
+MimeType=image/jpeg;image/png;image/xml;image/bmp;text/xml;
\ No newline at end of file
diff --git a/packages/linux/lacmus.png b/packages/linux/lacmus.png
new file mode 100755
index 0000000..6200472
Binary files /dev/null and b/packages/linux/lacmus.png differ
diff --git a/packages/osx/LacmusApp.entitlements b/packages/osx/LacmusApp.entitlements
new file mode 100644
index 0000000..4eb3220
--- /dev/null
+++ b/packages/osx/LacmusApp.entitlements
@@ -0,0 +1,12 @@
+
+
+
+
+ com.apple.security.cs.allow-jit
+ com.apple.security.cs.allow-unsigned-executable-memory
+ com.apple.security.cs.allow-dyld-environment-variables
+ com.apple.security.cs.disable-library-validation
+ com.apple.security.automation.apple-events
+ com.apple.security.get-task-allow
+
+
\ No newline at end of file
diff --git a/packages/osx/LacmusApp.icns b/packages/osx/LacmusApp.icns
new file mode 100755
index 0000000..0f817ed
Binary files /dev/null and b/packages/osx/LacmusApp.icns differ
diff --git a/packages/osx/build-osx.sh b/packages/osx/build-osx.sh
new file mode 100644
index 0000000..23098aa
--- /dev/null
+++ b/packages/osx/build-osx.sh
@@ -0,0 +1,86 @@
+APP_NAME="LacmusApp.Avalonia"
+RID_LIST=("osx-x64")
+PUB_PLATFORM_LIST=("osx-x64")
+CONFIG="Release"
+CERT_NAME="" # Name of certification to sign the application
+
+echo "********** Start building $APP_NAME **********"
+
+# Get application version
+VERSION="0.7.0"
+if [ "$?" != "0" ]; then
+ echo "Unable to get version of $APP_NAME"
+ exit
+fi
+echo "Version: $VERSION"
+
+# Create output directory
+mkdir -p bin/osx
+cd src
+
+# Build packages
+for i in "${!RID_LIST[@]}"; do
+ RID=${RID_LIST[$i]}
+ PUB_PLATFORM=${PUB_PLATFORM_LIST[$i]}
+
+ echo " "
+ echo "[$PUB_PLATFORM ($RID)]"
+ echo " "
+
+ # clean
+ rm -rf ./LacmusApp.Avalonia/bin/
+ dotnet clean
+ dotnet restore
+ if [ "$?" != "0" ]; then
+ exit
+ fi
+
+ # build
+ dotnet msbuild LacmusApp.Avalonia -t:BundleApp -property:Configuration=$CONFIG -p:SelfContained=true -p:PublishSingleFile=false -p:PublishTrimmed=true -p:RuntimeIdentifier=$RID
+ if [ "$?" != "0" ]; then
+ exit
+ fi
+
+ # create output directory
+ if [[ -d "../bin/osx/$PUB_PLATFORM" ]]; then
+ rm -r "../bin/osx/$PUB_PLATFORM"
+ fi
+ echo "Create directory '../bin/osx/$PUB_PLATFORM'"
+ mkdir "../bin/osx/$PUB_PLATFORM"
+ if [ "$?" != "0" ]; then
+ exit
+ fi
+
+ # copy .app directory to output directoty
+ echo "Creating app bundle..."
+ mv ./LacmusApp.Avalonia/bin/$CONFIG/net6.0/$RID/publish/Lacmus.app ../bin/osx/$PUB_PLATFORM/Lacmus.app
+ if [ "$?" != "0" ]; then
+ exit
+ fi
+
+ # copy application icon and remove unnecessary files
+ cp ../packages/osx/LacmusApp.icns ../bin/osx/$PUB_PLATFORM/Lacmus.app/Contents/Resources/LacmusApp.icns
+ if [ "$?" != "0" ]; then
+ exit
+ fi
+
+ # sign application
+ #find "../bin/osx/$PUB_PLATFORM/Lacmus.app/Contents/MacOS/" | while read FILE_NAME; do
+ # if [[ -f $FILE_NAME ]]; then
+ # if [[ "$FILE_NAME" != "../bin/osx/$PUB_PLATFORM/Lacmus.app/Contents/MacOS//$APP_NAME" ]]; then
+ # echo "Signing $FILE_NAME"
+ # codesign -f -o runtime --timestamp --entitlements "../packages/osx/LacmusApp.entitlements" -s "$CERT_NAME" "$FILE_NAME"
+ # if [ "$?" != "0" ]; then
+ # exit
+ # fi
+ # fi
+ # fi
+ #done
+ #codesign -f -o runtime --timestamp --entitlements "../packages/osx/LacmusApp.entitlements" -s "$CERT_NAME" "../bin/osx/$PUB_PLATFORM/Lacmus.app/Contents/MacOS/$APP_NAME"
+ #codesign -f -o runtime --timestamp --entitlements "../packages/osx/LacmusApp.entitlements" -s "$CERT_NAME" "../bin/osx/$PUB_PLATFORM/Lacmus.app"
+ #
+ # zip .app directory
+ ditto -c -k --sequesterRsrc --keepParent "../bin/osx/$PUB_PLATFORM/Lacmus.app" "../bin/osx/LacmusApp.Avalonia-$VERSION-$PUB_PLATFORM.zip"
+ rm -rf "../bin/osx/$PUB_PLATFORM/Lacmus.app"
+
+done
diff --git a/packages/windows/script.iss b/packages/windows/script.iss
new file mode 100644
index 0000000..d5e1ed1
--- /dev/null
+++ b/packages/windows/script.iss
@@ -0,0 +1,49 @@
+#define MyAppName "Lacmus Application"
+#define MyAppVersion "0.7.0"
+#define MyAppPublisher "Lacmus Foundation"
+#define MyAppURL "https://lacmus.ml/"
+#define MyAppExeName "LacmusApp.Avalonia.exe"
+
+[Setup]
+; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
+; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
+AppId={{D11C6204-2C3F-4FA0-ABE6-DC08D507CF2B}
+AppName={#MyAppName}
+AppVersion={#MyAppVersion}
+AppVerName={#MyAppName} {#MyAppVersion}
+AppPublisher={#MyAppPublisher}
+AppPublisherURL={#MyAppURL}
+AppSupportURL={#MyAppURL}
+AppUpdatesURL={#MyAppURL}
+DefaultDirName={autopf}\Lacmus
+DisableDirPage=yes
+DisableProgramGroupPage=yes
+LicenseFile=..\..\LICENSE
+; Uncomment the following line to run in non administrative install mode (install for current user only.)
+;PrivilegesRequired=lowest
+OutputDir=..\..\bin\windows
+OutputBaseFilename=lacmusSetup
+Compression=lzma
+SolidCompression=yes
+WizardStyle=modern
+ArchitecturesAllowed=x64
+ArchitecturesInstallIn64BitMode=x64
+
+[Languages]
+Name: "english"; MessagesFile: "compiler:Default.isl"
+Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
+
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+
+[Files]
+Source: "..\..\bin\windows\app\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
+Source: "..\..\bin\windows\app\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files
+
+[Icons]
+Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
+Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
+
+[Run]
+Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
diff --git a/src/LacmusApp.Avalonia/LacmusApp.Avalonia.csproj b/src/LacmusApp.Avalonia/LacmusApp.Avalonia.csproj
index 991ffb5..2491204 100755
--- a/src/LacmusApp.Avalonia/LacmusApp.Avalonia.csproj
+++ b/src/LacmusApp.Avalonia/LacmusApp.Avalonia.csproj
@@ -2,9 +2,33 @@
Exe
net6.0
+ linux-x64;win-x64;osx-x64
Lacmus Foundation
- 0.6.0
- 0.6.0
+ 0.7.0
+ 0.7.0
+ 0.7.0
+ gosha20777
+ Copyright (c) Lacmus Foundation 2022
+ Lacmus help to find lost people in Search and Rescue operations. Lacmus is a cross-platform application which use computer vision and neural networks and written with C#, .NET Core, ReactiveUI and Avalonia.
+ LacmusApp.Avalonia
+ Lacmus Application
+ https://lacmus.ml/
+ https://github.com/lacmus-foundation/lacmus-app/blob/master/LICENSE
+ https://github.com/lacmus-foundation/lacmus-app
+ git
+ lacmus
+
+
+ Lacmus
+ Lacmus
+ com.example
+ 0.7.0
+ 0.7.0
+ APPL
+ LacmusApp.Avalonia
+ ..\..\packages\osx\LacmusApp.icns
+ NSApplication
+ true
@@ -31,6 +55,7 @@
+
@@ -58,4 +83,15 @@
+
+
+ /usr/share/applications/lacmus.desktop
+
+
+ /usr/share/pixmaps/lacmus.png
+
+
+ /usr/share/doc/lacmus/copyright
+
+
diff --git a/src/LacmusApp.Avalonia/Views/LogWindow.axaml b/src/LacmusApp.Avalonia/Views/LogWindow.axaml
index 3add6c3..4253010 100644
--- a/src/LacmusApp.Avalonia/Views/LogWindow.axaml
+++ b/src/LacmusApp.Avalonia/Views/LogWindow.axaml
@@ -12,11 +12,30 @@
Width="700"
Height="450">
+
+
+
+
+
+
+
diff --git a/src/LacmusApp.Avalonia/Views/MainWindow.xaml b/src/LacmusApp.Avalonia/Views/MainWindow.xaml
index 5ff2ba0..c8dea92 100755
--- a/src/LacmusApp.Avalonia/Views/MainWindow.xaml
+++ b/src/LacmusApp.Avalonia/Views/MainWindow.xaml
@@ -48,7 +48,7 @@
-
+