Skip to content

Commit

Permalink
Implemented a script to automatically publish for all supported RIDs.
Browse files Browse the repository at this point in the history
  • Loading branch information
majora2007 committed Mar 24, 2021
1 parent 02520b8 commit 60f45da
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 6 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -451,4 +451,6 @@ appsettings.json
cache/
/API/wwwroot/
/API/cache/
/API/temp/
/API/temp/
_temp/
_output/
4 changes: 2 additions & 2 deletions API/API.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
<PackageReference Include="Hangfire.AspNetCore" Version="1.7.18" />
<PackageReference Include="Hangfire.MaximumConcurrentExecutions" Version="1.1.0" />
<PackageReference Include="Hangfire.MemoryStorage.Core" Version="1.4.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.1" NoWarn="NU1605" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="5.0.1" NoWarn="NU1605" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.1"/>
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="5.0.1"/>
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.1">
<PrivateAssets>all</PrivateAssets>
Expand Down
4 changes: 4 additions & 0 deletions INSTALL.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
How to Install
1. Unzip the archive to a directory that is writable. If on windows, do not place in Program Files
2. Open appsettings.json and modify TokenKey to a random string ideally generated from https://passwordsgenerator.net/
3. Run Kavita executable
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,11 @@ Think: ***Plex but for Manga.***


## How to Deploy
* Build kavita-webui via ng build --prod. The dest should be placed in the API/wwwroot directory
* Run publish command
- Run build.sh and pass the Runtime Identifier for your OS or just build.sh for all supported RIDs.

## How to install
1. Unzip the archive for your target OS
2. Place in a directory that is writable. If on windows, do not place in Program Files
3. Open appsettings.json and modify TokenKey to a random string ideally generated from [https://passwordsgenerator.net/](https://passwordsgenerator.net/)
4. Run API.exe
4. Run Kavita

107 changes: 107 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
#! /bin/bash
set -e

outputFolder='_output'

ProgressStart()
{
echo "Start '$1'"
}

ProgressEnd()
{
echo "Finish '$1'"
}

UpdateVersionNumber()
{
if [ "$KAVITAVERSION" != "" ]; then
echo "Updating Version Info"
sed -i'' -e "s/<AssemblyVersion>[0-9.*]\+<\/AssemblyVersion>/<AssemblyVersion>$KAVITAVERSION<\/AssemblyVersion>/g" src/Directory.Build.props
sed -i'' -e "s/<AssemblyConfiguration>[\$()A-Za-z-]\+<\/AssemblyConfiguration>/<AssemblyConfiguration>${BUILD_SOURCEBRANCHNAME}<\/AssemblyConfiguration>/g" src/Directory.Build.props
# sed -i'' -e "s/<string>10.0.0.0<\/string>/<string>$KAVITAVERSION<\/string>/g" macOS/Kavita.app/Contents/Info.plist
fi
}

Build()
{
ProgressStart 'Build'

rm -rf $outputFolder

slnFile=Kavita.sln

dotnet clean $slnFile -c Debug
dotnet clean $slnFile -c Release

if [[ -z "$RID" ]];
then
dotnet msbuild -restore $slnFile -p:Configuration=Release -p:Platform="Any CPU"
else
dotnet msbuild -restore $slnFile -p:Configuration=Release -p:Platform="Any CPU" -p:RuntimeIdentifiers=$RID
fi

ProgressEnd 'Build'
}

BuildUI()
{
ProgressStart 'Building UI'
cd ../kavita-webui/ || exit
npm install
npm run prod
cd ../kavita/ || exit
ProgressEnd 'Building UI'
}

Package()
{
local framework="$1"
local runtime="$2"
local lOutputFolder=../_output/"$runtime"/Kavita

ProgressStart "Creating $runtime Package for $framework"

BuildUI

echo "Building"
cd API
echo dotnet publish -c release --self-contained --runtime $runtime -o "$lOutputFolder" --framework $framework
dotnet publish -c release --self-contained --runtime $runtime -o "$lOutputFolder" --framework $framework

echo "Copying Install information"
cp ../INSTALL.txt "$lOutputFolder"/README.txt

echo "Renaming API -> Kavita"
mv "$lOutputFolder"/API "$lOutputFolder"/Kavita

echo "Creating tar"
cd ../$outputFolder/"$runtime"/
tar -czvf ../kavita-$runtime.tar.gz Kavita


ProgressEnd "Creating $runtime Package for $framework"


}


#UpdateVersionNumber

RID="$1"

Build

if [[ -z "$RID" ]];
then
Package "net5.0" "win-x64"
Package "net5.0" "win-x86"
Package "net5.0" "linux-x64"
Package "net5.0" "linux-musl-x64"
Package "net5.0" "osx-x64"
else
Package "net5.0" "$RID"
fi



0 comments on commit 60f45da

Please sign in to comment.