diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 1b3ed2a..d01e6d8 100755 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -6,7 +6,7 @@ * Read, and fill the Pull Request template * If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR * If the PR is addressing an existing issue include, closes #\, in the body of the PR commit message -* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord) +* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn) ## Common files @@ -24,7 +24,7 @@ ## Readme If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit. -Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-bazarr/edit/master/readme-vars.yml). +Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-bazarr/edit/development/readme-vars.yml). These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play. Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-bazarr) @@ -115,7 +115,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Update the changelog -If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-bazarr/tree/master/root), add an entry to the changelog +If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-bazarr/tree/development/root), add an entry to the changelog ```yml changelogs: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 7543866..6ba8f84 100755 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,7 +1,7 @@ blank_issues_enabled: false contact_links: - name: Discord chat support - url: https://linuxserver.io/discord + url: https://discord.gg/YWrKVTn about: Realtime support / chat with the community and the team. - name: Discourse discussion forum diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index f07873a..d91ab05 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -21,7 +21,7 @@ ------------------------------ - - [ ] I have read the [contributing](https://github.com/linuxserver/docker-bazarr/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications + - [ ] I have read the [contributing](https://github.com/linuxserver/docker-bazarr/blob/development/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications ------------------------------ diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 31036b0..b3652e4 100755 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -4,39 +4,31 @@ on: workflow_dispatch: jobs: - external-trigger-master: + external-trigger-development: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.1.1 - name: External Trigger - if: github.ref == 'refs/heads/master' + if: github.ref == 'refs/heads/development' env: SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }} run: | printf "# External trigger for docker-bazarr\n\n" >> $GITHUB_STEP_SUMMARY - if grep -q "^bazarr_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then - echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY - echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`bazarr_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY - elif grep -q "^bazarr_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then + if grep -q "^bazarr_development" <<< "${SKIP_EXTERNAL_TRIGGER}"; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY - echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`bazarr_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY + echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`bazarr_development\`; skipping trigger." >> $GITHUB_STEP_SUMMARY exit 0 fi echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY - echo "> External trigger running off of master branch. To disable this trigger, add \`bazarr_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY + echo "> External trigger running off of development branch. To disable this trigger, add \`bazarr_development\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY - EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/morpheus65535/bazarr/releases/latest" | jq -r '. | .tag_name') - echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY - if grep -q "^bazarr_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then - echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY - echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY - exit 0 - fi + EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/morpheus65535/bazarr/releases" | jq -r '.[0] | .tag_name') + echo "Type is \`github_devel\`" >> $GITHUB_STEP_SUMMARY if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY - FAILURE_REASON="Can't retrieve external version for bazarr branch master" + FAILURE_REASON="Can't retrieve external version for bazarr branch development" GHA_TRIGGER_URL="https://github.com/linuxserver/docker-bazarr/actions/runs/${{ github.run_id }}" curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}], @@ -47,7 +39,7 @@ jobs: echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY image="linuxserver/bazarr" - tag="latest" + tag="development" token=$(curl -sX GET \ "https://ghcr.io/token?scope=repository%3Alinuxserver%2Fbazarr%3Apull" \ | jq -r '.token') @@ -93,7 +85,7 @@ jobs: if [ -z "${IMAGE_VERSION}" ]; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY - FAILURE_REASON="Can't retrieve last pushed version for bazarr tag latest" + FAILURE_REASON="Can't retrieve last pushed version for bazarr tag development" curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} @@ -103,14 +95,14 @@ jobs: if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then echo "Version \`${EXT_RELEASE}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY exit 0 - elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bazarr/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then + elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bazarr/job/development/lastBuild/api/json | jq -r '.building') == "true" ]; then echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY exit 0 else if [[ "${artifacts_found}" == "false" ]]; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY - FAILURE_REASON="New version ${EXT_RELEASE} for bazarr tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later." + FAILURE_REASON="New version ${EXT_RELEASE} for bazarr tag development is detected, however not all artifacts are uploaded to upstream release yet. Will try again later." curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} @@ -121,7 +113,7 @@ jobs: echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY fi response=$(curl -iX POST \ - https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bazarr/job/master/buildWithParameters?PACKAGE_CHECK=false \ + https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bazarr/job/development/buildWithParameters?PACKAGE_CHECK=false \ --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY @@ -136,7 +128,7 @@ jobs: --data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ --data-urlencode "Submit=Submit" echo "**** Notifying Discord ****" - TRIGGER_REASON="A version change was detected for bazarr tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" + TRIGGER_REASON="A version change was detected for bazarr tag development. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml index 8868765..d3866d2 100755 --- a/.github/workflows/greetings.yml +++ b/.github/workflows/greetings.yml @@ -9,5 +9,5 @@ jobs: - uses: actions/first-interaction@v1 with: issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.' - pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-bazarr/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!' + pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-bazarr/blob/development/.github/PULL_REQUEST_TEMPLATE.md)!' repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/Dockerfile b/Dockerfile index 290dd86..bbce2fc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,8 +34,8 @@ RUN \ mkdir -p \ /app/bazarr/bin && \ if [ -z ${BAZARR_VERSION+x} ]; then \ - BAZARR_VERSION=$(curl -sX GET "https://api.github.com/repos/morpheus65535/bazarr/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + BAZARR_VERSION=$(curl -sX GET https://api.github.com/repos/morpheus65535/bazarr/releases \ + | jq -r '.[0] | .tag_name'); \ fi && \ curl -o \ /tmp/bazarr.zip -L \ @@ -44,7 +44,7 @@ RUN \ /tmp/bazarr.zip -d \ /app/bazarr/bin && \ rm -Rf /app/bazarr/bin/bin && \ - echo "UpdateMethod=docker\nBranch=master\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/bazarr/package_info && \ + echo "UpdateMethod=docker\nBranch=development\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/bazarr/package_info && \ curl -o \ /app/bazarr/bin/postgres-requirements.txt -L \ "https://raw.githubusercontent.com/morpheus65535/bazarr/${BAZARR_VERSION}/postgres-requirements.txt" && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index ab91d28..27e3fd2 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -34,8 +34,8 @@ RUN \ mkdir -p \ /app/bazarr/bin && \ if [ -z ${BAZARR_VERSION+x} ]; then \ - BAZARR_VERSION=$(curl -sX GET "https://api.github.com/repos/morpheus65535/bazarr/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + BAZARR_VERSION=$(curl -sX GET https://api.github.com/repos/morpheus65535/bazarr/releases \ + | jq -r '.[0] | .tag_name'); \ fi && \ curl -o \ /tmp/bazarr.zip -L \ @@ -44,7 +44,7 @@ RUN \ /tmp/bazarr.zip -d \ /app/bazarr/bin && \ rm -Rf /app/bazarr/bin/bin && \ - echo "UpdateMethod=docker\nBranch=master\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/bazarr/package_info && \ + echo "UpdateMethod=docker\nBranch=development\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/bazarr/package_info && \ curl -o \ /app/bazarr/bin/postgres-requirements.txt -L \ "https://raw.githubusercontent.com/morpheus65535/bazarr/${BAZARR_VERSION}/postgres-requirements.txt" && \ diff --git a/Jenkinsfile b/Jenkinsfile index 57d9c26..89f2a0d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -19,7 +19,7 @@ pipeline { DOCKERHUB_TOKEN=credentials('docker-hub-ci-pat') QUAYIO_API_TOKEN=credentials('quayio-repo-api-token') GIT_SIGNING_KEY=credentials('484fbca6-9a4f-455e-b9e3-97ac98785f5f') - EXT_GIT_BRANCH = 'master' + EXT_GIT_BRANCH = 'development' EXT_USER = 'morpheus65535' EXT_REPO = 'bazarr' BUILD_VERSION_ARG = 'BAZARR_VERSION' @@ -59,27 +59,15 @@ pipeline { steps{ echo "Running on node: ${NODE_NAME}" sh '''#! /bin/bash - echo "Pruning builder" - docker builder prune -f --builder container || : - containers=$(docker ps -q) + containers=$(docker ps -aq) if [[ -n "${containers}" ]]; then - BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit') - for container in ${containers}; do - if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then - echo "skipping buildx container in docker stop" - else - echo "Stopping container ${container}" - docker stop ${container} - fi - done + docker stop ${containers} fi - docker system prune -f --volumes || : - docker image prune -af || : - ''' + docker system prune -af --volumes || : ''' script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( - script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', + script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:development 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', returnStdout: true).trim() env.LS_RELEASE_NOTES = sh( script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', @@ -108,7 +96,7 @@ pipeline { script{ env.LS_TAG_NUMBER = sh( script: '''#! /bin/bash - tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null) + tagsha=$(git rev-list -n 1 development-${LS_RELEASE} 2>/dev/null) if [ "${tagsha}" == "${COMMIT_SHA}" ]; then echo ${LS_RELEASE_NUMBER} elif [ -z "${GIT_COMMIT}" ]; then @@ -141,23 +129,23 @@ pipeline { /* ######################## External Release Tagging ######################## */ - // If this is a stable github release use the latest endpoint from github to determine the ext tag - stage("Set ENV github_stable"){ - steps{ - script{ - env.EXT_RELEASE = sh( - script: '''curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. | .tag_name' ''', - returnStdout: true).trim() - } - } + // If this is a devel github release use the first in an array from github to determine the ext tag + stage("Set ENV github_devel"){ + steps{ + script{ + env.EXT_RELEASE = sh( + script: '''curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases | jq -r '.[0] | .tag_name' ''', + returnStdout: true).trim() + } + } } // If this is a stable or devel github release generate the link for the build message stage("Set ENV github_link"){ - steps{ - script{ - env.RELEASE_LINK = 'https://github.com/' + env.EXT_USER + '/' + env.EXT_REPO + '/releases/tag/' + env.EXT_RELEASE - } - } + steps{ + script{ + env.RELEASE_LINK = 'https://github.com/' + env.EXT_USER + '/' + env.EXT_REPO + '/releases/tag/' + env.EXT_RELEASE + } + } } // Sanitize the release tag and strip illegal docker or github characters stage("Sanitize tag"){ @@ -193,10 +181,10 @@ pipeline { } } } - // If this is a master build use live docker endpoints + // If this is a development build use live docker endpoints stage("Set ENV live build"){ when { - branch "master" + branch "development" environment name: 'CHANGE_ID', value: '' } steps { @@ -206,13 +194,13 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } else { - env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER - env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER - env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = 'development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.EXT_RELEASE_TAG = 'development-version-' + env.EXT_RELEASE_CLEAN env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' } } @@ -220,7 +208,7 @@ pipeline { // If this is a dev build use dev docker endpoints stage("Set ENV dev build"){ when { - not {branch "master"} + not {branch "development"} environment name: 'CHANGE_ID', value: '' } steps { @@ -230,13 +218,13 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } else { - env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA - env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA - env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.EXT_RELEASE_TAG = 'development-version-' + env.EXT_RELEASE_CLEAN env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' } @@ -254,13 +242,13 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST } else { - env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST - env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST - env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + env.EXT_RELEASE_TAG = 'development-version-' + env.EXT_RELEASE_CLEAN env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' @@ -298,7 +286,7 @@ pipeline { // Use helper containers to render templated files stage('Update-Templates') { when { - branch "master" + branch "development" environment name: 'CHANGE_ID', value: '' expression { env.CONTAINER_NAME != null @@ -310,24 +298,24 @@ pipeline { TEMPDIR=$(mktemp -d) docker pull ghcr.io/linuxserver/jenkins-builder:latest # Cloned repo paths for templating: - # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch master of ${LS_USER}/${LS_REPO} for running the jenkins builder on - # ${TEMPDIR}/repo/${LS_REPO}: Cloned branch master of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github + # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch development of ${LS_USER}/${LS_REPO} for running the jenkins builder on + # ${TEMPDIR}/repo/${LS_REPO}: Cloned branch development of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github # ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github # ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos # ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github - git clone --branch master --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME} + git clone --branch development --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME} docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest echo "Starting Stage 1 - Jenkinsfile update" if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then mkdir -p ${TEMPDIR}/repo git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f master + git checkout -f development cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ git add Jenkinsfile git commit -m 'Bot Updating Templated Files' - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit" rm -Rf ${TEMPDIR} @@ -346,13 +334,13 @@ pipeline { mkdir -p ${TEMPDIR}/repo git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f master + git checkout -f development for i in ${TEMPLATES_TO_DELETE}; do git rm "${i}" done git commit -m 'Bot Updating Templated Files' - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit" rm -Rf ${TEMPDIR} @@ -367,20 +355,20 @@ pipeline { sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml fi mkdir -p ${TEMPDIR}/d2 - docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:latest + docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:development ls -al ${TEMPDIR}/d2 - yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-latest.d2\\")" readme-vars.yml + yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-development.d2\\")" readme-vars.yml if [[ $(md5sum readme-vars.yml | cut -c1-8) != $(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | cut -c1-8) ]]; then echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit." mkdir -p ${TEMPDIR}/repo git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f master + git checkout -f development cp ${WORKSPACE}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml git add readme-vars.yml git commit -m 'Bot Updating Templated Files' - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "Updating templates and exiting build, new one will trigger based on commit" rm -Rf ${TEMPDIR} @@ -397,7 +385,7 @@ pipeline { mkdir -p ${TEMPDIR}/repo git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f master + git checkout -f development cd ${TEMPDIR}/docker-${CONTAINER_NAME} mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE @@ -410,8 +398,8 @@ pipeline { fi git add readme-vars.yml ${TEMPLATED_FILES} git commit -m 'Bot Updating Templated Files' - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "Updating templates and exiting build, new one will trigger based on commit" rm -Rf ${TEMPDIR} @@ -512,7 +500,7 @@ pipeline { // Exit the build if the Templated files were just updated stage('Template-exit') { when { - branch "master" + branch "development" environment name: 'CHANGE_ID', value: '' environment name: 'FILES_UPDATED', value: 'true' expression { @@ -525,10 +513,10 @@ pipeline { } } } - // If this is a master build check the S6 service file perms + // If this is a development build check the S6 service file perms stage("Check S6 Service file Permissions"){ when { - branch "master" + branch "development" environment name: 'CHANGE_ID', value: '' environment name: 'EXIT_STATUS', value: '' } @@ -595,7 +583,7 @@ pipeline { --label \"org.opencontainers.image.licenses=GPL-3.0-only\" \ --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.title=Bazarr\" \ - --label \"org.opencontainers.image.description=[Bazarr](https://www.bazarr.media/) is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.\" \ + --label \"org.opencontainers.image.description=[Bazarr](https://github.com/morpheus65535/bazarr) is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.\" \ --no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \ --provenance=true --sbom=true --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." @@ -661,7 +649,7 @@ pipeline { --label \"org.opencontainers.image.licenses=GPL-3.0-only\" \ --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.title=Bazarr\" \ - --label \"org.opencontainers.image.description=[Bazarr](https://www.bazarr.media/) is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.\" \ + --label \"org.opencontainers.image.description=[Bazarr](https://github.com/morpheus65535/bazarr) is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.\" \ --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \ --provenance=true --sbom=true --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." @@ -720,7 +708,7 @@ pipeline { --label \"org.opencontainers.image.licenses=GPL-3.0-only\" \ --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.title=Bazarr\" \ - --label \"org.opencontainers.image.description=[Bazarr](https://www.bazarr.media/) is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.\" \ + --label \"org.opencontainers.image.description=[Bazarr](https://github.com/morpheus65535/bazarr) is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.\" \ --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \ --provenance=true --sbom=true --builder=container --load \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." @@ -763,8 +751,7 @@ pipeline { if [[ -n "${containers}" ]]; then docker stop ${containers} fi - docker system prune -f --volumes || : - docker image prune -af || : + docker system prune -af --volumes || : ''' } } @@ -773,7 +760,7 @@ pipeline { // Take the image we just built and dump package versions for comparison stage('Update-packages') { when { - branch "master" + branch "development" environment name: 'CHANGE_ID', value: '' environment name: 'EXIT_STATUS', value: '' } @@ -796,14 +783,14 @@ pipeline { echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO} - git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master + git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f development cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/ cd ${TEMPDIR}/${LS_REPO}/ wait git add package_versions.txt git commit -m 'Bot Updating Package Versions' - git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER} echo "Package tag updated, stopping build process" else @@ -821,7 +808,7 @@ pipeline { // Exit the build if the package file was just updated stage('PACKAGE-exit') { when { - branch "master" + branch "development" environment name: 'CHANGE_ID', value: '' environment name: 'PACKAGE_UPDATED', value: 'true' environment name: 'EXIT_STATUS', value: '' @@ -835,7 +822,7 @@ pipeline { // Exit the build if this is just a package check and there are no changes to push stage('PACKAGECHECK-exit') { when { - branch "master" + branch "development" environment name: 'CHANGE_ID', value: '' environment name: 'PACKAGE_UPDATED', value: 'false' environment name: 'EXIT_STATUS', value: '' @@ -889,7 +876,7 @@ pipeline { -e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \ -e TAGS=\"${CI_TAGS}\" \ -e META_TAG=\"${META_TAG}\" \ - -e RELEASE_TAG=\"latest\" \ + -e RELEASE_TAG=\"development\" \ -e PORT=\"${CI_PORT}\" \ -e SSL=\"${CI_SSL}\" \ -e BASE=\"${DIST_IMAGE}\" \ @@ -926,7 +913,7 @@ pipeline { CACHEIMAGE=${i} fi done - docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:development -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} if [ -n "${SEMVER}" ]; then docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} fi @@ -953,15 +940,15 @@ pipeline { CACHEIMAGE=${i} fi done - docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} - docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-development -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} + docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-development -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} if [ -n "${SEMVER}" ]; then docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} fi done for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do - docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest + docker buildx imagetools create -t ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm64v8-development docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} @@ -976,7 +963,7 @@ pipeline { // If this is a public release tag it in the LS Github stage('Github-Tag-Push-Release') { when { - branch "master" + branch "development" expression { env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } @@ -988,17 +975,17 @@ pipeline { sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ -d '{"tag":"'${META_TAG}'",\ "object": "'${COMMIT_SHA}'",\ - "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\ + "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to development",\ "type": "commit",\ "tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' echo "Pushing New release for Tag" sh '''#! /bin/bash - curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json + curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases | jq '.[0] |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json echo '{"tag_name":"'${META_TAG}'",\ - "target_commitish": "master",\ + "target_commitish": "development",\ "name": "'${META_TAG}'",\ "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start - printf '","draft": false,"prerelease": false}' >> releasebody.json + printf '","draft": false,"prerelease": true}' >> releasebody.json paste -d'\\0' start releasebody.json > releasebody.json.done curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' } @@ -1006,14 +993,14 @@ pipeline { // Add protection to the release branch stage('Github-Release-Branch-Protection') { when { - branch "master" + branch "development" environment name: 'CHANGE_ID', value: '' environment name: 'EXIT_STATUS', value: '' } steps { - echo "Setting up protection for release branch master" + echo "Setting up protection for release branch development" sh '''#! /bin/bash - curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/master/protection \ + curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/development/protection \ -d $(jq -c . << EOF { "required_status_checks": null, @@ -1175,22 +1162,12 @@ EOF } cleanup { sh '''#! /bin/bash - echo "Pruning builder!!" - docker builder prune -f --builder container || : - containers=$(docker ps -q) + echo "Performing docker system prune!!" + containers=$(docker ps -aq) if [[ -n "${containers}" ]]; then - BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit') - for container in ${containers}; do - if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then - echo "skipping buildx container in docker stop" - else - echo "Stopping container ${container}" - docker stop ${container} - fi - done + docker stop ${containers} fi - docker system prune -f --volumes || : - docker image prune -af || : + docker system prune -af --volumes || : ''' cleanWs() } diff --git a/README.md b/README.md index 20e99f2..725783b 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ - + [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") -[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.") +[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") [![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") @@ -20,7 +20,7 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r Find us at: * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! -* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team. +* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team. * [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. @@ -36,18 +36,18 @@ Find us at: [![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/bazarr) [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/bazarr.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/bazarr) [![Docker Stars](https://img.shields.io/docker/stars/linuxserver/bazarr.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/bazarr) -[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-bazarr%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bazarr/job/master/) -[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fbazarr%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/bazarr/latest/index.html) +[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-bazarr%2Fjob%2Fdevelopment%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bazarr/job/development/) +[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fbazarr%2Fdevelopment%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/bazarr/development/index.html) -[Bazarr](https://www.bazarr.media/) is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you. +[Bazarr](https://github.com/morpheus65535/bazarr) is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you. -[![bazarr](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bazarr.png)](https://www.bazarr.media/) +[![bazarr](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bazarr.png)](https://github.com/morpheus65535/bazarr) ## Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). -Simply pulling `lscr.io/linuxserver/bazarr:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. +Simply pulling `lscr.io/linuxserver/bazarr:development` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: @@ -57,15 +57,6 @@ The architectures supported by this image are: | arm64 | ✅ | arm64v8-\ | | armhf | ❌ | | -## Version Tags - -This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. - -| Tag | Available | Description | -| :----: | :----: |--- | -| latest | ✅ | Stable releases from Bazarr | -| development | ✅ | Pre-releases from Bazarr | - ## Application Setup - Once running the URL will be `http://:6767`. @@ -92,7 +83,7 @@ To help you get started creating a container from this image you can either use --- services: bazarr: - image: lscr.io/linuxserver/bazarr:latest + image: lscr.io/linuxserver/bazarr:development container_name: bazarr environment: - PUID=1000 @@ -100,8 +91,6 @@ services: - TZ=Etc/UTC volumes: - /path/to/bazarr/config:/config - - /path/to/movies:/movies #optional - - /path/to/tv:/tv #optional ports: - 6767:6767 restart: unless-stopped @@ -117,10 +106,8 @@ docker run -d \ -e TZ=Etc/UTC \ -p 6767:6767 \ -v /path/to/bazarr/config:/config \ - -v /path/to/movies:/movies `#optional` \ - -v /path/to/tv:/tv `#optional` \ --restart unless-stopped \ - lscr.io/linuxserver/bazarr:latest + lscr.io/linuxserver/bazarr:development ``` ## Parameters @@ -134,8 +121,6 @@ Containers are configured using parameters passed at runtime (such as those abov | `-e PGID=1000` | for GroupID - see below for explanation | | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | | `-v /config` | Persistent config files | -| `-v /movies` | Location of your movies | -| `-v /tv` | Location of your TV Shows | | `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). | | `--user=1000:1000` | Run container with a non-root user. Please [read the docs](https://docs.linuxserver.io/misc/non-root/). | @@ -203,7 +188,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to * Image version number: ```bash - docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/bazarr:latest + docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/bazarr:development ``` ## Updating Info @@ -251,7 +236,7 @@ Below are the instructions for updating containers: * Update the image: ```bash - docker pull lscr.io/linuxserver/bazarr:latest + docker pull lscr.io/linuxserver/bazarr:development ``` * Stop the running container: @@ -288,7 +273,7 @@ cd docker-bazarr docker build \ --no-cache \ --pull \ - -t lscr.io/linuxserver/bazarr:latest . + -t lscr.io/linuxserver/bazarr:development . ``` The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static` @@ -302,32 +287,31 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions * **24.12.24:** - Rebase to Alpine 3.21. -* **24.06.24:** - Rebase to Alpine 3.20. +* **06.06.24:** - Rebase to Alpine 3.20. * **23.12.23:** - Rebase to Alpine 3.19. * **19.09.23:** - Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar). -* **11.08.23:** - Rebase to Alpine 3.18. * **10.08.23:** - Bump unrar to 6.2.10. +* **11.07.23:** - Rebase to Alpine 3.18 * **04.07.23:** - Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf) -* **26.02.23:** - Add dependencies for postgres support. Add mediainfo. -* **23.01.23:** - Rebase master branch to Alpine 3.17. -* **11.10.22:** - Rebase master branch to Alpine 3.16, migrate to s6v3. -* **15.15.21:** - Temp fix for lxml, compile from scratch to avoid broken official wheel. +* **17.02.23:** - Add dependencies for postgres support. Add mediainfo. +* **23.01.23:** - Rebase development branch to Alpine 3.17. +* **11.10.22:** - Rebase development branch to Alpine 3.16, migrate to s6v3. +* **15.11.21:** - Temp fix for lxml on amd64, compile it instead of using official wheel that seems to be broken. * **25.10.21:** - Rebase to alpine 3.14. Fix numpy wheel. * **22.10.21:** - Added openblas package to prevent numpy error. * **16.05.21:** - Use wheel index. * **19.04.21:** - Install from release zip. -* **07.04.21:** - Move app to /app/bazarr/bin, add `package_info`. +* **07.04.21:** - Move app to /app/bazarr/bin. +* **13.03.21:** - Build from Github pre-releases. * **23.01.21:** - Rebasing to alpine 3.13. * **23.01.21:** - Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information. -* **01.06.20:** - Rebasing to alpine 3.12. -* **13.05.20:** - Add donation links for Bazarr to Github sponsors button and container log. +* **19.12.19:** - Rebasing to alpine 3.12. +* **13.05.20:** - Add donation links for Bazarr to container log. * **08.04.20:** - Removed /movies and /tv volumes from Dockerfiles. -* **28.12.19:** - Upgrade to Python 3. * **19.12.19:** - Rebasing to alpine 3.11. * **28.06.19:** - Rebasing to alpine 3.10. +* **17.06.19:** - Swap to install deps using maintainers requirements.txt, add ffmpeg for ffprobe. * **13.06.19:** - Add env variable for setting umask. -* **12.06.19:** - Swap to install deps using maintainers requirements.txt, add ffmpeg for ffprobe. -* **17.04.19:** - Add default UTC timezone if user does not set it. * **23.03.19:** - Switching to new Base images, shift to arm32v7 tag. * **22.02.19:** - Rebasing to alpine 3.9. * **11.09.18:** - Initial release. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 194dc39..fb1ab59 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -2,12 +2,12 @@ # jenkins variables project_name: docker-bazarr -external_type: github_stable -release_type: stable -release_tag: latest -ls_branch: master +external_type: github_devel +release_type: prerelease +release_tag: development +ls_branch: development repo_vars: - - EXT_GIT_BRANCH = 'master' + - EXT_GIT_BRANCH = 'development' - EXT_USER = 'morpheus65535' - EXT_REPO = 'bazarr' - BUILD_VERSION_ARG = 'BAZARR_VERSION' diff --git a/package_versions.txt b/package_versions.txt index f617340..86fa018 100644 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,306 +1,308 @@ -NAME VERSION TYPE -acl-libs 2.3.2-r1 apk -alembic 1.13.1 python -alpine-baselayout 3.6.8-r1 apk -alpine-baselayout-data 3.6.8-r1 apk -alpine-keys 2.5-r0 apk -alpine-release 3.21.3-r0 apk -alsa-lib 1.2.12-r0 apk -aniso8601 9.0.1 python -aom-libs 3.11.0-r0 apk -apk-tools 2.14.6-r3 apk -appdirs 1.4.4 python -apprise 1.7.6 python -apscheduler 3.10.4 python -attrs 23.2.0 python -auditok 0.1.5 python -autocommand 2.2.2 python -babelfish 0.6.0 python -backports-functools-lru-cache 2.0.0 python -backports-tarfile 1.2.0 python -backports-zoneinfo 0.2.1 python -bash 5.2.37-r0 apk -beautifulsoup4 4.12.3 python -bidict 0.23.1 python -blinker 1.7.0 python -brotli-libs 1.1.0-r2 apk -busybox 1.37.0-r12 apk -busybox-binsh 1.37.0-r12 apk -c-ares 1.34.5-r0 apk -ca-certificates 20241121-r1 apk -ca-certificates-bundle 20241121-r1 apk -catatonit 0.2.0-r0 apk -certifi 2024.2.2 python -chardet 5.2.0 python -charset-normalizer 3.3.2 python -cjson 1.7.18-r0 apk -click 8.1.7 python -cloudscraper 1.2.58 python -colorama 0.4.6 python -commonmark 0.9.1 python -coreutils 9.5-r2 apk -coreutils-env 9.5-r2 apk -coreutils-fmt 9.5-r2 apk -coreutils-sha512sum 9.5-r2 apk -curl 8.12.1-r1 apk -dbus-libs 1.14.10-r4 apk -decorator 5.1.1 python -deep-translator 1.11.4 python -dnspython 2.6.1 python -dogpile-cache 1.3.2 python -dynaconf 3.2.4 python -enzyme 0.4.1 python -fcache 0.5.2 python -fese 0.3.0 python -ffmpeg 6.1.2-r1 apk -ffmpeg-libavcodec 6.1.2-r1 apk -ffmpeg-libavdevice 6.1.2-r1 apk -ffmpeg-libavfilter 6.1.2-r1 apk -ffmpeg-libavformat 6.1.2-r1 apk -ffmpeg-libavutil 6.1.2-r1 apk -ffmpeg-libpostproc 6.1.2-r1 apk -ffmpeg-libswresample 6.1.2-r1 apk -ffmpeg-libswscale 6.1.2-r1 apk -ffmpeg-python 0.2.0 python -ffsubsync 0.4.25 python -findutils 4.10.0-r0 apk -flask 3.0.2 python -flask-cors 4.0.0 python -flask-migrate 4.0.5 python -flask-restx 1.3.0 python -flask-socketio 5.3.6 python -flask-sqlalchemy 3.1.1 python -fontconfig 2.15.0-r1 apk -freetype 2.13.3-r0 apk -fribidi 1.0.16-r0 apk -ftfy 6.1.3 python -future 1.0.0 python -ga4mp 2.0.4 python -gdbm 1.24-r0 apk -giflib 5.2.2-r1 apk -glib 2.82.5-r0 apk -glslang-libs 1.3.296.0-r0 apk -graphite2 1.3.14-r6 apk -guess-language-spirit 0.5.3 python -guessit 3.8.0 python -h11 0.14.0 python -harfbuzz 9.0.0-r1 apk -html5lib 1.1 python -hwdata-pci 0.393-r0 apk -idna 3.6 python -imath 3.1.12-r0 apk -importlib-metadata 7.0.1 python -importlib-metadata 8.0.0 python -importlib-resources 6.1.2 python -inflect 7.0.0 python -inflect 7.3.1 python -itsdangerous 2.1.2 python -jaraco-collections 5.1.0 python -jaraco-context 5.3.0 python -jaraco-functools 4.0.1 python -jaraco-text 3.12.1 python -jinja2 3.1.3 python -jq 1.7.1-r0 apk -js2py 0.74 python -json-tricks 3.17.3 python -jsonschema 4.17.3 python -knowit 0.5.3 python -lame-libs 3.100-r5 apk -lcms2 2.16-r0 apk -libSvtAv1Enc 2.2.1-r0 apk -libass 0.17.3-r0 apk -libasyncns 0.8-r4 apk -libattr 2.5.2-r2 apk -libblkid 2.40.4-r1 apk -libbluray 1.3.4-r1 apk -libbsd 0.12.2-r0 apk -libbz2 1.0.8-r6 apk -libcrypto3 3.3.3-r0 apk -libcurl 8.12.1-r1 apk -libdav1d 1.5.0-r0 apk -libdeflate 1.22-r0 apk -libdovi 3.3.1-r0 apk -libdrm 2.4.123-r1 apk -libeconf 0.6.3-r0 apk -libexpat 2.7.0-r0 apk -libffi 3.4.7-r0 apk -libflac 1.4.3-r1 apk -libgcc 14.2.0-r4 apk -libgcrypt 1.10.3-r1 apk -libgomp 14.2.0-r4 apk -libgpg-error 1.51-r0 apk -libhwy 1.0.7-r0 apk -libidn2 2.3.7-r0 apk -libintl 0.22.5-r0 apk -libjpeg-turbo 3.0.4-r0 apk -libjxl 0.10.4-r0 apk -libltdl 2.4.7-r3 apk -libmd 1.1.0-r0 apk -libmediainfo 24.11-r0 apk -libmount 2.40.4-r1 apk -libncursesw 6.5_p20241006-r3 apk -libogg 1.3.5-r5 apk -libopenmpt 0.7.12-r0 apk -libpanelw 6.5_p20241006-r3 apk -libpciaccess 0.18.1-r0 apk -libplacebo 6.338.2-r3 apk -libpng 1.6.47-r0 apk -libproc2 4.0.4-r2 apk -libpsl 0.21.5-r3 apk -libpulse 17.0-r4 apk -librist 0.2.10-r1 apk -libsharpyuv 1.4.0-r0 apk -libsndfile 1.2.2-r2 apk -libsodium 1.0.20-r0 apk -libsrt 1.5.3-r0 apk -libssh 0.11.1-r0 apk -libssl3 3.3.3-r0 apk -libstdc++ 14.2.0-r4 apk -libtheora 1.1.1-r18 apk -libunibreak 6.1-r0 apk -libunistring 1.2-r0 apk -libva 2.22.0-r1 apk -libvdpau 1.5-r4 apk -libvorbis 1.3.7-r2 apk -libvpx 1.15.0-r0 apk -libwebp 1.4.0-r0 apk -libwebpmux 1.4.0-r0 apk -libx11 1.8.10-r0 apk -libxau 1.0.11-r4 apk -libxcb 1.16.1-r0 apk -libxdmcp 1.1.5-r1 apk -libxext 1.3.6-r2 apk -libxfixes 6.0.1-r4 apk -libxml2 2.13.4-r5 apk -libxslt 1.1.42-r2 apk -libzen 0.4.41-r0 apk -libzmq 4.3.5-r2 apk -lilv-libs 0.24.24-r1 apk -linux-pam 1.6.1-r1 apk -lxml 4.9.4 python -mako 1.3.2 python -markdown 3.5.2 python -markupsafe 2.1.5 python -mbedtls 3.6.3-r0 apk -mediainfo 24.11-r0 apk -more-itertools 10.3.0 python -mpdecimal 4.0.0-r0 apk -mpg123-libs 1.32.9-r0 apk -msgpack 1.0.7 python -musl 1.2.5-r9 apk -musl-utils 1.2.5-r9 apk -my-test-package 1.0 python -ncurses-terminfo-base 6.5_p20241006-r3 apk -netcat-openbsd 1.226.1.1-r0 apk -nghttp2-libs 1.64.0-r0 apk -numactl 2.0.18-r0 apk -numpy 2.2.5 python -oauthlib 3.2.2 python -onevpl-libs 2023.3.1-r2 apk -oniguruma 6.9.9-r0 apk -openexr-libiex 3.3.2-r0 apk -openexr-libilmthread 3.3.2-r0 apk -openexr-libopenexr 3.3.2-r0 apk -openexr-libopenexrcore 3.3.2-r0 apk -opus 1.5.2-r1 apk -orc 0.4.40-r1 apk -packaging 24.2 python -pcre2 10.43-r0 apk -pillow 11.2.1 python -pip 25.0.1 python -platformdirs 4.2.0 python -platformdirs 4.2.2 python -procps-ng 4.0.4-r2 apk -psycopg2-binary 2.9.10 python -pyc 3.12.10-r0 apk -pycountry 23.12.11 python -pydantic 1.10.14 python -pygments 2.17.2 python -pyjsparser 2.7.1 python -pymediainfo 6.1.0 python -pyparsing 3.1.1 python -pyrsistent 0.20.0 python -pysocks 1.7.1 python -pysrt 1.1.2 python -pysubs2 1.7.2 python -python-anticaptcha 1.0.0 python -python-dateutil 2.8.2 python -python-engineio 4.9.0 python -python-socketio 5.11.1 python -python3 3.12.10-r0 apk -python3-pyc 3.12.10-r0 apk -python3-pycache-pyc0 3.12.10-r0 apk -pytz 2024.1 python -pytz-deprecation-shim 0.1.0.post0 python -pyyaml 6.0.1 python -rarfile 4.1 python -rav1e-libs 0.7.1-r0 apk -readline 8.2.13-r0 apk -rebulk 3.2.0 python -referencing 0.23.0 python -requests 2.31.0 python -requests-oauthlib 1.3.1 python -requests-toolbelt 1.0.0 python -retry 0.9.2 python -rich 13.7.0 python -scanelf 1.3.8-r1 apk -sdl2 2.30.9-r0 apk -semver 3.0.2 python -serd-libs 0.32.2-r0 apk -setuptools 79.0.0 python -shaderc 2024.0-r2 apk -shadow 4.16.0-r1 apk -signalrcore 0.9.5 python -simple-websocket 1.0.0 python -six 1.16.0 python -skalibs-libs 2.14.3.0-r0 apk -sord-libs 0.16.16-r0 apk -soupsieve 2.3.2.post1 python -soxr 0.1.3-r7 apk -speexdsp 1.2.1-r2 apk -spirv-tools 1.3.296.0-r0 apk -sqlalchemy 2.0.27 python -sqlite-libs 3.48.0-r1 apk -sratom 0.6.16-r0 apk -srt 3.5.3 python -ssl_client 1.37.0-r12 apk -stevedore 5.2.0 python -tdb-libs 1.4.12-r0 apk -textdistance 4.6.2 python -tinyxml2 10.0.0-r0 apk -tld 0.13 python -tomli 2.0.1 python -tqdm 4.66.2 python -trakit 0.2.1 python -typeguard 4.3.0 python -typing-extensions 4.10.0 python -typing-extensions 4.12.2 python -tzdata 2024.1 python -tzdata 2025b-r0 apk -tzlocal 5.2 python -unidecode 1.3.8 python -urllib3 2.2.1 python -utmps-libs 0.1.2.3-r2 apk -v4l-utils-libs 1.28.1-r1 apk -vidstab 1.1.1-r0 apk -vulkan-loader 1.3.296.0-r0 apk -waitress 3.0.0 python -wayland-libs-client 1.23.1-r0 apk -wcwidth 0.2.13 python -webencodings 0.5.1 python -webrtcvad-wheels 2.0.14 python -websocket-client 1.7.0 python -werkzeug 3.0.1 python -wheel 0.45.1 python (+1 duplicate) -whichcraft 0.6.1 python -wsproto 1.2.0 python -x264-libs 0.164.3108-r0 apk -x265-libs 3.6-r0 apk -xvidcore 1.3.7-r2 apk -xz-libs 5.6.3-r1 apk -zimg 3.0.5-r2 apk -zipp 3.17.0 python -zipp 3.19.2 python -zix-libs 0.4.2-r0 apk -zlib 1.3.1-r2 apk -zstd-libs 1.5.6-r2 apk +NAME VERSION TYPE +Simple Launcher 1.1.0.14 dotnet (+5 duplicates) +acl-libs 2.3.2-r1 apk +alembic 1.13.1 python +alpine-baselayout 3.6.8-r1 apk +alpine-baselayout-data 3.6.8-r1 apk +alpine-keys 2.5-r0 apk +alpine-release 3.21.0-r0 apk +alsa-lib 1.2.12-r0 apk +aniso8601 9.0.1 python +aom-libs 3.11.0-r0 apk +apk-tools 2.14.6-r2 apk +appdirs 1.4.4 python +apprise 1.7.6 python +apscheduler 3.10.4 python +attrs 23.2.0 python +auditok 0.1.5 python +autocommand 2.2.2 python +babelfish 0.6.0 python +backports-functools-lru-cache 2.0.0 python +backports-tarfile 1.2.0 python +backports-zoneinfo 0.2.1 python +bash 5.2.37-r0 apk +beautifulsoup4 4.12.3 python +bidict 0.23.1 python +blinker 1.7.0 python +brotli-libs 1.1.0-r2 apk +busybox 1.37.0-r9 apk +busybox-binsh 1.37.0-r9 apk +c-ares 1.34.3-r0 apk +ca-certificates 20241121-r0 apk +ca-certificates-bundle 20241121-r0 apk +catatonit 0.2.0-r0 apk +certifi 2024.2.2 python +chardet 5.2.0 python +charset-normalizer 3.3.2 python +cjson 1.7.18-r0 apk +click 8.1.7 python +cloudscraper 1.2.58 python +colorama 0.4.6 python +commonmark 0.9.1 python +coreutils 9.5-r1 apk +coreutils-env 9.5-r1 apk +coreutils-fmt 9.5-r1 apk +coreutils-sha512sum 9.5-r1 apk +curl 8.11.1-r0 apk +dbus-libs 1.14.10-r4 apk +decorator 5.1.1 python +deep-translator 1.11.4 python +dnspython 2.6.1 python +dogpile-cache 1.3.2 python +dynaconf 3.2.4 python +enzyme 0.4.1 python +fcache 0.5.2 python +fese 0.3.0 python +ffmpeg 6.1.2-r1 apk +ffmpeg-libavcodec 6.1.2-r1 apk +ffmpeg-libavdevice 6.1.2-r1 apk +ffmpeg-libavfilter 6.1.2-r1 apk +ffmpeg-libavformat 6.1.2-r1 apk +ffmpeg-libavutil 6.1.2-r1 apk +ffmpeg-libpostproc 6.1.2-r1 apk +ffmpeg-libswresample 6.1.2-r1 apk +ffmpeg-libswscale 6.1.2-r1 apk +ffmpeg-python 0.2.0 python +ffsubsync 0.4.25 python +findutils 4.10.0-r0 apk +flask 3.0.2 python +flask-cors 4.0.0 python +flask-migrate 4.0.5 python +flask-restx 1.3.0 python +flask-socketio 5.3.6 python +flask-sqlalchemy 3.1.1 python +fontconfig 2.15.0-r1 apk +freetype 2.13.3-r0 apk +fribidi 1.0.16-r0 apk +ftfy 6.1.3 python +future 1.0.0 python +ga4mp 2.0.4 python +gdbm 1.24-r0 apk +giflib 5.2.2-r0 apk +glib 2.82.4-r0 apk +glslang-libs 1.3.296.0-r0 apk +graphite2 1.3.14-r6 apk +guess-language-spirit 0.5.3 python +guessit 3.8.0 python +h11 0.14.0 python +harfbuzz 9.0.0-r1 apk +html5lib 1.1 python +hwdata-pci 0.390-r0 apk +idna 3.6 python +imath 3.1.12-r0 apk +importlib-metadata 7.0.1 python +importlib-metadata 8.0.0 python +importlib-resources 6.1.2 python +inflect 7.0.0 python +inflect 7.3.1 python +itsdangerous 2.1.2 python +jaraco-collections 5.1.0 python +jaraco-context 5.3.0 python +jaraco-functools 4.0.1 python +jaraco-text 3.12.1 python +jinja2 3.1.3 python +jq 1.7.1-r0 apk +js2py 0.74 python +json-tricks 3.17.3 python +jsonschema 4.17.3 python +knowit 0.5.3 python +lame-libs 3.100-r5 apk +lcms2 2.16-r0 apk +libSvtAv1Enc 2.2.1-r0 apk +libass 0.17.3-r0 apk +libasyncns 0.8-r4 apk +libattr 2.5.2-r2 apk +libblkid 2.40.2-r4 apk +libbluray 1.3.4-r1 apk +libbsd 0.12.2-r0 apk +libbz2 1.0.8-r6 apk +libcrypto3 3.3.2-r4 apk +libcurl 8.11.1-r0 apk +libdav1d 1.5.0-r0 apk +libdeflate 1.22-r0 apk +libdovi 3.3.1-r0 apk +libdrm 2.4.123-r1 apk +libeconf 0.6.3-r0 apk +libexpat 2.6.4-r0 apk +libffi 3.4.6-r0 apk +libflac 1.4.3-r1 apk +libgcc 14.2.0-r4 apk +libgcrypt 1.10.3-r1 apk +libgomp 14.2.0-r4 apk +libgpg-error 1.51-r0 apk +libhwy 1.0.7-r0 apk +libidn2 2.3.7-r0 apk +libintl 0.22.5-r0 apk +libjpeg-turbo 3.0.4-r0 apk +libjxl 0.10.3-r0 apk +libltdl 2.4.7-r3 apk +libmd 1.1.0-r0 apk +libmediainfo 24.11-r0 apk +libmount 2.40.2-r4 apk +libncursesw 6.5_p20241006-r3 apk +libogg 1.3.5-r5 apk +libopenmpt 0.7.12-r0 apk +libpanelw 6.5_p20241006-r3 apk +libpciaccess 0.18.1-r0 apk +libplacebo 6.338.2-r3 apk +libpng 1.6.44-r0 apk +libproc2 4.0.4-r2 apk +libpsl 0.21.5-r3 apk +libpulse 17.0-r4 apk +librist 0.2.10-r1 apk +libsharpyuv 1.4.0-r0 apk +libsndfile 1.2.2-r2 apk +libsodium 1.0.20-r0 apk +libsrt 1.5.3-r0 apk +libssh 0.11.1-r0 apk +libssl3 3.3.2-r4 apk +libstdc++ 14.2.0-r4 apk +libtheora 1.1.1-r18 apk +libunibreak 6.1-r0 apk +libunistring 1.2-r0 apk +libva 2.22.0-r1 apk +libvdpau 1.5-r4 apk +libvorbis 1.3.7-r2 apk +libvpx 1.15.0-r0 apk +libwebp 1.4.0-r0 apk +libwebpmux 1.4.0-r0 apk +libx11 1.8.10-r0 apk +libxau 1.0.11-r4 apk +libxcb 1.16.1-r0 apk +libxdmcp 1.1.5-r1 apk +libxext 1.3.6-r2 apk +libxfixes 6.0.1-r4 apk +libxml2 2.13.4-r3 apk +libxslt 1.1.42-r1 apk +libzen 0.4.41-r0 apk +libzmq 4.3.5-r2 apk +lilv-libs 0.24.24-r1 apk +linux-pam 1.6.1-r1 apk +lxml 4.9.4 python +mako 1.3.2 python +markdown 3.5.2 python +markupsafe 2.1.5 python +mbedtls 3.6.2-r0 apk +mediainfo 24.11-r0 apk +more-itertools 10.3.0 python +mpdecimal 4.0.0-r0 apk +mpg123-libs 1.32.9-r0 apk +msgpack 1.0.7 python +musl 1.2.5-r8 apk +musl-utils 1.2.5-r8 apk +my-test-package 1.0 python +ncurses-terminfo-base 6.5_p20241006-r3 apk +netcat-openbsd 1.226.1.1-r0 apk +nghttp2-libs 1.64.0-r0 apk +numactl 2.0.18-r0 apk +numpy 2.2.1 python +oauthlib 3.2.2 python +onevpl-libs 2023.3.1-r2 apk +oniguruma 6.9.9-r0 apk +openexr-libiex 3.3.2-r0 apk +openexr-libilmthread 3.3.2-r0 apk +openexr-libopenexr 3.3.2-r0 apk +openexr-libopenexrcore 3.3.2-r0 apk +opus 1.5.2-r1 apk +orc 0.4.40-r1 apk +packaging 24.2 python +pcre2 10.43-r0 apk +pillow 11.1.0 python +pip 24.3.1 python +platformdirs 4.2.0 python +platformdirs 4.2.2 python +procps-ng 4.0.4-r2 apk +psycopg2-binary 2.9.10 python +pyc 3.12.8-r1 apk +pycountry 23.12.11 python +pydantic 1.10.14 python +pygments 2.17.2 python +pyjsparser 2.7.1 python +pymediainfo 6.1.0 python +pyparsing 3.1.1 python +pyrsistent 0.20.0 python +pysocks 1.7.1 python +pysrt 1.1.2 python +pysubs2 1.7.2 python +python-anticaptcha 1.0.0 python +python-dateutil 2.8.2 python +python-engineio 4.9.0 python +python-socketio 5.11.1 python +python3 3.12.8-r1 apk +python3-pyc 3.12.8-r1 apk +python3-pycache-pyc0 3.12.8-r1 apk +pytz 2024.1 python +pytz-deprecation-shim 0.1.0.post0 python +pyyaml 6.0.1 python +rarfile 4.1 python +rav1e-libs 0.7.1-r0 apk +readline 8.2.13-r0 apk +rebulk 3.2.0 python +referencing 0.23.0 python +requests 2.31.0 python +requests-oauthlib 1.3.1 python +requests-toolbelt 1.0.0 python +retry 0.9.2 python +rich 13.7.0 python +scanelf 1.3.8-r1 apk +sdl2 2.30.9-r0 apk +semver 3.0.2 python +serd-libs 0.32.2-r0 apk +setuptools 75.7.0 python +shaderc 2024.0-r2 apk +shadow 4.16.0-r1 apk +signalrcore 0.9.5 python +simple-websocket 1.0.0 python +six 1.16.0 python +skalibs-libs 2.14.3.0-r0 apk +sord-libs 0.16.16-r0 apk +soupsieve 2.3.2.post1 python +soxr 0.1.3-r7 apk +speexdsp 1.2.1-r2 apk +spirv-tools 1.3.290.0-r0 apk +sqlalchemy 2.0.27 python +sqlite-libs 3.47.1-r0 apk +sratom 0.6.16-r0 apk +srt 3.5.3 python +ssl_client 1.37.0-r9 apk +stevedore 5.2.0 python +tdb-libs 1.4.12-r0 apk +textdistance 4.6.2 python +tinyxml2 10.0.0-r0 apk +tld 0.13 python +tomli 2.0.1 python +tqdm 4.66.2 python +trakit 0.2.1 python +typeguard 4.3.0 python +typing-extensions 4.10.0 python +typing-extensions 4.12.2 python +tzdata 2024.1 python +tzdata 2024b-r1 apk +tzlocal 5.2 python +unidecode 1.3.8 python +urllib3 2.2.1 python +utmps-libs 0.1.2.3-r2 apk +v4l-utils-libs 1.28.1-r1 apk +vidstab 1.1.1-r0 apk +vulkan-loader 1.3.296.0-r0 apk +waitress 3.0.0 python +wayland-libs-client 1.23.1-r0 apk +wcwidth 0.2.13 python +webencodings 0.5.1 python +webrtcvad-wheels 2.0.14 python +websocket-client 1.7.0 python +werkzeug 3.0.1 python +wheel 0.43.0 python +wheel 0.45.1 python +whichcraft 0.6.1 python +wsproto 1.2.0 python +x264-libs 0.164.3108-r0 apk +x265-libs 3.6-r0 apk +xvidcore 1.3.7-r2 apk +xz-libs 5.6.3-r0 apk +zimg 3.0.5-r2 apk +zipp 3.17.0 python +zipp 3.19.2 python +zix-libs 0.4.2-r0 apk +zlib 1.3.1-r2 apk +zstd-libs 1.5.6-r2 apk diff --git a/readme-vars.yml b/readme-vars.yml index 2474560..a1a5930 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -2,19 +2,14 @@ # project information project_name: bazarr -project_url: "https://www.bazarr.media/" +project_url: "https://github.com/morpheus65535/bazarr" project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bazarr.png" project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you." project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}" -project_categories: "Media Management" # supported architectures available_architectures: - {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} -development_versions: true -development_versions_items: - - {tag: "latest", desc: "Stable releases from Bazarr"} - - {tag: "development", desc: "Pre-releases from Bazarr"} # container parameters param_container_name: "{{ project_name }}" param_usage_include_vols: true @@ -23,10 +18,6 @@ param_volumes: param_usage_include_ports: true param_ports: - {external_port: "6767", internal_port: "6767", port_desc: "Allows HTTP access to the internal webserver."} -opt_param_usage_include_vols: true -opt_param_volumes: - - {vol_path: "/movies", vol_host_path: "/path/to/movies", desc: "Location of your movies"} - - {vol_path: "/tv", vol_host_path: "/path/to/tv", desc: "Location of your TV Shows"} readonly_supported: true nonroot_supported: true # application setup block @@ -36,7 +27,7 @@ app_setup_block: | - You must complete all the setup parameters in the webui before you can save the config. # init diagram init_diagram: | - "bazarr:latest": { + "bazarr:development": { docker-mods base { fix-attr +\nlegacy cont-init @@ -72,36 +63,35 @@ init_diagram: | Base Images: { "baseimage-alpine:3.21" } - "bazarr:latest" <- Base Images + "bazarr:development" <- Base Images # changelog changelogs: - {date: "24.12.24:", desc: "Rebase to Alpine 3.21."} - - {date: "24.06.24:", desc: "Rebase to Alpine 3.20."} + - {date: "06.06.24:", desc: "Rebase to Alpine 3.20."} - {date: "23.12.23:", desc: "Rebase to Alpine 3.19."} - {date: "19.09.23:", desc: "Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar)."} - - {date: "11.08.23:", desc: "Rebase to Alpine 3.18."} - {date: "10.08.23:", desc: "Bump unrar to 6.2.10."} + - {date: "11.07.23:", desc: "Rebase to Alpine 3.18"} - {date: "04.07.23:", desc: "Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf)"} - - {date: "26.02.23:", desc: "Add dependencies for postgres support. Add mediainfo."} - - {date: "23.01.23:", desc: "Rebase master branch to Alpine 3.17."} - - {date: "11.10.22:", desc: "Rebase master branch to Alpine 3.16, migrate to s6v3."} - - {date: "15.15.21:", desc: "Temp fix for lxml, compile from scratch to avoid broken official wheel."} + - {date: "17.02.23:", desc: "Add dependencies for postgres support. Add mediainfo."} + - {date: "23.01.23:", desc: "Rebase development branch to Alpine 3.17."} + - {date: "11.10.22:", desc: "Rebase development branch to Alpine 3.16, migrate to s6v3."} + - {date: "15.11.21:", desc: "Temp fix for lxml on amd64, compile it instead of using official wheel that seems to be broken."} - {date: "25.10.21:", desc: "Rebase to alpine 3.14. Fix numpy wheel."} - {date: "22.10.21:", desc: "Added openblas package to prevent numpy error."} - {date: "16.05.21:", desc: "Use wheel index."} - {date: "19.04.21:", desc: "Install from release zip."} - - {date: "07.04.21:", desc: "Move app to /app/bazarr/bin, add `package_info`."} + - {date: "07.04.21:", desc: "Move app to /app/bazarr/bin."} + - {date: "13.03.21:", desc: "Build from Github pre-releases."} - {date: "23.01.21:", desc: "Rebasing to alpine 3.13."} - {date: "23.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information."} - - {date: "01.06.20:", desc: "Rebasing to alpine 3.12."} - - {date: "13.05.20:", desc: "Add donation links for Bazarr to Github sponsors button and container log."} + - {date: "19.12.19:", desc: "Rebasing to alpine 3.12."} + - {date: "13.05.20:", desc: "Add donation links for Bazarr to container log."} - {date: "08.04.20:", desc: "Removed /movies and /tv volumes from Dockerfiles."} - - {date: "28.12.19:", desc: "Upgrade to Python 3."} - {date: "19.12.19:", desc: "Rebasing to alpine 3.11."} - {date: "28.06.19:", desc: "Rebasing to alpine 3.10."} + - {date: "17.06.19:", desc: "Swap to install deps using maintainers requirements.txt, add ffmpeg for ffprobe."} - {date: "13.06.19:", desc: "Add env variable for setting umask."} - - {date: "12.06.19:", desc: "Swap to install deps using maintainers requirements.txt, add ffmpeg for ffprobe."} - - {date: "17.04.19:", desc: "Add default UTC timezone if user does not set it."} - {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."} - {date: "22.02.19:", desc: "Rebasing to alpine 3.9."} - {date: "11.09.18:", desc: "Initial release."}