Compare commits

...
Author SHA1 Message Date
LinuxServer-CI 951b2d798c Bot Updating Package Versions 2023-07-02 09:41:43 +00:00
LinuxServer-CI 6e70758d30 Bot Updating Templated Files 2023-07-02 09:39:07 +00:00
LinuxServer-CI 1f64e3c9bb Bot Updating Package Versions 2023-06-18 09:38:37 +00:00
LinuxServer-CI 6e3ae95972 Bot Updating Package Versions 2023-06-15 20:52:59 +00:00
LinuxServer-CI 17829c9aa0 Bot Updating Package Versions 2023-06-11 20:10:06 +00:00
AdamandGitHub d4f629302c Merge pull request #209 from linuxserver/nightly-3.18 2023-06-11 21:07:32 +01:00
TheSpad 3474502db2 Rebase to 3.18 (nightly) 2023-06-06 15:07:57 +01:00
LinuxServer-CI 974910a4d3 Bot Updating Package Versions 2023-06-05 12:52:58 +00:00
LinuxServer-CI b6967238c6 Bot Updating Package Versions 2023-06-04 16:58:33 +00:00
LinuxServer-CI 8a3e1943af Bot Updating Package Versions 2023-05-28 14:11:44 +00:00
LinuxServer-CI 2da0567d88 Bot Updating Templated Files 2023-05-23 10:25:11 +00:00
LinuxServer-CI c31f706215 Bot Updating Package Versions 2023-05-21 16:58:10 +00:00
LinuxServer-CI 5015da2913 Bot Updating Package Versions 2023-05-19 15:49:06 +00:00
LinuxServer-CI 2195e74e1c Bot Updating Package Versions 2023-05-06 20:10:33 +00:00
LinuxServer-CI f5523f5c11 Bot Updating Package Versions 2023-05-03 06:45:08 +00:00
LinuxServer-CI 7bce6165a3 Bot Updating Package Versions 2023-04-29 15:13:45 -05:00
LinuxServer-CI d678cf05dc Bot Updating Templated Files 2023-04-28 22:50:52 -05:00
LinuxServer-CI 82e2148ff9 Bot Updating Templated Files 2023-04-28 22:49:02 -05:00
LinuxServer-CI f5f2abff4e Bot Updating Package Versions 2023-04-23 01:57:22 +00:00
LinuxServer-CI f2276d1873 Bot Updating Package Versions 2023-04-22 17:34:18 +00:00
LinuxServer-CI c4d8a38871 Bot Updating Package Versions 2023-04-15 19:00:08 +02:00
LinuxServer-CI e34d1b1208 Bot Updating Package Versions 2023-04-13 19:48:06 -05:00
LinuxServer-CI 9a535a3f6e Bot Updating Package Versions 2023-04-09 11:57:22 -05:00
LinuxServer-CI 69b8486827 Bot Updating Templated Files 2023-04-02 16:08:08 -05:00
LinuxServer-CI e0937f2a4d Bot Updating Templated Files 2023-04-02 23:06:33 +02:00
LinuxServer-CI 1fd35ffaf0 Bot Updating Templated Files 2023-04-02 23:05:00 +02:00
LinuxServer-CI adb8d83f95 Bot Updating Package Versions 2023-03-30 02:13:52 +02:00
LinuxServer-CI 040354aa48 Bot Updating Package Versions 2023-03-25 02:14:41 +01:00
LinuxServer-CI 94e83f5bfa Bot Updating Package Versions 2023-03-06 10:03:18 -06:00
LinuxServer-CI 977e02c24c Bot Updating Templated Files 2023-03-06 09:59:27 -06:00
LinuxServer-CI a25dd2470b Bot Updating Package Versions 2023-02-24 03:57:21 -06:00
AdamandGitHub 6aac67024b Merge pull request #198 from linuxserver/nightly-ping 2023-02-24 09:54:12 +00:00
TheSpad cd18356e72 Use ping endpoint for readiness check. 2023-02-23 15:51:23 +00:00
LinuxServer-CI 5b84f3afab Bot Updating Package Versions 2023-02-20 16:59:30 +01:00
LinuxServer-CI 9459df4644 Bot Updating Templated Files 2023-02-11 20:07:07 +01:00
LinuxServer-CI 38d2a5d5cf Bot Updating Templated Files 2023-02-11 20:05:48 +01:00
LinuxServer-CI c9b2984ec4 Bot Updating Package Versions 2023-01-21 12:12:34 -06:00
LinuxServer-CI 54011bff8f Bot Updating Package Versions 2023-01-16 09:58:59 -06:00
LinuxServer-CI dad405f880 Bot Updating Package Versions 2023-01-02 09:58:44 -06:00
LinuxServer-CI ea0d6ded9d Bot Updating Package Versions 2022-12-27 22:57:15 +01:00
LinuxServer-CI ef8a97bfc9 Bot Updating Package Versions 2022-12-21 19:08:37 +01:00
RoxedusandGitHub 316eac60a1 Merge pull request #191 from linuxserver/nightly-3.17 2022-12-21 19:05:33 +01:00
TheSpad a12ea5060a Rebase nightly to 3.17 2022-12-19 17:31:27 +00:00
LinuxServer-CI b7e01eccf1 Bot Updating Templated Files 2022-11-29 00:02:09 +01:00
LinuxServer-CI d8ab9ca13d Bot Updating Templated Files 2022-11-28 17:00:42 -06:00
LinuxServer-CI b6d04cdcf7 Bot Updating Templated Files 2022-11-28 16:59:12 -06:00
LinuxServer-CI e1dbb63eff Bot Updating Package Versions 2022-11-21 15:59:04 +00:00
LinuxServer-CI f932d9be25 Bot Updating Package Versions 2022-11-13 03:52:39 +01:00
LinuxServer-CI bd3a32947a Bot Updating Templated Files 2022-11-13 03:49:21 +01:00
LinuxServer-CI 5dc60f2726 Bot Updating Package Versions 2022-11-04 21:51:53 -05:00
LinuxServer-CI 855cd7abb9 Bot Updating Package Versions 2022-10-31 11:00:16 -05:00
LinuxServer-CI 5ce691335f Bot Updating Package Versions 2022-10-28 23:51:19 -05:00
LinuxServer-CI ca579eaa29 Bot Updating Templated Files 2022-10-28 23:48:11 -05:00
AdamandGitHub 6a31d16955 Merge pull request #188 from linuxserver/s6v3-nightly 2022-10-29 05:46:44 +01:00
TheSpad bfdccec4c7 Update CI path 2022-10-27 20:30:16 +01:00
TheSpad 568a47e192 Rebase nightly to 3.16, migrate to s6v3 2022-10-27 19:42:52 +01:00
LinuxServer-CI 350553eec6 Bot Updating Templated Files 2022-09-17 22:40:05 -05:00
LinuxServer-CI d118562a6e Bot Updating Package Versions 2022-09-04 13:00:47 -05:00
LinuxServer-CI 5b593a68c4 Bot Updating Package Versions 2022-08-27 02:00:19 -05:00
LinuxServer-CI 805a7fb2be Bot Updating Package Versions 2022-08-09 21:31:45 -05:00
LinuxServer-CI 79225e2192 Bot Updating Package Versions 2022-08-08 06:24:27 +02:00
LinuxServer-CI 1710c00de5 Bot Updating Package Versions 2022-08-01 18:00:33 +02:00
LinuxServer-CI f2f676531a Bot Updating Package Versions 2022-07-21 23:00:51 +02:00
36 changed files with 680 additions and 396 deletions
+1 -1
View File
@@ -15,6 +15,6 @@ trim_trailing_whitespace = false
indent_style = space
indent_size = 2
[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}]
[{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space
indent_size = 4
-40
View File
@@ -1,40 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- Provide a general summary of the bug in the Title above -->
------------------------------
## Expected Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Environment
**OS:**
**CPU architecture:** x86_64/arm32/arm64
**How docker service was installed:**
<!--- ie. from the official docker repo, from the distro repo, nas OS provided, etc. -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
## Command used to create docker container (run/create/compose/screenshot)
<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container -->
## Docker logs
<!--- Provide a full docker log, output of "docker logs radarr" -->
+76
View File
@@ -0,0 +1,76 @@
# Based on the issue template
name: Bug report
description: Create a report to help us improve
title: "[BUG] <title>"
labels: [Bug]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: Tell us what happens instead of the expected behavior.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Tell us what should happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: true
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **How docker service was installed**: distro's packagemanager
value: |
- OS:
- How docker service was installed:
render: markdown
validations:
required: false
- type: dropdown
attributes:
label: CPU architecture
options:
- x86-64
- arm64
validations:
required: true
- type: textarea
attributes:
label: Docker creation
description: |
Command used to create docker container
Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
render: bash
validations:
required: true
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs linuxserver.io"
label: Container logs
placeholder: |
Output of `docker logs linuxserver.io`
render: bash
validations:
required: true
-25
View File
@@ -1,25 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- If this acts as a feature request please ask yourself if this modification is something the whole userbase will benefit from --->
<!--- If this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- Provide a general summary of the request in the Title above -->
------------------------------
## Desired Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Alternatives Considered
<!--- Tell us what other options you have tried or considered -->
+31
View File
@@ -0,0 +1,31 @@
# Based on the issue template
name: Feature request
description: Suggest an idea for this project
title: "[FEAT] <title>"
labels: [enhancement]
body:
- type: checkboxes
attributes:
label: Is this a new feature request?
description: Please search to see if a feature request already exists.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Wanted change
description: Tell us what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Reason for change
description: Justify your request, why do you want it, what is the benefit.
validations:
required: true
- type: textarea
attributes:
label: Proposed code change
description: Do you have a potential code change in mind?
validations:
required: false
+16
View File
@@ -0,0 +1,16 @@
name: Issue & PR Tracker
on:
issues:
types: [opened,reopened,labeled,unlabeled,closed]
pull_request_target:
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
pull_request_review:
types: [submitted,edited,dismissed]
jobs:
manage-project:
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
secrets: inherit
+13
View File
@@ -0,0 +1,13 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: '58 22 * * *'
workflow_dispatch:
jobs:
stale:
permissions:
issues: write
pull-requests: write
uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1
secrets: inherit
+15 -3
View File
@@ -7,16 +7,18 @@ jobs:
external-trigger-nightly:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v3.1.0
- name: External Trigger
if: github.ref == 'refs/heads/nightly'
run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_RADARR_NIGHTLY }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_RADARR_NIGHTLY is set; skipping trigger. ****"
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_RADARR_NIGHTLY\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "**** External trigger running off of nightly branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_RADARR_NIGHTLY\". ****"
echo "External trigger running off of nightly branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_RADARR_NIGHTLY\`" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving external version ****"
EXT_RELEASE=$(curl -sL https://radarr.servarr.com/v1/update/nightly/changes?runtime=netcore%26os=linux | jq -r '.[0].version')
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
@@ -30,6 +32,7 @@ jobs:
fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "**** External version: ${EXT_RELEASE} ****"
echo "External version: ${EXT_RELEASE}" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving last pushed version ****"
image="linuxserver/radarr"
tag="nightly"
@@ -48,8 +51,12 @@ jobs:
| jq -r '.config.digest')
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}" \
| jq -r '.container_config')
"https://ghcr.io/v2/${image}/blobs/${digest}")
if [[ $(echo $image_info | jq -r '.container_config') == "null" ]]; then
image_info=$(echo $image_info | jq -r '.config')
else
image_info=$(echo $image_info | jq -r '.container_config')
fi
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then
@@ -61,14 +68,18 @@ jobs:
exit 1
fi
echo "**** Last pushed version: ${IMAGE_VERSION} ****"
echo "Last pushed version: ${IMAGE_VERSION}" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
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-radarr/job/nightly/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 ****"
echo "New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
exit 0
else
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
echo "New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-radarr/job/nightly/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
@@ -78,6 +89,7 @@ jobs:
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
@@ -2,14 +2,14 @@ name: External Trigger Scheduler
on:
schedule:
- cron: '51 * * * *'
- cron: '25 * * * *'
workflow_dispatch:
jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v3.1.0
with:
fetch-depth: '0'
@@ -17,18 +17,18 @@ jobs:
run: |
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
echo "**** Pulling the yq docker image ****"
docker pull ghcr.io/linuxserver/yq
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-radarr/${br}/jenkins-vars.yml \
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
if [ "$br" == "$ls_branch" ]; then
echo "**** Branch ${br} appears to be live; checking workflow. ****"
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-radarr/${br}/jenkins-vars.yml)
ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch')
ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
echo "**** Branch ${br} appears to be live and trigger is not os; checking workflow. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-radarr/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****."
echo "Triggering external trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \
@@ -36,8 +36,10 @@ jobs:
https://api.github.com/repos/linuxserver/docker-radarr/actions/workflows/external_trigger.yml/dispatches
else
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "Skipping branch ${br} due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
else
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
echo "**** ${br} is either a dev branch, or has no external version; skipping trigger. ****"
echo "Skipping branch ${br} due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
fi
done
+1 -1
View File
@@ -8,6 +8,6 @@ jobs:
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-radarr/blob/nightly/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-radarr/blob/nightly/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
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-radarr/blob/nightly/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}
+5 -1
View File
@@ -7,20 +7,23 @@ jobs:
package-trigger-nightly:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v3.1.0
- name: Package Trigger
if: github.ref == 'refs/heads/nightly'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_RADARR_NIGHTLY }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_RADARR_NIGHTLY is set; skipping trigger. ****"
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_RADARR_NIGHTLY\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-radarr/job/nightly/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
echo "There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "**** Package trigger running off of nightly branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_RADARR_NIGHTLY\". ****"
echo "Package trigger running off of nightly branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_RADARR_NIGHTLY\`" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-radarr/job/nightly/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
@@ -30,6 +33,7 @@ jobs:
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
@@ -2,14 +2,14 @@ name: Package Trigger Scheduler
on:
schedule:
- cron: '53 15 * * 1'
- cron: '49 16 * * 0'
workflow_dispatch:
jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v3.1.0
with:
fetch-depth: '0'
@@ -17,18 +17,16 @@ jobs:
run: |
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
echo "**** Pulling the yq docker image ****"
docker pull ghcr.io/linuxserver/yq
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-radarr/${br}/jenkins-vars.yml \
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-radarr/${br}/jenkins-vars.yml | yq -r '.ls_branch')
if [ "${br}" == "${ls_branch}" ]; then
echo "**** Branch ${br} appears to be live; checking workflow. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-radarr/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****"
echo "Triggering package trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} "
curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
@@ -38,9 +36,11 @@ jobs:
sleep 30
else
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
else
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
fi
done
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
+10
View File
@@ -0,0 +1,10 @@
name: Permission check
on:
pull_request_target:
paths:
- '**/run'
- '**/finish'
- '**/check'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1
-23
View File
@@ -1,23 +0,0 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: "30 1 * * *"
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
with:
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity'
days-before-stale: 30
days-before-close: 365
exempt-issue-labels: 'awaiting-approval,work-in-progress'
exempt-pr-labels: 'awaiting-approval,work-in-progress'
repo-token: ${{ secrets.GITHUB_TOKEN }}
+7 -6
View File
@@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine:3.15
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:3.18
# set version label
ARG BUILD_DATE
@@ -14,10 +16,9 @@ ENV XDG_CONFIG_HOME="/config/xdg"
RUN \
echo "**** install packages ****" && \
apk add -U --upgrade --no-cache \
curl \
jq \
icu-libs \
sqlite-libs && \
sqlite-libs \
xmlstarlet && \
echo "**** install radarr ****" && \
mkdir -p /app/radarr/bin && \
if [ -z ${RADARR_RELEASE+x} ]; then \
@@ -34,12 +35,12 @@ RUN \
echo "**** cleanup ****" && \
rm -rf \
/app/radarr/bin/Radarr.Update \
/tmp/* \
/var/tmp/*
/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 7878
VOLUME /config
+7 -6
View File
@@ -1,4 +1,6 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.18
# set version label
ARG BUILD_DATE
@@ -14,10 +16,9 @@ ENV XDG_CONFIG_HOME="/config/xdg"
RUN \
echo "**** install packages ****" && \
apk add -U --upgrade --no-cache \
curl \
jq \
icu-libs \
sqlite-libs && \
sqlite-libs \
xmlstarlet && \
echo "**** install radarr ****" && \
mkdir -p /app/radarr/bin && \
if [ -z ${RADARR_RELEASE+x} ]; then \
@@ -34,12 +35,12 @@ RUN \
echo "**** cleanup ****" && \
rm -rf \
/app/radarr/bin/Radarr.Update \
/tmp/* \
/var/tmp/*
/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 7878
VOLUME /config
-45
View File
@@ -1,45 +0,0 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.15
# set version label
ARG BUILD_DATE
ARG VERSION
ARG RADARR_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="thespad"
# environment settings
ARG RADARR_BRANCH="nightly"
ENV XDG_CONFIG_HOME="/config/xdg"
RUN \
echo "**** install packages ****" && \
apk add -U --upgrade --no-cache \
curl \
jq \
icu-libs \
sqlite-libs && \
echo "**** install radarr ****" && \
mkdir -p /app/radarr/bin && \
if [ -z ${RADARR_RELEASE+x} ]; then \
RADARR_RELEASE=$(curl -sL "https://radarr.servarr.com/v1/update/${RADARR_BRANCH}/changes?runtime=netcore&os=linuxmusl" \
| jq -r '.[0].version'); \
fi && \
curl -o \
/tmp/radarr.tar.gz -L \
"https://radarr.servarr.com/v1/update/${RADARR_BRANCH}/updatefile?version=${RADARR_RELEASE}&os=linuxmusl&runtime=netcore&arch=arm" && \
tar xzf \
/tmp/radarr.tar.gz -C \
/app/radarr/bin --strip-components=1 && \
echo -e "UpdateMethod=docker\nBranch=${RADARR_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://www.linuxserver.io/)" > /app/radarr/package_info && \
echo "**** cleanup ****" && \
rm -rf \
/app/radarr/bin/Radarr.Update \
/tmp/* \
/var/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 7878
VOLUME /config
Vendored
+172 -170
View File
@@ -33,16 +33,22 @@ pipeline {
CI_DELAY='120'
CI_DOCKERENV='TZ=Europe/London'
CI_AUTH='user:password'
CI_WEBPATH=''
CI_WEBPATH='/system/status'
}
stages {
// Setup all the basic environment variables needed for the build
stage("Set ENV Variables base"){
steps{
sh '''#! /bin/bash
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || : '''
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':nightly 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}:nightly 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' ''',
@@ -56,7 +62,7 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml ./root/donate.txt'
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml ./root/donate.txt'
}
script{
env.LS_RELEASE_NUMBER = sh(
@@ -66,7 +72,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 nightly-${LS_RELEASE} 2>/dev/null)
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
echo ${LS_RELEASE_NUMBER}
elif [ -z "${GIT_COMMIT}" ]; then
@@ -157,7 +163,7 @@ 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-nightly-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-nightly-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-nightly-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'amd64-nightly-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-nightly-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
env.CI_TAGS = 'nightly-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
@@ -180,7 +186,7 @@ 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-nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 'amd64-nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else {
env.CI_TAGS = 'nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
}
@@ -203,12 +209,12 @@ 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-nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'amd64-nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} else {
env.CI_TAGS = 'nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'nightly-' + 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 + '-pr-' + env.PULL_REQUEST
env.META_TAG = 'nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-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 = 'nightly-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'nightly-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/'
@@ -228,19 +234,16 @@ pipeline {
script{
env.SHELLCHECK_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
}
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-jenkins-builder/master/checkrun.sh | /bin/bash'''
sh '''#! /bin/bash
set -e
docker pull ghcr.io/linuxserver/lsiodev-spaces-file-upload:latest
docker run --rm \
-e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
-e FILE_NAME="shellcheck-result.xml" \
-e MIMETYPE="text/xml" \
-v ${WORKSPACE}:/mnt \
-e SECRET_KEY=\"${S3_SECRET}\" \
-e ACCESS_KEY=\"${S3_KEY}\" \
-t ghcr.io/linuxserver/lsiodev-spaces-file-upload:latest \
python /upload.py'''
-v ${WORKSPACE}:/mnt \
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
ghcr.io/linuxserver/baseimage-alpine:3.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache py3-pip && \
pip install s3cmd && \
s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :'''
}
}
}
@@ -277,7 +280,7 @@ pipeline {
echo "Jenkinsfile is up to date."
fi
# Stage 2 - Delete old templates
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md"
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -294,7 +297,7 @@ pipeline {
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old templates"
echo "Deleting old and deprecated templates"
rm -Rf ${TEMPDIR}
exit 0
else
@@ -313,12 +316,13 @@ pipeline {
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
cd ${TEMPDIR}/repo/${LS_REPO}/
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
echo ".jenkins-external" >> .gitignore
git add .gitignore
fi
git add ${TEMPLATED_FILES}
git add readme-vars.yml ${TEMPLATED_FILES}
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -339,6 +343,8 @@ pipeline {
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
cd ${TEMPDIR}/unraid/templates/
@@ -379,6 +385,26 @@ pipeline {
}
}
}
// If this is a nightly build check the S6 service file perms
stage("Check S6 Service file Permissions"){
when {
branch "nightly"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
script{
sh '''#! /bin/bash
WRONG_PERM=$(find ./ -path "./.git" -prune -o \\( -name "run" -o -name "finish" -o -name "check" \\) -not -perm -u=x,g=x,o=x -print)
if [[ -n "${WRONG_PERM}" ]]; then
echo "The following S6 service files are missing the executable bit; canceling the faulty build: ${WRONG_PERM}"
exit 1
else
echo "S6 service file perms look good."
fi '''
}
}
}
/* #######################
GitLab Mirroring
####################### */
@@ -410,8 +436,7 @@ pipeline {
}
steps{
sh '''#! /bin/bash
set -e
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/radarr") | .uuid')
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/radarr") | .uuid' || :)
if [ -z "${PACKAGE_UUID}" ]; then
echo "Adding package to Scarf.sh"
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -442,7 +467,8 @@ pipeline {
}
steps {
echo "Running on node: ${NODE_NAME}"
sh "docker build \
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-radarr/packages\" \
@@ -455,7 +481,7 @@ pipeline {
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Radarr\" \
--label \"org.opencontainers.image.description=[Radarr](https://github.com/Radarr/Radarr) - A fork of Sonarr to work with movies à la Couchpotato. \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -472,7 +498,8 @@ pipeline {
stage('Build X86') {
steps {
echo "Running on node: ${NODE_NAME}"
sh "docker build \
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-radarr/packages\" \
@@ -485,44 +512,10 @@ pipeline {
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Radarr\" \
--label \"org.opencontainers.image.description=[Radarr](https://github.com/Radarr/Radarr) - A fork of Sonarr to work with movies à la Couchpotato. \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
stage('Build ARMHF') {
agent {
label 'ARMHF'
}
steps {
echo "Running on node: ${NODE_NAME}"
echo 'Logging into Github'
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "docker build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-radarr/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-radarr\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-radarr\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Radarr\" \
--label \"org.opencontainers.image.description=[Radarr](https://github.com/Radarr/Radarr) - A fork of Sonarr to work with movies à la Couchpotato. \" \
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
}
sh '''docker rmi \
${IMAGE}:arm32v7-${META_TAG} \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
}
}
stage('Build ARM64') {
agent {
label 'ARM64'
@@ -533,7 +526,8 @@ pipeline {
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "docker build \
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.aarch64"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-radarr/packages\" \
@@ -546,15 +540,18 @@ pipeline {
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Radarr\" \
--label \"org.opencontainers.image.description=[Radarr](https://github.com/Radarr/Radarr) - A fork of Sonarr to work with movies à la Couchpotato. \" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
}
sh '''docker rmi \
${IMAGE}:arm64v8-${META_TAG} \
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
sh '''#! /bin/bash
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || : '''
}
}
}
@@ -575,26 +572,12 @@ pipeline {
else
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
fi
if [ "${DIST_IMAGE}" == "alpine" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apk info -v > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "fedora" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
rpm -qa > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "arch" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
pacman -Q > /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
fi
touch ${TEMPDIR}/package_versions.txt
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v ${TEMPDIR}:/tmp \
ghcr.io/anchore/syft:latest \
${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
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
@@ -629,13 +612,6 @@ pipeline {
environment name: 'EXIT_STATUS', value: ''
}
steps {
sh '''#! /bin/bash
echo "Packages were updated. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG}
else
docker rmi ${IMAGE}:${META_TAG}
fi'''
script{
env.EXIT_STATUS = 'ABORTED'
}
@@ -653,13 +629,6 @@ pipeline {
}
}
steps {
sh '''#! /bin/bash
echo "There are no package updates. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG}
else
docker rmi ${IMAGE}:${META_TAG}
fi'''
script{
env.EXIT_STATUS = 'ABORTED'
}
@@ -681,14 +650,13 @@ pipeline {
]) {
script{
env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
env.CI_JSON_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/report.json'
}
sh '''#! /bin/bash
set -e
docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
docker run --rm \
@@ -707,10 +675,8 @@ pipeline {
-e WEB_SCREENSHOT=\"${CI_WEB}\" \
-e WEB_AUTH=\"${CI_AUTH}\" \
-e WEB_PATH=\"${CI_WEBPATH}\" \
-e DO_REGION="ams3" \
-e DO_BUCKET="lsio-ci" \
-t ghcr.io/linuxserver/ci:latest \
python /ci/ci.py'''
python3 test_build.py'''
}
}
}
@@ -761,17 +727,6 @@ pipeline {
done
'''
}
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
${DELETEIMAGE}:nightly || :
if [ -n "${SEMVER}" ]; then
docker rmi ${DELETEIMAGE}:${SEMVER} || :
fi
done
'''
}
}
}
@@ -804,58 +759,54 @@ pipeline {
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-nightly
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-nightly
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-nightly
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-nightly
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-nightly
docker push ${MANIFESTIMAGE}:arm32v7-nightly
docker push ${MANIFESTIMAGE}:arm64v8-nightly
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:amd64-nightly
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-nightly
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker manifest push --purge ${MANIFESTIMAGE}:nightly || :
docker manifest create ${MANIFESTIMAGE}:nightly ${MANIFESTIMAGE}:amd64-nightly ${MANIFESTIMAGE}:arm32v7-nightly ${MANIFESTIMAGE}:arm64v8-nightly
docker manifest annotate ${MANIFESTIMAGE}:nightly ${MANIFESTIMAGE}:arm32v7-nightly --os linux --arch arm
docker manifest create ${MANIFESTIMAGE}:nightly ${MANIFESTIMAGE}:amd64-nightly ${MANIFESTIMAGE}:arm64v8-nightly
docker manifest annotate ${MANIFESTIMAGE}:nightly ${MANIFESTIMAGE}:arm64v8-nightly --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-nightly")
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-nightly || :
docker manifest create ${MANIFESTIMAGE}:arm32v7-nightly ${MANIFESTIMAGE}:amd64-nightly
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-nightly
fi
docker manifest push --purge ${MANIFESTIMAGE}:nightly
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
@@ -865,29 +816,6 @@ pipeline {
done
'''
}
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-nightly \
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-nightly \
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-nightly \
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
if [ -n "${SEMVER}" ]; then
docker rmi \
${DELETEIMAGE}:amd64-${SEMVER} \
${DELETEIMAGE}:arm32v7-${SEMVER} \
${DELETEIMAGE}:arm64v8-${SEMVER} || :
fi
done
docker rmi \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
'''
}
}
}
@@ -958,12 +886,78 @@ pipeline {
stage('Pull Request Comment') {
when {
not {environment name: 'CHANGE_ID', value: ''}
environment name: 'CI', value: 'true'
environment name: 'EXIT_STATUS', value: ''
}
steps {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
-d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' '''
sh '''#! /bin/bash
# Function to retrieve JSON data from URL
get_json() {
local url="$1"
local response=$(curl -s "$url")
if [ $? -ne 0 ]; then
echo "Failed to retrieve JSON data from $url"
return 1
fi
local json=$(echo "$response" | jq .)
if [ $? -ne 0 ]; then
echo "Failed to parse JSON data from $url"
return 1
fi
echo "$json"
}
build_table() {
local data="$1"
# Get the keys in the JSON data
local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]')
# Check if keys are empty
if [ -z "$keys" ]; then
echo "JSON report data does not contain any keys or the report does not exist."
return 1
fi
# Build table header
local header="| Tag | Passed |\\n| --- | --- |\\n"
# Loop through the JSON data to build the table rows
local rows=""
for build in $keys; do
local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success")
if [ "$status" = "true" ]; then
status="✅"
else
status="❌"
fi
local row="| "$build" | "$status" |\\n"
rows="${rows}${row}"
done
local table="${header}${rows}"
local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g')
echo "$escaped_table"
}
if [[ "${CI}" = "true" ]]; then
# Retrieve JSON data from URL
data=$(get_json "$CI_JSON_URL")
# Create table from JSON data
table=$(build_table "$data")
echo -e "$table"
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
else
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
fi
'''
}
}
}
@@ -977,18 +971,26 @@ pipeline {
sh 'echo "build aborted"'
}
else if (currentBuild.currentResult == "SUCCESS"){
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 1681177,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
else {
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 16711680,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
}
}
cleanup {
sh '''#! /bin/bash
echo "Performing docker system prune!!"
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || :
'''
cleanWs()
}
}
+8 -5
View File
@@ -56,7 +56,7 @@ The architectures supported by this image are:
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf| ✅ | arm32v7-\<version tag\> |
| armhf | ❌ | |
## Version Tags
@@ -67,7 +67,6 @@ This image provides various versions that are available via tags. Please read th
| latest | ✅ | Stable Radarr releases |
| develop | ✅ | Radarr releases from their develop branch |
| nightly | ✅ | Nightly Radarr releases |
## Application Setup
Access the webui at `<your-ip>:7878`, for more information check out [Radarr](https://github.com/Radarr/Radarr).
@@ -96,7 +95,7 @@ services:
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- TZ=Etc/UTC
volumes:
- /path/to/data:/config
- /path/to/movies:/movies #optional
@@ -113,13 +112,14 @@ docker run -d \
--name=radarr \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e TZ=Etc/UTC \
-p 7878:7878 \
-v /path/to/data:/config \
-v /path/to/movies:/movies `#optional` \
-v /path/to/downloadclient-downloads:/downloads `#optional` \
--restart unless-stopped \
lscr.io/linuxserver/radarr:nightly
```
## Parameters
@@ -131,7 +131,7 @@ Container images are configured using parameters passed at runtime (such as thos
| `-p 7878` | The port for the Radarr webinterface |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London, this is required for Radarr |
| `-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` | Database and Radarr configs |
| `-v /movies` | Location of Movie library on disk (See note in Application setup) |
| `-v /downloads` | Location of download managers output directory (See note in Application setup) |
@@ -245,6 +245,9 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **06.06.23:** - Rebase nightly to Alpine 3.18.
* **19.12.22:** - Rebase nightly to Alpine 3.17.
* **27.10.22:** - Rebase nightly to Alpine 3.16, migrate to s6v3.
* **04.02.22:** - Rebase nightly branch to Alpine.
* **13.12.21:** - Remove unused dependencies.
* **17.10.21:** - Remove `UMASK_SET`.
+2 -1
View File
@@ -7,6 +7,7 @@ custom_version_command: curl -sL https://radarr.servarr.com/v1/update/nightly/ch
release_type: prerelease
release_tag: nightly
ls_branch: nightly
build_armhf: false
repo_vars:
- BUILD_VERSION_ARG = 'RADARR_RELEASE'
- LS_USER = 'linuxserver'
@@ -24,6 +25,6 @@ repo_vars:
- CI_DELAY='120'
- CI_DOCKERENV='TZ=Europe/London'
- CI_AUTH='user:password'
- CI_WEBPATH=''
- CI_WEBPATH='/system/status'
sponsor_links:
- { name: "Radarr", url: "https://opencollective.com/radarr" }
+270 -43
View File
@@ -1,43 +1,270 @@
alpine-baselayout-3.2.0-r18
alpine-keys-2.4-r1
apk-tools-2.12.7-r3
bash-5.1.16-r0
brotli-libs-1.0.9-r5
busybox-1.34.1-r6
ca-certificates-20211220-r0
ca-certificates-bundle-20211220-r0
coreutils-9.0-r2
curl-7.80.0-r2
icu-libs-69.1-r1
jq-1.6-r1
libacl-2.2.53-r0
libattr-2.5.1-r1
libc-utils-0.7.2-r3
libcrypto1.1-1.1.1q-r0
libcurl-7.80.0-r2
libgcc-10.3.1_git20211027-r0
libintl-0.21-r0
libproc-3.3.17-r0
libretls-3.3.4-r3
libssl1.1-1.1.1q-r0
libstdc++-10.3.1_git20211027-r0
linux-pam-1.5.2-r0
musl-1.2.2-r7
musl-utils-1.2.2-r7
ncurses-libs-6.3_p20211120-r0
ncurses-terminfo-base-6.3_p20211120-r0
nghttp2-libs-1.46.0-r0
oniguruma-6.9.7.1-r0
procps-3.3.17-r0
readline-8.1.1-r0
s6-ipcserver-2.11.0.0-r0
scanelf-1.3.3-r0
shadow-4.8.1-r1
skalibs-2.11.0.0-r0
sqlite-libs-3.36.0-r0
ssl_client-1.34.1-r6
tzdata-2022a-r0
utmps-0.1.0.3-r0
xz-5.2.5-r1
xz-libs-5.2.5-r1
zlib-1.2.12-r1
NAME VERSION TYPE
Dapper 2.0.123 dotnet
DryIoc.Microsoft.DependencyInjection 6.1.1 dotnet
DryIoc.dll 5.3.4 dotnet
Dynamitey 2.0.9.136 dotnet
Equ 2.3.0 dotnet
FluentValidation 9.5.4 dotnet
Ical.Net 4.2.0 dotnet
ImpromptuInterface 7.0.1 dotnet
Instances 1.6.1 dotnet
MailKit 3.6.0 dotnet
Microsoft.CSharp 4.5.0 dotnet
Microsoft.Data.SqlClient 2.1.2 dotnet
Microsoft.Data.SqlClient.SNI.runtime 2.1.1 dotnet
Microsoft.Extensions.Configuration 6.0.0 dotnet
Microsoft.Extensions.Configuration 6.0.1 dotnet
Microsoft.Extensions.Configuration.Abstractions 6.0.0 dotnet
Microsoft.Extensions.Configuration.Binder 6.0.0 dotnet
Microsoft.Extensions.Configuration.CommandLine 6.0.0 dotnet
Microsoft.Extensions.Configuration.EnvironmentVariables 6.0.1 dotnet
Microsoft.Extensions.Configuration.FileExtensions 6.0.0 dotnet
Microsoft.Extensions.Configuration.Json 6.0.0 dotnet
Microsoft.Extensions.Configuration.UserSecrets 6.0.1 dotnet
Microsoft.Extensions.DependencyInjection 6.0.1 dotnet
Microsoft.Extensions.DependencyInjection.Abstractions 6.0.0 dotnet
Microsoft.Extensions.FileProviders.Abstractions 6.0.0 dotnet
Microsoft.Extensions.FileProviders.Physical 6.0.0 dotnet
Microsoft.Extensions.FileSystemGlobbing 6.0.0 dotnet
Microsoft.Extensions.Hosting 6.0.1 dotnet
Microsoft.Extensions.Hosting.Abstractions 6.0.0 dotnet
Microsoft.Extensions.Hosting.WindowsServices 6.0.1 dotnet
Microsoft.Extensions.Logging 6.0.0 dotnet
Microsoft.Extensions.Logging.Abstractions 6.0.0 dotnet
Microsoft.Extensions.Logging.Configuration 6.0.0 dotnet
Microsoft.Extensions.Logging.Console 6.0.0 dotnet
Microsoft.Extensions.Logging.Debug 6.0.0 dotnet
Microsoft.Extensions.Logging.EventLog 6.0.0 dotnet
Microsoft.Extensions.Logging.EventSource 6.0.0 dotnet
Microsoft.Extensions.Options 6.0.0 dotnet
Microsoft.Extensions.Options.ConfigurationExtensions 6.0.0 dotnet
Microsoft.Extensions.Primitives 6.0.0 dotnet
Microsoft.Identity.Client 4.21.1 dotnet
Microsoft.IdentityModel.JsonWebTokens 6.8.0 dotnet
Microsoft.IdentityModel.Logging 6.8.0 dotnet
Microsoft.IdentityModel.Protocols 6.8.0 dotnet
Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0 dotnet
Microsoft.IdentityModel.Tokens 6.8.0 dotnet
Microsoft.NETCore.Platforms 1.1.0 dotnet
Microsoft.NETCore.Targets 1.1.0 dotnet
Microsoft.OpenApi 1.2.3 dotnet
Microsoft.Win32.Primitives 4.3.0 dotnet
Microsoft.Win32.Registry 4.7.0 dotnet
Microsoft.Win32.SystemEvents 6.0.0 dotnet
MimeKit 3.6.0 dotnet
Mono.Nat 3.0.1 dotnet
Mono.Posix.NETStandard 5.20.1.34-servarr20 dotnet
MonoTorrent 2.0.7 dotnet
NETStandard.Library 1.6.1 dotnet
NLog 5.2.0 dotnet
NLog.Extensions.Logging 5.3.0 dotnet
NLog.Targets.Syslog 7.0.0 dotnet
Newtonsoft.Json 13.0.2 dotnet
NodaTime 3.0.0 dotnet
Npgsql 5.0.11 dotnet
Npgsql 6.0.3 dotnet
Polly.Contrib.WaitAndRetry 1.1.1 dotnet
Portable.BouncyCastle 1.9.0 dotnet
ReusableTasks 2.0.0 dotnet
Sentry 3.23.1 dotnet
Servarr.FFMpegCore 4.7.0-26 dotnet
Servarr.FFprobe 5.1.2.106 dotnet
Servarr.FluentMigrator 3.3.2.9 dotnet
Servarr.FluentMigrator.Abstractions 3.3.2.9 dotnet
Servarr.FluentMigrator.Extensions.Oracle 3.3.2.9 dotnet
Servarr.FluentMigrator.Extensions.Postgres 3.3.2.9 dotnet
Servarr.FluentMigrator.Extensions.SqlAnywhere 3.3.2.9 dotnet
Servarr.FluentMigrator.Extensions.SqlServer 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.Core 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.Db2 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.Firebird 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.Hana 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.MySql 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.Oracle 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.Postgres 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.Redshift 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.SQLite 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.SqlAnywhere 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.SqlServer 3.3.2.9 dotnet
Servarr.FluentMigrator.Runner.SqlServerCe 3.3.2.9 dotnet
SharpZipLib 1.3.3 dotnet
SixLabors.ImageSharp 3.0.1 dotnet
Swashbuckle.AspNetCore.Swagger 6.5.0 dotnet
Swashbuckle.AspNetCore.SwaggerGen 6.5.0 dotnet
System.AppContext 4.3.0 dotnet
System.Buffers 4.3.0 dotnet
System.Collections 4.3.0 dotnet
System.Collections.Concurrent 4.3.0 dotnet
System.ComponentModel 4.3.0 dotnet
System.ComponentModel.Annotations 4.4.1 dotnet
System.Configuration.ConfigurationManager 6.0.1 dotnet
System.Console 4.3.0 dotnet
System.Data.SQLite.Core.Servarr 1.0.115.5-18 dotnet
System.Diagnostics.Debug 4.3.0 dotnet
System.Diagnostics.DiagnosticSource 6.0.0 dotnet
System.Diagnostics.EventLog 6.0.0 dotnet
System.Diagnostics.Tools 4.3.0 dotnet
System.Diagnostics.Tracing 4.3.0 dotnet
System.Drawing.Common 6.0.0 dotnet
System.Formats.Asn1 6.0.0 dotnet
System.Globalization 4.3.0 dotnet
System.Globalization.Calendars 4.3.0 dotnet
System.Globalization.Extensions 4.3.0 dotnet
System.IO 4.3.0 dotnet
System.IO.Compression 4.3.0 dotnet
System.IO.Compression.ZipFile 4.3.0 dotnet
System.IO.FileSystem 4.3.0 dotnet
System.IO.FileSystem.AccessControl 5.0.0 dotnet
System.IO.FileSystem.Primitives 4.3.0 dotnet
System.IdentityModel.Tokens.Jwt 6.8.0 dotnet
System.Linq 4.3.0 dotnet
System.Linq.Expressions 4.3.0 dotnet
System.Memory 4.5.5 dotnet
System.Net.Http 4.3.0 dotnet
System.Net.NameResolution 4.3.0 dotnet
System.Net.Primitives 4.3.0 dotnet
System.Net.Sockets 4.3.0 dotnet
System.ObjectModel 4.3.0 dotnet
System.Private.Uri 4.3.0 dotnet
System.Reflection 4.3.0 dotnet
System.Reflection.Emit 4.3.0 dotnet
System.Reflection.Emit.ILGeneration 4.3.0 dotnet
System.Reflection.Emit.Lightweight 4.3.0 dotnet
System.Reflection.Extensions 4.3.0 dotnet
System.Reflection.Primitives 4.3.0 dotnet
System.Reflection.TypeExtensions 4.3.0 dotnet
System.Resources.ResourceManager 4.3.0 dotnet
System.Runtime 4.3.0 dotnet
System.Runtime.Caching 4.7.0 dotnet
System.Runtime.CompilerServices.Unsafe 6.0.0 dotnet
System.Runtime.Extensions 4.3.0 dotnet
System.Runtime.Handles 4.3.0 dotnet
System.Runtime.InteropServices 4.3.0 dotnet
System.Runtime.InteropServices.RuntimeInformation 4.3.0 dotnet
System.Runtime.Loader 4.3.0 dotnet
System.Runtime.Numerics 4.3.0 dotnet
System.Security.AccessControl 6.0.0 dotnet
System.Security.Cryptography.Algorithms 4.3.0 dotnet
System.Security.Cryptography.Cng 4.5.0 dotnet
System.Security.Cryptography.Csp 4.3.0 dotnet
System.Security.Cryptography.Encoding 4.3.0 dotnet
System.Security.Cryptography.OpenSsl 4.3.0 dotnet
System.Security.Cryptography.Pkcs 6.0.0 dotnet
System.Security.Cryptography.Primitives 4.3.0 dotnet
System.Security.Cryptography.ProtectedData 6.0.0 dotnet
System.Security.Cryptography.X509Certificates 4.3.0 dotnet
System.Security.Permissions 6.0.0 dotnet
System.Security.Principal.Windows 5.0.0 dotnet
System.ServiceProcess.ServiceController 6.0.0 dotnet
System.Text.Encoding 4.3.0 dotnet
System.Text.Encoding.CodePages 6.0.0 dotnet
System.Text.Encoding.Extensions 4.3.0 dotnet
System.Text.Encodings.Web 6.0.0 dotnet
System.Text.Json 6.0.7 dotnet
System.Text.RegularExpressions 4.3.0 dotnet
System.Threading 4.3.0 dotnet
System.Threading.Tasks 4.3.0 dotnet
System.Threading.Tasks.Extensions 4.3.0 dotnet
System.Threading.ThreadPool 4.3.0 dotnet
System.Threading.Timer 4.3.0 dotnet
System.ValueTuple 4.5.0 dotnet
System.Windows.Extensions 6.0.0 dotnet
System.Xml.ReaderWriter 4.3.0 dotnet
System.Xml.XDocument 4.3.0 dotnet
alpine-baselayout 3.4.3-r1 apk
alpine-baselayout-data 3.4.3-r1 apk
alpine-keys 2.4-r1 apk
alpine-release 3.18.2-r0 apk
apk-tools 2.14.0-r2 apk
bash 5.2.15-r5 apk
brotli-libs 1.0.9-r14 apk
busybox 1.36.1 binary
busybox 1.36.1-r0 apk
busybox-binsh 1.36.1-r0 apk
ca-certificates 20230506-r0 apk
ca-certificates-bundle 20230506-r0 apk
coreutils 9.3-r1 apk
curl 8.1.2-r0 apk
icu-data-en 73.2-r1 apk
icu-libs 73.2-r1 apk
jq 1.6-r3 apk
libacl 2.3.1-r3 apk
libattr 2.5.1-r4 apk
libbsd 0.11.7-r1 apk
libc-utils 0.7.2-r5 apk
libcrypto3 3.1.1-r1 apk
libcurl 8.1.2-r0 apk
libgcc 12.2.1_git20220924-r10 apk
libgcrypt 1.10.2-r1 apk
libgpg-error 1.47-r1 apk
libidn2 2.3.4-r1 apk
libintl 0.21.1-r7 apk
libmd 1.0.4-r2 apk
libncursesw 6.4_p20230506-r0 apk
libproc2 4.0.3-r1 apk
libssl3 3.1.1-r1 apk
libstdc++ 12.2.1_git20220924-r10 apk
libunistring 1.1-r1 apk
libxml2 2.11.4-r0 apk
libxslt 1.1.38-r0 apk
linux-pam 1.5.2-r10 apk
musl 1.2.4-r0 apk
musl-utils 1.2.4-r0 apk
ncurses-terminfo-base 6.4_p20230506-r0 apk
netcat-openbsd 1.219-r1 apk
nghttp2-libs 1.53.0-r0 apk
oniguruma 6.9.8-r1 apk
procps-ng 4.0.3-r1 apk
readline 8.2.1-r1 apk
runtime.any.System.Collections 4.3.0 dotnet
runtime.any.System.Diagnostics.Tools 4.3.0 dotnet
runtime.any.System.Diagnostics.Tracing 4.3.0 dotnet
runtime.any.System.Globalization 4.3.0 dotnet
runtime.any.System.Globalization.Calendars 4.3.0 dotnet
runtime.any.System.IO 4.3.0 dotnet
runtime.any.System.Reflection 4.3.0 dotnet
runtime.any.System.Reflection.Extensions 4.3.0 dotnet
runtime.any.System.Reflection.Primitives 4.3.0 dotnet
runtime.any.System.Resources.ResourceManager 4.3.0 dotnet
runtime.any.System.Runtime 4.3.0 dotnet
runtime.any.System.Runtime.Handles 4.3.0 dotnet
runtime.any.System.Runtime.InteropServices 4.3.0 dotnet
runtime.any.System.Text.Encoding 4.3.0 dotnet
runtime.any.System.Text.Encoding.Extensions 4.3.0 dotnet
runtime.any.System.Threading.Tasks 4.3.0 dotnet
runtime.any.System.Threading.Timer 4.3.0 dotnet
runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.native.System 4.3.0 dotnet
runtime.native.System.IO.Compression 4.3.0 dotnet
runtime.native.System.Net.Http 4.3.0 dotnet
runtime.native.System.Security.Cryptography.Apple 4.3.0 dotnet
runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple 4.3.0 dotnet
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.0 dotnet
runtime.unix.Microsoft.Win32.Primitives 4.3.0 dotnet
runtime.unix.System.Console 4.3.0 dotnet
runtime.unix.System.Diagnostics.Debug 4.3.0 dotnet
runtime.unix.System.IO.FileSystem 4.3.0 dotnet
runtime.unix.System.Net.Primitives 4.3.0 dotnet
runtime.unix.System.Net.Sockets 4.3.0 dotnet
runtime.unix.System.Private.Uri 4.3.0 dotnet
runtime.unix.System.Runtime.Extensions 4.3.0 dotnet
scanelf 1.3.7-r1 apk
shadow 4.13-r4 apk
skalibs 2.13.1.1-r1 apk
sqlite-libs 3.41.2-r2 apk
ssl_client 1.36.1-r0 apk
tzdata 2023c-r1 apk
utmps-libs 0.1.2.1-r1 apk
xmlstarlet 1.6.1-r2 apk
xz-libs 5.4.3-r0 apk
zlib 1.2.13-r1 apk
+3 -1
View File
@@ -12,7 +12,6 @@ project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_
available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version
development_versions: true
@@ -56,6 +55,9 @@ app_setup_block: |
# changelog
changelogs:
- { date: "06.06.23:", desc: "Rebase nightly to Alpine 3.18." }
- { date: "19.12.22:", desc: "Rebase nightly to Alpine 3.17." }
- { date: "27.10.22:", desc: "Rebase nightly to Alpine 3.16, migrate to s6v3." }
- { date: "04.02.22:", desc: "Rebase nightly branch to Alpine." }
- { date: "13.12.21:", desc: "Remove unused dependencies." }
- { date: "17.10.21:", desc: "Remove `UMASK_SET`." }
-5
View File
@@ -1,5 +0,0 @@
#!/usr/bin/with-contenv bash
# permissions
chown -R abc:abc \
/config
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# permissions
lsiown -R abc:abc \
/config
@@ -0,0 +1 @@
oneshot
@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-radarr-config/run
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
PORT=$(xmlstarlet sel -T -t -v /Config/Port /config/config.xml)
if [[ $(curl -sL "http://localhost:${PORT:-7878}/ping" | jq -r '.status' 2>/dev/null) = "OK" ]]; then
exit 0
else
exit 1
fi
@@ -0,0 +1 @@
3
+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
exec \
s6-notifyoncheck -d -n 300 -w 1000 \
cd /app/radarr/bin s6-setuidgid abc /app/radarr/bin/Radarr \
-nobrowser -data=/config
@@ -0,0 +1 @@
longrun
-5
View File
@@ -1,5 +0,0 @@
#!/usr/bin/with-contenv bash
exec \
s6-setuidgid abc /app/radarr/bin/Radarr \
-nobrowser -data=/config