From eb0dc87342391f375533dcb653be01c92d489d29 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 05:16:56 +0000 Subject: [PATCH 1/7] Bump docker/build-push-action from 5 to 6 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v5...v6) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/BuildDockerPush.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/BuildDockerPush.yml b/.github/workflows/BuildDockerPush.yml index 9407aa54..6c9f9475 100644 --- a/.github/workflows/BuildDockerPush.yml +++ b/.github/workflows/BuildDockerPush.yml @@ -182,7 +182,7 @@ jobs: # Matrix build - name: Docker build and push - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . # GitHub cache is as unreliable as posting to GHCR, broken pipe errors From 5940b7005c927a3a2cc63592d84c51a3bff2c5b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 05:12:17 +0000 Subject: [PATCH 2/7] Bump Serilog.Sinks.File from 5.0.0 to 6.0.0 Bumps [Serilog.Sinks.File](https://github.com/serilog/serilog-sinks-file) from 5.0.0 to 6.0.0. - [Release notes](https://github.com/serilog/serilog-sinks-file/releases) - [Changelog](https://github.com/serilog/serilog-sinks-file/blob/dev/CHANGES.md) - [Commits](https://github.com/serilog/serilog-sinks-file/compare/v5.0.0...v6.0.0) --- updated-dependencies: - dependency-name: Serilog.Sinks.File dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- PlexCleaner/PlexCleaner.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PlexCleaner/PlexCleaner.csproj b/PlexCleaner/PlexCleaner.csproj index 065424ce..50203fef 100644 --- a/PlexCleaner/PlexCleaner.csproj +++ b/PlexCleaner/PlexCleaner.csproj @@ -46,7 +46,7 @@ - + From b75a5581113a3e50b209f09e9bfdbd7c12d8fc86 Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Tue, 9 Jul 2024 07:35:31 -0700 Subject: [PATCH 3/7] readme --- Docker/README.m4 | 8 ++++---- README.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Docker/README.m4 b/Docker/README.m4 index 4f7121cd..6830093f 100644 --- a/Docker/README.m4 +++ b/Docker/README.m4 @@ -51,10 +51,10 @@ Images are updated weekly with the latest upstream updates. | Tag | `linux/amd64` | `linux/arm64` | `linux/arm/v7` | Size | | --- | --- | --- | --- | --- | -| `ubuntu` | ☑ | ☑ | ☑ | ~402MB | -| `alpine` | ☑ | ☑ | ☐ | ~228MB | -| `debian` | ☑ | ☑ | ☑ | ~398MB | -| `savoury` | ☑ | ☐ | ☐ | ~462MB | +| `ubuntu` | ☑ | ☑ | ☑ | ~320MB | +| `alpine` | ☑ | ☑ | ☐ | ~160MB | +| `debian` | ☑ | ☑ | ☑ | ~330MB | +| `savoury` | ☑ | ☐ | ☐ | ~400MB | ## Media Tool Versions diff --git a/README.md b/README.md index 415804aa..a982df7f 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ Docker images are published on [Docker Hub][docker-link]. - Settings JSON schema changed from v3 to v4. - `ProcessOptions:KeepExtensions` has been deprecated, existing values will be converted to `ProcessOptions:FileIgnoreMasks`. - E.g. `ProcessOptions:KeepExtensions` : `.nfo` will be converted to `ProcessOptions:FileIgnoreMasks` : `*.nfo`. - - `ConvertOptions:FfMpegOptions:Output` has been deprecated, no need to for user configurable values. + - `ConvertOptions:FfMpegOptions:Output` has been deprecated, no need for user configurable values. - `ConvertOptions:FfMpegOptions:Global` no longer requires defaults values and will only be used during encoding, only add custom values for e.g. hardware acceleration, existing values will be converted. - E.g. `-analyzeduration 2147483647 -probesize 2147483647 -hwaccel cuda -hwaccel_output_format cuda` will be converted to `-hwaccel cuda -hwaccel_output_format cuda`. - Changed JSON serialization from `Newtonsoft.Json` [to](https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/migrate-from-newtonsoft) .NET native `Text.Json`. From 917133456e97e08a5732da9efaf01762be4cb2ac Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Wed, 10 Jul 2024 13:46:59 -0700 Subject: [PATCH 4/7] dependabot auto-merge --- .github/dependabot.yml | 1 + .github/workflows/BuildDockerPush.yml | 53 ++--------------------- .github/workflows/BuildGitHubRelease.yml | 19 -------- .github/workflows/DependabotAutoMerge.yml | 35 +++++++++++++++ 4 files changed, 40 insertions(+), 68 deletions(-) create mode 100644 .github/workflows/DependabotAutoMerge.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ebc552e9..0ee102cc 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,6 +5,7 @@ updates: # main - package-ecosystem: "nuget" directory: "/" + target-branch: "main" schedule: interval: "daily" - package-ecosystem: "github-actions" diff --git a/.github/workflows/BuildDockerPush.yml b/.github/workflows/BuildDockerPush.yml index 6c9f9475..4f9f29e3 100644 --- a/.github/workflows/BuildDockerPush.yml +++ b/.github/workflows/BuildDockerPush.yml @@ -15,31 +15,26 @@ concurrency: jobs: - # Test test: name: Test runs-on: ubuntu-latest steps: - # Install .NET SDK # https://github.com/marketplace/actions/setup-net-core-sdk - name: Setup .NET SDK uses: actions/setup-dotnet@v4 with: dotnet-version: "8.x" - # Checkout code # https://github.com/marketplace/actions/checkout - name: Checkout code uses: actions/checkout@v4 - # Run Unit Tests # https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test - name: Run unit tests run: dotnet test ./PlexCleanerTests/PlexCleanerTests.csproj - # Get version information version: name: Version runs-on: ubuntu-latest @@ -53,38 +48,30 @@ jobs: steps: - # Checkout code # https://github.com/marketplace/actions/checkout - name: Checkout uses: actions/checkout@v4 with: - # Get all history for version calculation fetch-depth: 0 - # Run Nerdbank.GitVersioning # https://github.com/marketplace/actions/nerdbank-gitversioning - name: Run Nerdbank.GitVersioning tool id: nbgv uses: dotnet/nbgv@master - # Build and push docker images buildpush: name: Build and push runs-on: ubuntu-latest needs: version strategy: - # Keep building even if one job fails, helps with troubleshooting when there are multiple errors fail-fast: false - # Limit number of concurrent builds - # Error: buildx failed with: ERROR: failed to solve: error writing layer blob: maximum timeout reached max-parallel: 4 - + # https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs matrix: include: - # Debian Stable: - file: ./Docker/Debian.Stable.Dockerfile platforms: linux/amd64,linux/arm64,linux/arm/v7 cache-scope: debian @@ -92,7 +79,6 @@ jobs: tags: | docker.io/ptr727/plexcleaner:${{ endsWith(github.ref, 'refs/heads/main') && 'debian' || 'debian-develop' }} - # Debian Testing: - file: ./Docker/Debian.Testing.Dockerfile platforms: linux/amd64,linux/arm64,linux/arm/v7 cache-scope: debian-testing @@ -100,7 +86,6 @@ jobs: tags: | docker.io/ptr727/plexcleaner:${{ endsWith(github.ref, 'refs/heads/main') && 'debian-testing' || 'debian-testing-develop' }} - # Alpine Stable: - file: ./Docker/Alpine.Stable.Dockerfile platforms: linux/amd64,linux/arm64 cache-scope: alpine @@ -108,15 +93,13 @@ jobs: tags: | docker.io/ptr727/plexcleaner:${{ endsWith(github.ref, 'refs/heads/main') && 'alpine' || 'alpine-develop' }} - # Alpine Edge: - file: ./Docker/Alpine.Edge.Dockerfile platforms: linux/amd64,linux/arm64 cache-scope: alpine-edge secrets: SAVOURY_PPA_AUTH tags: | docker.io/ptr727/plexcleaner:${{ endsWith(github.ref, 'refs/heads/main') && 'alpine-edge' || 'alpine-edge-develop' }} - - # Ubuntu Savoury: + - file: ./Docker/Ubuntu.Savoury.Dockerfile platforms: linux/amd64 cache-scope: savoury @@ -124,18 +107,15 @@ jobs: tags: | docker.io/ptr727/plexcleaner:${{ endsWith(github.ref, 'refs/heads/main') && 'savoury' || 'savoury-develop' }} - # Ubuntu Rolling: - file: ./Docker/Ubuntu.Rolling.Dockerfile platforms: linux/amd64,linux/arm64,linux/arm/v7 cache-scope: ubuntu secrets: SAVOURY_PPA_AUTH - # Also tag with latest and version number tags: | docker.io/ptr727/plexcleaner:${{ endsWith(github.ref, 'refs/heads/main') && 'ubuntu' || 'ubuntu-develop' }} docker.io/ptr727/plexcleaner:${{ endsWith(github.ref, 'refs/heads/main') && 'latest' || 'develop' }} docker.io/ptr727/plexcleaner:${{ needs.version.outputs.SemVer2 }} - # Ubuntu Devel: - file: ./Docker/Ubuntu.Devel.Dockerfile platforms: linux/amd64,linux/arm64,linux/arm/v7 cache-scope: ubuntu-devel @@ -145,29 +125,24 @@ jobs: steps: - # Checkout code # https://github.com/marketplace/actions/checkout - name: Checkout uses: actions/checkout@v4 - # Setup QEMU for multi architecture builds # https://github.com/marketplace/actions/docker-setup-qemu - name: Setup QEMU uses: docker/setup-qemu-action@v3 with: platforms: linux/amd64,linux/arm64,linux/arm/v7 - # Setup docker build # https://github.com/marketplace/actions/docker-setup-buildx - name: Setup Buildx uses: docker/setup-buildx-action@v3 with: platforms: linux/amd64,linux/arm64,linux/arm/v7 - # Login to Docker Hub # https://github.com/marketplace/actions/docker-login - name: Login to Docker Hub - # Skip pull requests if: ${{ github.event_name != 'pull_request' }} uses: docker/login-action@v3 with: @@ -175,21 +150,12 @@ jobs: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - # Docker build and push # https://github.com/marketplace/actions/build-and-push-docker-images - # https://docs.docker.com/build/ci/github-actions/cache/ - # https://github.com/moby/buildkit#github-actions-cache-experimental - - # Matrix build - name: Docker build and push uses: docker/build-push-action@v6 with: context: . - # GitHub cache is as unreliable as posting to GHCR, broken pipe errors - # cache-from: type=gha,scope=${{ matrix.cache-scope }} - # cache-to: type=gha,mode=max,scope=${{ matrix.cache-scope }} file: ${{ matrix.file }} - # Do not push on pull requests push: ${{ (github.event_name != 'pull_request') }} # TODO: How to test for secret not null and avoid "null= is not a valid secret" secrets: ${{ matrix.secrets }}=${{ secrets[matrix.secrets] }} @@ -204,14 +170,12 @@ jobs: BUILD_INFORMATION_VERSION=${{ needs.version.outputs.AssemblyInformationalVersion }} BUILD_PACKAGE_VERSION=${{ needs.version.outputs.SemVer2 }} - # Get tool versions from image toolversions: name: Tool versions runs-on: ubuntu-latest needs: buildpush - # Skip pull requests if: ${{ github.event_name != 'pull_request' }} - + strategy: # https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs @@ -234,7 +198,6 @@ jobs: steps: - # Get image size - name: Get image size run: | mkdir -p ${{ runner.temp }}/versions @@ -242,7 +205,6 @@ jobs: echo Image: docker.io/ptr727/plexcleaner:${{ matrix.tag }} >> ${{ runner.temp }}/versions/${{ matrix.file }} echo Size: $(docker manifest inspect -v docker.io/ptr727/plexcleaner:${{ matrix.tag }} | jq '.[] | select(.Descriptor.platform.architecture=="amd64") | [.OCIManifest.layers[].size] | add' | numfmt --to=iec) >> ${{ runner.temp }}/versions/${{ matrix.file }} - # Get tool versions in container # https://github.com/marketplace/actions/docker-run-action - name: Write tool versions to file uses: addnab/docker-run-action@v3 @@ -258,7 +220,6 @@ jobs: echo MkvMerge: $(mkvmerge --version) >> /versions/${{ matrix.file }} echo FfMpeg: $(ffmpeg -version) >> /versions/${{ matrix.file }} - # Print version file contents - name: Print versions run: cat ${{ runner.temp }}/versions/${{ matrix.file }} @@ -269,18 +230,16 @@ jobs: name: versions-${{ matrix.file }} path: ${{ runner.temp }}/versions/${{ matrix.file }} - # Update Docker README.md updatereadme: name: Create Docker README.md runs-on: ubuntu-latest needs: toolversions - # Skip pull requests and only update on main branch if: ${{ (github.event_name != 'pull_request') && (endsWith(github.ref, 'refs/heads/main')) }} steps: # https://github.com/marketplace/actions/checkout - - name: Checkout + - name: Checkout uses: actions/checkout@v4 # https://github.com/marketplace/actions/download-a-build-artifact @@ -304,22 +263,18 @@ jobs: short-description: ${{ github.event.repository.description }} readme-filepath: ${{ runner.temp }}/README.md - # Create a custom badge to report the build date datebadge: name: Date badge runs-on: ubuntu-latest needs: buildpush - # Skip pull requests and only update on main branch if: ${{ (github.event_name != 'pull_request') && (endsWith(github.ref, 'refs/heads/main')) }} steps: - # Get date from environment as a variable - id: date run: | echo "date=$(date)" >> $GITHUB_OUTPUT - # Create badge # https://github.com/marketplace/actions/bring-your-own-badge - name: Build date badge uses: RubbaBoy/BYOB@v1 diff --git a/.github/workflows/BuildGitHubRelease.yml b/.github/workflows/BuildGitHubRelease.yml index b6b3e58f..5ca9d1e0 100644 --- a/.github/workflows/BuildGitHubRelease.yml +++ b/.github/workflows/BuildGitHubRelease.yml @@ -13,31 +13,26 @@ concurrency: jobs: - # Test test: name: Test runs-on: ubuntu-latest steps: - # Install .NET SDK # https://github.com/marketplace/actions/setup-net-core-sdk - name: Setup .NET SDK uses: actions/setup-dotnet@v4 with: dotnet-version: "8.x" - # Checkout code # https://github.com/marketplace/actions/checkout - name: Checkout code uses: actions/checkout@v4 - # Run Unit Tests # https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test - name: Run unit tests run: dotnet test ./PlexCleanerTests/PlexCleanerTests.csproj - # Get version information version: name: Version runs-on: ubuntu-latest @@ -51,21 +46,17 @@ jobs: steps: - # Checkout code # https://github.com/marketplace/actions/checkout - name: Checkout uses: actions/checkout@v4 with: - # Get all history for version calculation fetch-depth: 0 - # Run Nerdbank.GitVersioning # https://github.com/marketplace/actions/nerdbank-gitversioning - name: Run Nerdbank.GitVersioning tool id: nbgv uses: dotnet/nbgv@master - # Build artifacts build: name: Build runs-on: ubuntu-latest @@ -87,19 +78,16 @@ jobs: steps: - # Install .NET SDK # https://github.com/marketplace/actions/setup-net-core-sdk - name: Setup .NET SDK uses: actions/setup-dotnet@v4 with: dotnet-version: "8.x" - # Checkout code # https://github.com/marketplace/actions/checkout - name: Checkout code uses: actions/checkout@v4 - # Build and publish # https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish - name: Build run: >- @@ -123,12 +111,10 @@ jobs: name: publish-${{ matrix.runtime }} path: ${{ runner.temp }}/publish - # Publish publish: name: Publish runs-on: ubuntu-latest needs: [ build, version ] - # Skip pull requests if: ${{ github.event_name != 'pull_request' }} steps: @@ -141,19 +127,14 @@ jobs: merge-multiple: true path: ${{ runner.temp }}/publish - # Zip the output - name: Zip build output run: 7z a -t7z ${{ runner.temp }}/publish/PlexCleaner.7z ${{ runner.temp }}/publish/* - # Create GitHub release # https://github.com/marketplace/actions/gh-release - name: Create GitHub release uses: softprops/action-gh-release@v2 with: - # Generate changelog from commit messages generate_release_notes: true - # Create a tag with the version number tag_name: ${{ needs.version.outputs.SemVer2 }} - # Only main branch is not a pre-release prerelease: ${{ !endsWith(github.ref, 'refs/heads/main') }} files: ${{ runner.temp }}/publish/PlexCleaner.7z diff --git a/.github/workflows/DependabotAutoMerge.yml b/.github/workflows/DependabotAutoMerge.yml new file mode 100644 index 00000000..0ee51da7 --- /dev/null +++ b/.github/workflows/DependabotAutoMerge.yml @@ -0,0 +1,35 @@ +name: Dependabot auto-merge + +on: + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + + dependabot: + name: Dependabot auto-merge + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + + if: github.actor == 'dependabot[bot]' + + steps: + + # https://github.com/marketplace/actions/fetch-metadata-from-dependabot-prs + # https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#enable-auto-merge-on-a-pull-request + - name: Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@v2 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + - name: Auto-merge dependabot non-major updates + if: steps.metadata.outputs.update-type != 'version-update:semver-major' + run: gh pr merge --auto --merge "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GH_TOKEN: ${{secrets.GITHUB_TOKEN}} From ef7e74cac390e6cedc0c7a80623b16f646a8adea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 20:51:09 +0000 Subject: [PATCH 5/7] Bump InsaneGenius.Utilities from 3.1.53 to 3.1.66 Bumps InsaneGenius.Utilities from 3.1.53 to 3.1.66. --- updated-dependencies: - dependency-name: InsaneGenius.Utilities dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- PlexCleaner/PlexCleaner.csproj | 116 ++++++++++++++++----------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/PlexCleaner/PlexCleaner.csproj b/PlexCleaner/PlexCleaner.csproj index 50203fef..d6124ff3 100644 --- a/PlexCleaner/PlexCleaner.csproj +++ b/PlexCleaner/PlexCleaner.csproj @@ -1,58 +1,58 @@ - - - - Exe - net8.0 - Mario.ico - PlexCleaner.Program - PlexCleaner - PlexCleaner - Pieter Viljoen - Pieter Viljoen - Pieter Viljoen - Utility to optimize media files for Direct Play in Plex, Emby, Jellyfin. - https://github.com/ptr727/PlexCleaner - MIT - https://github.com/ptr727/PlexCleaner - en - 1.1.1 - 1.1.1.1 - 1.1.1.0 - InsaneGenius.PlexCleaner - true - true - true - snupkg - true - latest - Linux - README.md - true - true - - - - - True - \ - - - - - - - - - - - - - - - - - - - - - + + + + Exe + net8.0 + Mario.ico + PlexCleaner.Program + PlexCleaner + PlexCleaner + Pieter Viljoen + Pieter Viljoen + Pieter Viljoen + Utility to optimize media files for Direct Play in Plex, Emby, Jellyfin. + https://github.com/ptr727/PlexCleaner + MIT + https://github.com/ptr727/PlexCleaner + en + 1.1.1 + 1.1.1.1 + 1.1.1.0 + InsaneGenius.PlexCleaner + true + true + true + snupkg + true + latest + Linux + README.md + true + true + + + + + True + \ + + + + + + + + + + + + + + + + + + + + + From a2ba0b33bc439d2db745c96fb1861dee0f86cdd5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 20:51:26 +0000 Subject: [PATCH 6/7] Bump xunit from 2.8.1 to 2.9.0 Bumps xunit from 2.8.1 to 2.9.0. --- updated-dependencies: - dependency-name: xunit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- PlexCleanerTests/PlexCleanerTests.csproj | 54 ++++++++++++------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/PlexCleanerTests/PlexCleanerTests.csproj b/PlexCleanerTests/PlexCleanerTests.csproj index c7ff2d4c..14a69512 100644 --- a/PlexCleanerTests/PlexCleanerTests.csproj +++ b/PlexCleanerTests/PlexCleanerTests.csproj @@ -1,27 +1,27 @@ - - - - net8.0 - enable - true - false - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - + + + + net8.0 + enable + true + false + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + From 2545f03bde254cfc7de53887cc76fccef9943409 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 20:52:48 +0000 Subject: [PATCH 7/7] Bump xunit.runner.visualstudio from 2.8.1 to 2.8.2 Bumps xunit.runner.visualstudio from 2.8.1 to 2.8.2. --- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- PlexCleanerTests/PlexCleanerTests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PlexCleanerTests/PlexCleanerTests.csproj b/PlexCleanerTests/PlexCleanerTests.csproj index 14a69512..d627f2fa 100644 --- a/PlexCleanerTests/PlexCleanerTests.csproj +++ b/PlexCleanerTests/PlexCleanerTests.csproj @@ -10,7 +10,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all