mirror of https://github.com/Jackett/Jackett
ci/cd: build linux-musl artifacts (#12886)
Documentation - [Alpine Linux](https://github.com/Jackett/Jackett/wiki/Installation-on-Alpine-Linux) - [OpenWrt](https://github.com/Jackett/Jackett/wiki/Installation-on-OpenWrt) Co-authored-by: garfield69 <garfield69@outlook.com> Co-authored-by: garfield69 <garfieldsixtynine@gmail.com> Co-authored-by: Diego Heras <ngosang@hotmail.es>
This commit is contained in:
parent
9c0b620721
commit
0def2f0bf3
|
@ -744,10 +744,18 @@ Download and extract the latest `Jackett.Binaries.macOS.tar.gz` or `Jackett.Bina
|
||||||
Detailed instructions are available at [LinuxServer.io Jackett Docker](https://hub.docker.com/r/linuxserver/jackett/). The Jackett Docker is highly recommended, especially if you are having Mono stability issues or having issues running Mono on your system e.g. QNAP, Synology. Thanks to [LinuxServer.io](https://linuxserver.io)
|
Detailed instructions are available at [LinuxServer.io Jackett Docker](https://hub.docker.com/r/linuxserver/jackett/). The Jackett Docker is highly recommended, especially if you are having Mono stability issues or having issues running Mono on your system e.g. QNAP, Synology. Thanks to [LinuxServer.io](https://linuxserver.io)
|
||||||
|
|
||||||
|
|
||||||
|
## Installation on Alpine Linux
|
||||||
|
Detailed instructions are available at [Jackett's Wiki](https://github.com/Jackett/Jackett/wiki/Installation-on-Alpine-Linux).
|
||||||
|
|
||||||
|
|
||||||
## Installation on Synology
|
## Installation on Synology
|
||||||
Jackett is available as a [beta package](https://synocommunity.com/package/jackett) from [SynoCommunity](https://synocommunity.com/)
|
Jackett is available as a [beta package](https://synocommunity.com/package/jackett) from [SynoCommunity](https://synocommunity.com/)
|
||||||
|
|
||||||
|
|
||||||
|
## Installation on OpenWrt
|
||||||
|
Detailed instructions are available at [Jackett's Wiki](https://github.com/Jackett/Jackett/wiki/Installation-on-OpenWrt).
|
||||||
|
|
||||||
|
|
||||||
## Running Jackett behind a reverse proxy
|
## Running Jackett behind a reverse proxy
|
||||||
When running jackett behind a reverse proxy make sure that the original hostname of the request is passed to Jackett. If HTTPS is used also set the X-Forwarded-Proto header to "https". Don't forget to adjust the "Base path override" Jackett option accordingly.
|
When running jackett behind a reverse proxy make sure that the original hostname of the request is passed to Jackett. If HTTPS is used also set the X-Forwarded-Proto header to "https". Don't forget to adjust the "Base path override" Jackett option accordingly.
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,27 @@ stages:
|
||||||
runtime: linux-arm64
|
runtime: linux-arm64
|
||||||
archiveType: tar
|
archiveType: tar
|
||||||
artifactName: Jackett.Binaries.LinuxARM64.tar.gz
|
artifactName: Jackett.Binaries.LinuxARM64.tar.gz
|
||||||
|
LinuxMuslAMDx64:
|
||||||
|
buildDescription: Linux musl AMD x64
|
||||||
|
imageName: ubuntu-20.04
|
||||||
|
framework: $(netCoreFramework)
|
||||||
|
runtime: linux-musl-x64
|
||||||
|
archiveType: tar
|
||||||
|
artifactName: Jackett.Binaries.LinuxMuslAMDx64.tar.gz
|
||||||
|
LinuxMuslARM32:
|
||||||
|
buildDescription: Linux musl ARM32
|
||||||
|
imageName: ubuntu-20.04
|
||||||
|
framework: $(netCoreFramework)
|
||||||
|
runtime: linux-musl-arm
|
||||||
|
archiveType: tar
|
||||||
|
artifactName: Jackett.Binaries.LinuxMuslARM32.tar.gz
|
||||||
|
LinuxMuslARM64:
|
||||||
|
buildDescription: Linux musl ARM64
|
||||||
|
imageName: ubuntu-20.04
|
||||||
|
framework: $(netCoreFramework)
|
||||||
|
runtime: linux-musl-arm64
|
||||||
|
archiveType: tar
|
||||||
|
artifactName: Jackett.Binaries.LinuxMuslARM64.tar.gz
|
||||||
pool:
|
pool:
|
||||||
vmImage: $(imageName)
|
vmImage: $(imageName)
|
||||||
displayName: ${{ variables.buildDescription }}
|
displayName: ${{ variables.buildDescription }}
|
||||||
|
|
|
@ -161,7 +161,9 @@ namespace Jackett.Common.Services
|
||||||
private string GetUpdaterPath(string tempDirectory) =>
|
private string GetUpdaterPath(string tempDirectory) =>
|
||||||
variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreMacOsArm64 ||
|
variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreMacOsArm64 ||
|
||||||
variant == Variants.JackettVariant.CoreLinuxAmdx64 || variant == Variants.JackettVariant.CoreLinuxArm32 ||
|
variant == Variants.JackettVariant.CoreLinuxAmdx64 || variant == Variants.JackettVariant.CoreLinuxArm32 ||
|
||||||
variant == Variants.JackettVariant.CoreLinuxArm64
|
variant == Variants.JackettVariant.CoreLinuxArm64 ||
|
||||||
|
variant == Variants.JackettVariant.CoreLinuxMuslAmdx64 || variant == Variants.JackettVariant.CoreLinuxMuslArm32 ||
|
||||||
|
variant == Variants.JackettVariant.CoreLinuxMuslArm64
|
||||||
? Path.Combine(tempDirectory, "Jackett", "JackettUpdater")
|
? Path.Combine(tempDirectory, "Jackett", "JackettUpdater")
|
||||||
: Path.Combine(tempDirectory, "Jackett", "JackettUpdater.exe");
|
: Path.Combine(tempDirectory, "Jackett", "JackettUpdater.exe");
|
||||||
|
|
||||||
|
@ -265,7 +267,9 @@ namespace Jackett.Common.Services
|
||||||
|
|
||||||
if (variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreMacOsArm64
|
if (variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreMacOsArm64
|
||||||
|| variant == Variants.JackettVariant.CoreLinuxAmdx64 || variant == Variants.JackettVariant.CoreLinuxArm32
|
|| variant == Variants.JackettVariant.CoreLinuxAmdx64 || variant == Variants.JackettVariant.CoreLinuxArm32
|
||||||
|| variant == Variants.JackettVariant.CoreLinuxArm64 || variant == Variants.JackettVariant.Mono)
|
|| variant == Variants.JackettVariant.CoreLinuxArm64 || variant == Variants.JackettVariant.Mono
|
||||||
|
|| variant == Variants.JackettVariant.CoreLinuxMuslAmdx64 || variant == Variants.JackettVariant.CoreLinuxMuslArm32
|
||||||
|
|| variant == Variants.JackettVariant.CoreLinuxMuslArm64)
|
||||||
{
|
{
|
||||||
// When the files get extracted, the execute permission for jackett and JackettUpdater don't get carried across
|
// When the files get extracted, the execute permission for jackett and JackettUpdater don't get carried across
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,10 @@ namespace Jackett.Common.Utils
|
||||||
CoreMacOsArm64,
|
CoreMacOsArm64,
|
||||||
CoreLinuxAmdx64,
|
CoreLinuxAmdx64,
|
||||||
CoreLinuxArm32,
|
CoreLinuxArm32,
|
||||||
CoreLinuxArm64
|
CoreLinuxArm64,
|
||||||
|
CoreLinuxMuslAmdx64,
|
||||||
|
CoreLinuxMuslArm32,
|
||||||
|
CoreLinuxMuslArm64
|
||||||
}
|
}
|
||||||
|
|
||||||
public JackettVariant GetVariant()
|
public JackettVariant GetVariant()
|
||||||
|
@ -29,12 +32,21 @@ namespace Jackett.Common.Utils
|
||||||
return JackettVariant.CoreMacOs;
|
return JackettVariant.CoreMacOs;
|
||||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
|
||||||
return JackettVariant.CoreMacOsArm64;
|
return JackettVariant.CoreMacOsArm64;
|
||||||
|
#if ISLINUXMUSL
|
||||||
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.X64)
|
||||||
|
return JackettVariant.CoreLinuxMuslAmdx64;
|
||||||
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.Arm)
|
||||||
|
return JackettVariant.CoreLinuxMuslArm32;
|
||||||
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
|
||||||
|
return JackettVariant.CoreLinuxMuslArm64;
|
||||||
|
#else
|
||||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.X64)
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.X64)
|
||||||
return JackettVariant.CoreLinuxAmdx64;
|
return JackettVariant.CoreLinuxAmdx64;
|
||||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.Arm)
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.Arm)
|
||||||
return JackettVariant.CoreLinuxArm32;
|
return JackettVariant.CoreLinuxArm32;
|
||||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
|
||||||
return JackettVariant.CoreLinuxArm64;
|
return JackettVariant.CoreLinuxArm64;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -67,6 +79,12 @@ namespace Jackett.Common.Utils
|
||||||
return "Jackett.Binaries.LinuxARM32.tar.gz";
|
return "Jackett.Binaries.LinuxARM32.tar.gz";
|
||||||
case JackettVariant.CoreLinuxArm64:
|
case JackettVariant.CoreLinuxArm64:
|
||||||
return "Jackett.Binaries.LinuxARM64.tar.gz";
|
return "Jackett.Binaries.LinuxARM64.tar.gz";
|
||||||
|
case JackettVariant.CoreLinuxMuslAmdx64:
|
||||||
|
return "Jackett.Binaries.LinuxMuslAMDx64.tar.gz";
|
||||||
|
case JackettVariant.CoreLinuxMuslArm32:
|
||||||
|
return "Jackett.Binaries.LinuxMuslARM32.tar.gz";
|
||||||
|
case JackettVariant.CoreLinuxMuslArm64:
|
||||||
|
return "Jackett.Binaries.LinuxMuslARM64.tar.gz";
|
||||||
default:
|
default:
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
@ -76,7 +94,9 @@ namespace Jackett.Common.Utils
|
||||||
{
|
{
|
||||||
return (variant == JackettVariant.CoreMacOs || variant == JackettVariant.CoreMacOsArm64
|
return (variant == JackettVariant.CoreMacOs || variant == JackettVariant.CoreMacOsArm64
|
||||||
|| variant == JackettVariant.CoreLinuxAmdx64 || variant == JackettVariant.CoreLinuxArm32
|
|| variant == JackettVariant.CoreLinuxAmdx64 || variant == JackettVariant.CoreLinuxArm32
|
||||||
|| variant == JackettVariant.CoreLinuxArm64);
|
|| variant == JackettVariant.CoreLinuxArm64
|
||||||
|
|| variant == JackettVariant.CoreLinuxMuslAmdx64 || variant == JackettVariant.CoreLinuxMuslArm32
|
||||||
|
|| variant == JackettVariant.CoreLinuxMuslArm64);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<NoWarn></NoWarn>
|
<NoWarn></NoWarn>
|
||||||
<ServerGarbageCollection>false</ServerGarbageCollection>
|
<ServerGarbageCollection>false</ServerGarbageCollection>
|
||||||
|
<DefineConstants Condition="'$(RuntimeIdentifier)' == 'linux-musl-x64' or '$(RuntimeIdentifier)' == 'linux-musl-arm' or '$(RuntimeIdentifier)' == 'linux-musl-arm64'">ISLINUXMUSL</DefineConstants>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|AnyCPU'">
|
||||||
|
@ -64,7 +65,9 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Jackett.Common\Jackett.Common.csproj" />
|
<ProjectReference Include="..\Jackett.Common\Jackett.Common.csproj">
|
||||||
|
<Properties Condition="$(DefineConstants.Contains('ISLINUXMUSL')) == 'true'">DefineConstants=ISLINUXMUSL</Properties>
|
||||||
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
<NoWarn />
|
<NoWarn />
|
||||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||||
<WarningsAsErrors />
|
<WarningsAsErrors />
|
||||||
|
<DefineConstants Condition="'$(RuntimeIdentifier)' == 'linux-musl-x64' or '$(RuntimeIdentifier)' == 'linux-musl-arm' or '$(RuntimeIdentifier)' == 'linux-musl-arm64'">ISLINUXMUSL</DefineConstants>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- Conditionally obtain references for the .NET461 target -->
|
<!-- Conditionally obtain references for the .NET461 target -->
|
||||||
|
@ -18,7 +19,9 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Jackett.Common\Jackett.Common.csproj" />
|
<ProjectReference Include="..\Jackett.Common\Jackett.Common.csproj">
|
||||||
|
<Properties Condition="$(DefineConstants.Contains('ISLINUXMUSL')) == 'true'">DefineConstants=ISLINUXMUSL</Properties>
|
||||||
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -671,7 +671,9 @@ namespace Jackett.Updater
|
||||||
|
|
||||||
if (variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreMacOsArm64
|
if (variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreMacOsArm64
|
||||||
|| variant == Variants.JackettVariant.CoreLinuxAmdx64 || variant == Variants.JackettVariant.CoreLinuxArm32
|
|| variant == Variants.JackettVariant.CoreLinuxAmdx64 || variant == Variants.JackettVariant.CoreLinuxArm32
|
||||||
|| variant == Variants.JackettVariant.CoreLinuxArm64)
|
|| variant == Variants.JackettVariant.CoreLinuxArm64
|
||||||
|
|| variant == Variants.JackettVariant.CoreLinuxMuslAmdx64 || variant == Variants.JackettVariant.CoreLinuxMuslArm32
|
||||||
|
|| variant == Variants.JackettVariant.CoreLinuxMuslArm64)
|
||||||
{
|
{
|
||||||
startInfo.UseShellExecute = false;
|
startInfo.UseShellExecute = false;
|
||||||
startInfo.CreateNoWindow = true;
|
startInfo.CreateNoWindow = true;
|
||||||
|
|
Loading…
Reference in New Issue