diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 9a9c346..d65aa93 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -14,7 +14,7 @@ jobs: steps: # Checkout the repository code - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set outputs id: vars @@ -55,7 +55,7 @@ jobs: if: ${{ success() }} steps: - name: Checkout target repository - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: repository: infrastructure/core-apps token: ${{ secrets.ACTIONS_TOKEN }} diff --git a/.gitea/workflows/build-only.yaml b/.gitea/workflows/build-only.yaml index 9599b16..fe99e86 100644 --- a/.gitea/workflows/build-only.yaml +++ b/.gitea/workflows/build-only.yaml @@ -12,7 +12,7 @@ jobs: steps: # Checkout the repository code - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set outputs id: vars diff --git a/.gitea/workflows/changelog.yaml b/.gitea/workflows/changelog.yaml new file mode 100644 index 0000000..f9a4583 --- /dev/null +++ b/.gitea/workflows/changelog.yaml @@ -0,0 +1,32 @@ +name: changelog + +on: + push: + branches: + - dev + +jobs: + changelog: + runs-on: ubuntu-latest + container: docker.io/thegeeklab/git-sv:2.1.3 + steps: + - name: install tools + run: | + apk add -q --update --no-cache nodejs curl jq sed + - uses: actions/checkout@v7 + with: + fetch-depth: 0 + - name: Generate upcoming changelog + run: | + git sv rn -o changelog.md + export RELEASE_NOTES=$(cat changelog.md) + export ISSUE_NUMBER=$(curl -s "https://git.dubyatp.xyz/api/v1/repos/williamp/yt-dlp-bot/issues?state=open&q=Changelog%20for%20upcoming%20version" | jq '.[].number') + + echo $RELEASE_NOTES + JSON_DATA=$(echo "" | jq -Rs --arg title 'Changelog for upcoming version' --arg body "$(cat changelog.md)" '{title: $title, body: $body}') + + if [ -z "$ISSUE_NUMBER" ]; then + curl -s -X POST "https://git.dubyatp.xyz/api/v1/repos/williamp/yt-dlp-bot/issues" -H "Authorization: token ${{ secrets.ACTIONS_TOKEN }}" -H "Content-Type: application/json" -d "$JSON_DATA" + else + curl -s -X PATCH "https://git.dubyatp.xyz/api/v1/repos/williamp/yt-dlp-bot/issues/$ISSUE_NUMBER" -H "Authorization: token ${{ secrets.ACTIONS_TOKEN }}" -H "Content-Type: application/json" -d "$JSON_DATA" + fi diff --git a/.gitsv/config.yaml b/.gitsv/config.yaml new file mode 100644 index 0000000..d14607e --- /dev/null +++ b/.gitsv/config.yaml @@ -0,0 +1,57 @@ +version: '1.1' # Configuration version. + +versioning: + update-major: [breaking] # Commit types used to bump major. + update-minor: [feat, perf] # Commit types used to bump minor. + update-patch: [build, ci, chore, fix, perf, refactor, test] # Commit types used to bump patch. + # When type is not present on update rules and is unknown (not mapped on commit message types); + # if ignore-unknown=false bump patch, if ignore-unknown=true do not bump version. + ignore-unknown: false + +tag: + pattern: 'v%d.%d.%d' # Pattern used to create git tag. + filter: '' # Enables you to filter for considerable tags using git pattern syntax. + +release-notes: + sections: # Array with each section of release note. Check template section for more information. + - name: Breaking Changes + section-type: breaking-changes + - name: Features # Name used on section. + section-type: commits # Type of the section, supported types: commits, breaking-changes. + commit-types: [feat, perf] # Commit types for commit section-type, one commit type cannot be in more than one section. + - name: Bug Fixes + section-type: commits + commit-types: [fix] + - name: Maintenance + section-type: commits + commit-types: [chore, refactor] + - name: Documentation + commit-types: [docs] + section-type: commits + - name: CI + commit-types: [ci] + section-type: commits + +branches: # Git branches config. + prefix: ([a-z]+\/)? # Prefix used on branch name, it should be a regex group. + suffix: (-.*)? # Suffix used on branch name, it should be a regex group. + disable-issue: false # Set true if there is no need to recover issue id from branch name. + skip: [] # List of branch names ignored on commit message validation. + skip-detached: false # Set true if a detached branch should be ignored on commit message validation. + +commit-message: + # Supported commit types. + types: [build, ci, chore, docs, feat, fix, perf, refactor, revert, style, test] + header-selector: '' # You can put in a regex here to select only a certain part of the commit message. Please define a regex group 'header'. + scope: + # Define supported scopes, if blank, scope will not be validated, if not, only scope listed will be valid. + # Don't forget to add "" on your list if you need to define scopes and keep it optional. + values: [] + footer: + issue: # Use "issue: {}" if you wish to disable issue footer. + key: jira # Name used to define an issue on footer metadata. + key-synonyms: [Jira, JIRA] # Supported variations for footer metadata. + use-hash: false # If false, use : separator. If true, use # separator. + add-value-prefix: '' # Add a prefix to issue value. + issue: + regex: '[A-Z]+-[0-9]+' # Regex for issue id. diff --git a/Dockerfile b/Dockerfile index 12cc848..7e35ced 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ ######################################## # Versions -ARG YT_DLP_VERSION="2026.06.09" +ARG YT_DLP_VERSION="2026.07.04" ################################################################################ # Deno builder stage @@ -11,7 +11,7 @@ FROM denoland/deno:bin-2.6.6@sha256:9f18d20207f2699595ea26d14e0b7e123cd0cd01100a ################################################################################ # YT-DLP builder stage -FROM alpine:3.24@sha256:8ddefa941e689fc29abcdeb8dae3b3c6d139cc08ce9a52633931160701770685 AS yt-dlp-builder +FROM alpine:3.24@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b AS yt-dlp-builder ARG YT_DLP_VERSION ARG TARGETARCH @@ -38,7 +38,7 @@ RUN case "$TARGETARCH" in \ ################################################################################ # FFmpeg builder stage -FROM debian:13-slim@sha256:b6e2a152f22a40ff69d92cb397223c906017e1391a73c952b588e51af8883bf8 AS ffmpeg-builder +FROM debian:13-slim@sha256:28de0877c2189802884ccd20f15ee41c203573bd87bb6b883f5f46362d24c5c2 AS ffmpeg-builder RUN apt-get update && \ apt-get install -y --no-install-recommends ffmpeg COPY --from=yt-dlp-builder /rootfs/bin/yt-dlp /yt-dlp @@ -54,7 +54,7 @@ RUN mkdir -p /rootfs/bin && \ ################################################################################ # App builder stage -FROM golang:1.26.4-trixie@sha256:0dcba0d95dbfb072e9917a106b9e07d7cc298097dc83e9307056ef1889de654d AS app-builder +FROM golang:1.26.4-trixie@sha256:68b7145ec43d1820b9a56704554b53d1520aa2a15cb5233e374188a31b2a1bce AS app-builder COPY app/ /opt/app WORKDIR /opt/app diff --git a/renovate.json b/renovate.json index a52f481..cc1665b 100644 --- a/renovate.json +++ b/renovate.json @@ -14,5 +14,12 @@ "depNameTemplate": "yt-dlp/yt-dlp", "versioningTemplate": "regex:^(?\\d{4})\\.(?\\d{2})\\.(?\\d{2})$" } + ], + "packageRules": [ + { + "description": "Automerge digest-level image updates", + "matchUpdateTypes": ["digest"], + "automerge": true + } ] } \ No newline at end of file