Implemented a script to automatically publish for all supported RIDs.

This commit is contained in:
Joseph Milazzo 2021-03-24 14:19:12 -05:00
parent 02520b8751
commit 60f45da44e
5 changed files with 118 additions and 6 deletions

4
.gitignore vendored
View File

@ -451,4 +451,6 @@ appsettings.json
cache/
/API/wwwroot/
/API/cache/
/API/temp/
/API/temp/
_temp/
_output/

View File

@ -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>

4
INSTALL.txt Normal file
View File

@ -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

View File

@ -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
build.sh Normal file
View File

@ -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