Skip to content

Commit

Permalink
Get tool version info from script to break docker build on failure.
Browse files Browse the repository at this point in the history
  • Loading branch information
ptr727 committed Jul 20, 2023
1 parent defa5d5 commit c533d6b
Show file tree
Hide file tree
Showing 8 changed files with 69 additions and 39 deletions.
19 changes: 9 additions & 10 deletions Docker/Alpine.dotNET.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -140,18 +140,17 @@ RUN apk --no-cache add \
# Copy PlexCleaner from builder layer
COPY --from=builder /Builder/Publish/PlexCleaner/. /PlexCleaner

# Copy test script
COPY /Docker/Test.sh /Test/
RUN chmod -R ugo+rwx /Test

# Copy version script
COPY /Docker/Version.sh /PlexCleaner
RUN chmod ugo+rwx /PlexCleaner/Version.sh

# Print installed version information
ARG TARGETPLATFORM \
BUILDPLATFORM
RUN if [ "$BUILDPLATFORM" = "$TARGETPLATFORM" ]; then \
dotnet --info; \
ffmpeg -version; \
HandBrakeCLI --version; \
mediainfo --version; \
mkvmerge --version; \
/PlexCleaner/PlexCleaner --version; \
/PlexCleaner/Version.sh; \
fi

# Copy test script
COPY /Docker/Test.sh /Test/
RUN chmod -R ugo+rwx /Test
18 changes: 11 additions & 7 deletions Docker/Arch.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -135,13 +135,17 @@ RUN echo "y\ny" | pacman --sync --noconfirm --clean --clean
# Copy PlexCleaner from builder layer
COPY --from=builder /Builder/Publish/PlexCleaner/. /PlexCleaner

# Verify installed versions
RUN dotnet --info \
&& mediainfo --version \
&& mkvmerge --version \
&& ffmpeg -version \
&& /PlexCleaner/PlexCleaner --version

# Copy test script
COPY /Docker/Test.sh /Test/
RUN chmod -R ugo+rwx /Test

# Copy version script
COPY /Docker/Version.sh /PlexCleaner
RUN chmod ugo+rwx /PlexCleaner/Version.sh

# Print installed version information
ARG TARGETPLATFORM \
BUILDPLATFORM
RUN if [ "$BUILDPLATFORM" = "$TARGETPLATFORM" ]; then \
/PlexCleaner/Version.sh; \
fi
19 changes: 9 additions & 10 deletions Docker/Debian.dotNET.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -195,18 +195,17 @@ RUN apt-get autoremove -y \
# Copy PlexCleaner from builder layer
COPY --from=builder /Builder/Publish/PlexCleaner/. /PlexCleaner

# Copy test script
COPY /Docker/Test.sh /Test/
RUN chmod -R ugo+rwx /Test

# Copy version script
COPY /Docker/Version.sh /PlexCleaner
RUN chmod ugo+rwx /PlexCleaner/Version.sh

# Print installed version information
ARG TARGETPLATFORM \
BUILDPLATFORM
RUN if [ "$BUILDPLATFORM" = "$TARGETPLATFORM" ]; then \
dotnet --info; \
ffmpeg -version; \
HandBrakeCLI --version; \
mediainfo --version; \
mkvmerge --version; \
/PlexCleaner/PlexCleaner --version; \
/PlexCleaner/Version.sh; \
fi

# Copy test script
COPY /Docker/Test.sh /Test/
RUN chmod -R ugo+rwx /Test
19 changes: 9 additions & 10 deletions Docker/Ubuntu.dotNET.Savoury.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -178,18 +178,17 @@ RUN apt-get autoremove -y \
# Copy PlexCleaner from builder layer
COPY --from=builder /Builder/Publish/PlexCleaner/. /PlexCleaner

# Copy test script
COPY /Docker/Test.sh /Test/
RUN chmod -R ugo+rwx /Test

# Copy version script
COPY /Docker/Version.sh /PlexCleaner
RUN chmod ugo+rwx /PlexCleaner/Version.sh

# Print installed version information
ARG TARGETPLATFORM \
BUILDPLATFORM
RUN if [ "$BUILDPLATFORM" = "$TARGETPLATFORM" ]; then \
dotnet --info; \
ffmpeg -version; \
HandBrakeCLI --version; \
mediainfo --version; \
mkvmerge --version; \
/PlexCleaner/PlexCleaner --version; \
/PlexCleaner/Version.sh; \
fi

# Copy test script
COPY /Docker/Test.sh /Test/
RUN chmod -R ugo+rwx /Test
15 changes: 15 additions & 0 deletions Docker/Version.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/sh

# Echo commands
set -x

# Exit on error
set -e

# Print version information
dotnet --info
ffmpeg -version
HandBrakeCLI --version
mediainfo --version
mkvmerge --version
/PlexCleaner/PlexCleaner --version
1 change: 1 addition & 0 deletions PlexCleaner.sln
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docker", "Docker", "{C560F5
Docker\README.md = Docker\README.md
Docker\Test.sh = Docker\Test.sh
Docker\Ubuntu.dotNET.Savoury.Dockerfile = Docker\Ubuntu.dotNET.Savoury.Dockerfile
Docker\Version.sh = Docker\Version.sh
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Actions", "Actions", "{CA5B5CC1-86DF-46DB-8AEB-12CDE10FB785}"
Expand Down
2 changes: 1 addition & 1 deletion PlexCleaner/PlexCleaner.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="InsaneGenius.Utilities" Version="3.0.31" />
<PackageReference Include="InsaneGenius.Utilities" Version="3.0.37" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Newtonsoft.Json.Schema" Version="3.0.15" />
Expand Down
15 changes: 14 additions & 1 deletion PlexCleaner/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
using InsaneGenius.Utilities;
Expand Down Expand Up @@ -103,6 +104,15 @@ public static string GetVersion(bool versionOnly)
return versionOnly ? version : $"{name} : {version} ({build})";
}

public static DateTime GetBuildDate()
{
// Use assembly modified time as build date
// https://stackoverflow.com/questions/1600962/displaying-the-build-date
var assembly = Assembly.GetEntryAssembly();
assembly ??= Assembly.GetExecutingAssembly();
return File.GetLastWriteTime(assembly.Location).ToLocalTime();
}

private static bool ShowVersionInformation()
{
// Use the raw commandline and look for --version
Expand Down Expand Up @@ -514,7 +524,10 @@ private static Program Create(CommandLineOptions options, bool verifyTools)
}

// Log app and runtime version
Log.Logger.Information("Application Version : {AppVersion}, Runtime Version : {RuntimeVersion}", GetVersion(false), Environment.Version.ToString());
Log.Logger.Information("Application Version : {AppVersion}", GetVersion(false));
Log.Logger.Information("Runtime Version : {RuntimeVersion}", RuntimeInformation.FrameworkDescription);
Log.Logger.Information("OS Version : {OsVersion}", RuntimeInformation.OSDescription);
Log.Logger.Information("Build Date : {BuildDate}", GetBuildDate().ToLocalTime());

// Parallel processing config
if (Options.Parallel)
Expand Down

0 comments on commit c533d6b

Please sign in to comment.