Compare commits
310
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1bb211fe48 | ||
|
|
cdbba46a10 | ||
|
|
97de4409c5 | ||
|
|
c2a3f0298f | ||
|
|
84a6eb5444 | ||
|
|
30ca2250ad | ||
|
|
d6172cea05 | ||
|
|
765c11e2a0 | ||
|
|
004605761f | ||
|
|
dea638ae4e | ||
|
|
62f472d357 | ||
|
|
99fc2281da | ||
|
|
294d6b8a0f | ||
|
|
023e7b7856 | ||
|
|
82e1f33399 | ||
|
|
a247ce5764 | ||
|
|
7f2ebe065e | ||
|
|
adc91c9b1e | ||
|
|
65f0140097 | ||
|
|
577bcded23 | ||
|
|
99f243e2d1 | ||
|
|
ee5b689073 | ||
|
|
130f49dc9d | ||
|
|
fd3925d402 | ||
|
|
3576c8cdcc | ||
|
|
3e57168263 | ||
|
|
ebdcc9ef0d | ||
|
|
5db018a4a3 | ||
|
|
ed782df152 | ||
|
|
8ea73321ae | ||
|
|
88bdcc0aed | ||
|
|
06ef893305 | ||
|
|
d3a9ffc3a1 | ||
|
|
27e37ba785 | ||
|
|
6a97e8426e | ||
|
|
7219794b16 | ||
|
|
7ff2f65389 | ||
|
|
5cd4363087 | ||
|
|
e24b65fc3c | ||
|
|
ec84d2da43 | ||
|
|
fb0d900387 | ||
|
|
37e0bf2d73 | ||
|
|
f23b59db85 | ||
|
|
65c4f7cae1 | ||
|
|
fe741fe357 | ||
|
|
eaa3c55531 | ||
|
|
037b1ff3f5 | ||
|
|
1343ba2e00 | ||
|
|
b412c407aa | ||
|
|
3449d75e6d | ||
|
|
5dd81fffdf | ||
|
|
40f3a3586b | ||
|
|
ec136e4b7b | ||
|
|
4b8fe386c8 | ||
|
|
47b304e85c | ||
|
|
0eeca49013 | ||
|
|
2757ec8375 | ||
|
|
0c33c4f262 | ||
|
|
8daef67331 | ||
|
|
5b2c83de3f | ||
|
|
546884cba5 | ||
|
|
1f20f4baa3 | ||
|
|
38d9731f56 | ||
|
|
e03bc7cd18 | ||
|
|
45ab3e9638 | ||
|
|
2fd357afa1 | ||
|
|
8a09912eb5 | ||
|
|
7572cae442 | ||
|
|
d6b39bbca3 | ||
|
|
38cffa98de | ||
|
|
ca21cc0750 | ||
|
|
5cb2235bc0 | ||
|
|
5fed0448df | ||
|
|
3021d004ac | ||
|
|
e059ec96ac | ||
|
|
3743fe8aec | ||
|
|
8bb6b7bed4 | ||
|
|
929b0be074 | ||
|
|
8972abbdfe | ||
|
|
1196067618 | ||
|
|
418a60c33b | ||
|
|
98e90df9c3 | ||
|
|
b831303e72 | ||
|
|
5ceefaba5f | ||
|
|
c65df73062 | ||
|
|
602a72d610 | ||
|
|
f1ce34236d | ||
|
|
31a449c4c0 | ||
|
|
4aec92187d | ||
|
|
c21c2c2f86 | ||
|
|
8f825bc3ec | ||
|
|
e3c1a254a8 | ||
|
|
7044984552 | ||
|
|
eb57b8ba79 | ||
|
|
2f0178602c | ||
|
|
09229d8a86 | ||
|
|
5002046232 | ||
|
|
0f48519128 | ||
|
|
ec84143e83 | ||
|
|
b074e8b815 | ||
|
|
7f8e1b9857 | ||
|
|
0d1fd5a4b1 | ||
|
|
61b219a84d | ||
|
|
46731a7291 | ||
|
|
b107410b7a | ||
|
|
bc52b9ddda | ||
|
|
4450f08e20 | ||
|
|
861d83eda1 | ||
|
|
5a1c629f30 | ||
|
|
4a11e86f22 | ||
|
|
d95073ea25 | ||
|
|
e7064f0c7e | ||
|
|
a6e5c6221b | ||
|
|
6ba0453cec | ||
|
|
cebc52bb7a | ||
|
|
e380c90fbe | ||
|
|
6b960e2c72 | ||
|
|
69110efb1c | ||
|
|
de2d914827 | ||
|
|
d84e5fc219 | ||
|
|
277579eeb4 | ||
|
|
46a711853c | ||
|
|
f86146b88c | ||
|
|
c149171cb2 | ||
|
|
88a554a0f3 | ||
|
|
7b381a22a2 | ||
|
|
30e77dd183 | ||
|
|
a10020276f | ||
|
|
8584e6e993 | ||
|
|
f8f4fb7281 | ||
|
|
6a082968f1 | ||
|
|
e9d6abcb8e | ||
|
|
d4f7a846fc | ||
|
|
0b7c237dff | ||
|
|
d235e10848 | ||
|
|
1208c3a852 | ||
|
|
7bac09e201 | ||
|
|
32f92ab323 | ||
|
|
b2079f29d8 | ||
|
|
03e8ab6919 | ||
|
|
d17127228f | ||
|
|
3bb7e2769c | ||
|
|
5a7bbbd2cd | ||
|
|
b15e19a78e | ||
|
|
719c33e554 | ||
|
|
0dbc9e4776 | ||
|
|
8350054896 | ||
|
|
371eaa001b | ||
|
|
17f76ff225 | ||
|
|
be5e598305 | ||
|
|
984d1ce002 | ||
|
|
d2a45dab21 | ||
|
|
29d77d21ff | ||
|
|
b305e2ac4f | ||
|
|
83739880eb | ||
|
|
9edb19e41a | ||
|
|
523b87c9d3 | ||
|
|
04dddfb191 | ||
|
|
90d015f8d0 | ||
|
|
e792ece366 | ||
|
|
15bff24561 | ||
|
|
6464ea8274 | ||
|
|
75b42899e1 | ||
|
|
6cde2975e3 | ||
|
|
7153ffe3c2 | ||
|
|
89b49bb454 | ||
|
|
bc06ef9203 | ||
|
|
258087ff96 | ||
|
|
a0a00ee9f7 | ||
|
|
07d3e123e3 | ||
|
|
c88826accc | ||
|
|
293265827e | ||
|
|
e46461be88 | ||
|
|
b81e698322 | ||
|
|
3650b5db69 | ||
|
|
516d3bc0e1 | ||
|
|
87f3709526 | ||
|
|
329ae2b887 | ||
|
|
b9c99e04d0 | ||
|
|
483194ec49 | ||
|
|
30e2b8138d | ||
|
|
6f564f6bf5 | ||
|
|
8de6e62613 | ||
|
|
53177986b4 | ||
|
|
69648e4e54 | ||
|
|
429dc6a09c | ||
|
|
70dbea1b35 | ||
|
|
f5e1852c28 | ||
|
|
10616757ab | ||
|
|
423a6401c7 | ||
|
|
21e1506643 | ||
|
|
e32c640c4f | ||
|
|
447b095d7e | ||
|
|
c2d06a9d36 | ||
|
|
2e2aa3caad | ||
|
|
587a5612ec | ||
|
|
a1c5c90586 | ||
|
|
7ffa7e5683 | ||
|
|
3839fada56 | ||
|
|
d4d6ea92ae | ||
|
|
076309b476 | ||
|
|
e33620dad9 | ||
|
|
dba4c0a5c0 | ||
|
|
fce7be9c78 | ||
|
|
0e10ccb722 | ||
|
|
ff2bff29dd | ||
|
|
11f0d22b86 | ||
|
|
cc67628e6b | ||
|
|
e35e2f9efd | ||
|
|
1e891332c0 | ||
|
|
d4624f0da3 | ||
|
|
ebf4267dce | ||
|
|
fab68c6812 | ||
|
|
3cff9c4a73 | ||
|
|
65973d94d2 | ||
|
|
ca04e506c0 | ||
|
|
5dcc0c7d6b | ||
|
|
561358af55 | ||
|
|
58a19d405d | ||
|
|
ef56395270 | ||
|
|
563f30d925 | ||
|
|
7be5eb37ed | ||
|
|
a3f05b4c5d | ||
|
|
6a3a677699 | ||
|
|
c9b9f443f2 | ||
|
|
be239cbd34 | ||
|
|
0efc76d68f | ||
|
|
a82c5b59f9 | ||
|
|
7a606ecdea | ||
|
|
7798afa495 | ||
|
|
fb241a21e0 | ||
|
|
b2b7669af9 | ||
|
|
cf6ebee08d | ||
|
|
1b99f37963 | ||
|
|
74454c6a34 | ||
|
|
7373365adc | ||
|
|
100563b732 | ||
|
|
d29f2859fb | ||
|
|
8cbcc0e9a9 | ||
|
|
5819a6452f | ||
|
|
f15d0ffedb | ||
|
|
d57704ac77 | ||
|
|
d594444078 | ||
|
|
79bd33291a | ||
|
|
d1a3b0a7ec | ||
|
|
bfb07db237 | ||
|
|
0de4b03115 | ||
|
|
47639b7458 | ||
|
|
2ca9e14ad0 | ||
|
|
19bc421728 | ||
|
|
01e74ad2de | ||
|
|
5cc5d837b8 | ||
|
|
bd3110a816 | ||
|
|
babd59abe8 | ||
|
|
cf2b3459a7 | ||
|
|
1f5bbe43b9 | ||
|
|
b3f0956d24 | ||
|
|
7b61cc4fcb | ||
|
|
a0bb4c3bf9 | ||
|
|
c723f2bd55 | ||
|
|
63f9894af8 | ||
|
|
614447d357 | ||
|
|
cbeb26fd5e | ||
|
|
cfd717e397 | ||
|
|
ea8e6b12ee | ||
|
|
9008089089 | ||
|
|
302a07a5f5 | ||
|
|
15a86dd469 | ||
|
|
55d87b51de | ||
|
|
fbdc6e5427 | ||
|
|
3e32fa3900 | ||
|
|
fa2865f892 | ||
|
|
455a1bd9c0 | ||
|
|
ae186dbfba | ||
|
|
1b5ef897a2 | ||
|
|
a060ddf350 | ||
|
|
d7710e3a8b | ||
|
|
f665c8d73d | ||
|
|
8d61b92f6e | ||
|
|
f26698101f | ||
|
|
c680957418 | ||
|
|
e0f57a43fd | ||
|
|
9e8f53fe75 | ||
|
|
53a0de377d | ||
|
|
c7479aed48 | ||
|
|
30ef5b08e7 | ||
|
|
fd6b0ff8c5 | ||
|
|
1c50ff3ab0 | ||
|
|
96ad8000cc | ||
|
|
c96dddac7e | ||
|
|
c0bc7a8ee8 | ||
|
|
8a09e682fd | ||
|
|
d5d1a4ee40 | ||
|
|
db87b7c1e8 | ||
|
|
2f1e1d4d6f | ||
|
|
8c1cc339b1 | ||
|
|
2632b6ccd3 | ||
|
|
811afacdd8 | ||
|
|
e595f0a3a3 | ||
|
|
d4a92385d4 | ||
|
|
94a08d92dc | ||
|
|
d87ad0cc40 | ||
|
|
2364d59eb2 | ||
|
|
b44176cecb | ||
|
|
130231e6fa | ||
|
|
3c28176dfb | ||
|
|
e11f37ac13 | ||
|
|
b6d9659708 | ||
|
|
32c2aa7887 | ||
|
|
2a94af621c |
@@ -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-nzbhydra2/edit/master/readme-vars.yml).
|
||||
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-nzbhydra2/edit/dev/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-nzbhydra2)
|
||||
@@ -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-nzbhydra2/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-nzbhydra2/tree/dev/root), add an entry to the changelog
|
||||
|
||||
```yml
|
||||
changelogs:
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
------------------------------
|
||||
|
||||
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-nzbhydra2/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-nzbhydra2/blob/dev/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
|
||||
|
||||
------------------------------
|
||||
|
||||
|
||||
@@ -7,31 +7,31 @@ permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
external-trigger-master:
|
||||
external-trigger-dev:
|
||||
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/dev'
|
||||
env:
|
||||
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
|
||||
run: |
|
||||
printf "# External trigger for docker-nzbhydra2\n\n" >> $GITHUB_STEP_SUMMARY
|
||||
if grep -q "^nzbhydra2_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
if grep -q "^nzbhydra2_dev_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`nzbhydra2_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
|
||||
elif grep -q "^nzbhydra2_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`nzbhydra2_dev_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
|
||||
elif grep -q "^nzbhydra2_dev" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`nzbhydra2_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`nzbhydra2_dev\`; 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 \`nzbhydra2_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
|
||||
echo "> External trigger running off of dev branch. To disable this trigger, add \`nzbhydra2_dev\` 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/theotherp/nzbhydra2/releases/latest" | jq -r '. | .tag_name')
|
||||
echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY
|
||||
if grep -q "^nzbhydra2_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" | jq -r '.[0] | .tag_name')
|
||||
echo "Type is \`github_devel\`" >> $GITHUB_STEP_SUMMARY
|
||||
if grep -q "^nzbhydra2_dev_${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
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
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 nzbhydra2 branch master"
|
||||
FAILURE_REASON="Can't retrieve external version for nzbhydra2 branch dev"
|
||||
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-nzbhydra2/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"}],
|
||||
@@ -50,7 +50,7 @@ jobs:
|
||||
echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
|
||||
image="linuxserver/nzbhydra2"
|
||||
tag="latest"
|
||||
tag="dev"
|
||||
token=$(curl -sX GET \
|
||||
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fnzbhydra2%3Apull" \
|
||||
| jq -r '.token')
|
||||
@@ -96,7 +96,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 nzbhydra2 tag latest"
|
||||
FAILURE_REASON="Can't retrieve last pushed version for nzbhydra2 tag dev"
|
||||
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 }}
|
||||
@@ -106,14 +106,14 @@ jobs:
|
||||
if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
|
||||
echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
|
||||
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/dev/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 nzbhydra2 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 nzbhydra2 tag dev 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 }}
|
||||
@@ -124,7 +124,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-nzbhydra2/job/master/buildWithParameters?PACKAGE_CHECK=false \
|
||||
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/dev/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
|
||||
@@ -139,7 +139,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 nzbhydra2 tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
|
||||
TRIGGER_REASON="A version change was detected for nzbhydra2 tag dev. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
|
||||
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 }}
|
||||
|
||||
@@ -15,5 +15,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-nzbhydra2/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-nzbhydra2/blob/dev/.github/PULL_REQUEST_TEMPLATE.md)!'
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
+2
-2
@@ -22,8 +22,8 @@ RUN \
|
||||
unzip && \
|
||||
echo "**** install nzbhydra2 ****" && \
|
||||
if [ -z ${NZBHYDRA2_RELEASE+x} ]; then \
|
||||
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases/latest" \
|
||||
| jq -r .tag_name); \
|
||||
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" \
|
||||
| jq -r '.[0] | .tag_name'); \
|
||||
fi && \
|
||||
NZBHYDRA2_VER=${NZBHYDRA2_RELEASE#v} && \
|
||||
curl -o \
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble
|
||||
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-jammy
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@@ -22,8 +22,8 @@ RUN \
|
||||
unzip && \
|
||||
echo "**** install nzbhydra2 ****" && \
|
||||
if [ -z ${NZBHYDRA2_RELEASE+x} ]; then \
|
||||
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases/latest" \
|
||||
| jq -r .tag_name); \
|
||||
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" \
|
||||
| jq -r '.[0] | .tag_name'); \
|
||||
fi && \
|
||||
NZBHYDRA2_VER=${NZBHYDRA2_RELEASE#v} && \
|
||||
curl -o \
|
||||
|
||||
Vendored
+188
-244
@@ -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 = 'develop'
|
||||
EXT_USER = 'theotherp'
|
||||
EXT_REPO = 'nzbhydra2'
|
||||
BUILD_VERSION_ARG = 'NZBHYDRA2_RELEASE'
|
||||
@@ -78,10 +78,8 @@ pipeline {
|
||||
'''
|
||||
script{
|
||||
env.EXIT_STATUS = ''
|
||||
env.CI_TEST_ATTEMPTED = ''
|
||||
env.PUSH_ATTEMPTED = ''
|
||||
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}:dev 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' ''',
|
||||
@@ -114,7 +112,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 dev-${LS_RELEASE} 2>/dev/null)
|
||||
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
|
||||
echo ${LS_RELEASE_NUMBER}
|
||||
elif [ -z "${GIT_COMMIT}" ]; then
|
||||
@@ -147,23 +145,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"){
|
||||
@@ -199,10 +197,10 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a master build use live docker endpoints
|
||||
// If this is a dev build use live docker endpoints
|
||||
stage("Set ENV live build"){
|
||||
when {
|
||||
branch "master"
|
||||
branch "dev"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
}
|
||||
steps {
|
||||
@@ -212,22 +210,21 @@ 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-dev-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-dev-' + 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 = 'dev-' + 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 = 'dev-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
env.EXT_RELEASE_TAG = 'dev-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'
|
||||
env.CITEST_IMAGETAG = 'latest'
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a dev build use dev docker endpoints
|
||||
stage("Set ENV dev build"){
|
||||
when {
|
||||
not {branch "master"}
|
||||
not {branch "dev"}
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
}
|
||||
steps {
|
||||
@@ -237,16 +234,15 @@ 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-dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-dev-' + 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 = 'dev-' + 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 = 'dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
env.EXT_RELEASE_TAG = 'dev-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'
|
||||
env.CITEST_IMAGETAG = 'develop'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -262,17 +258,16 @@ 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-dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-dev-' + 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 = 'dev-' + 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 = 'dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||
env.EXT_RELEASE_TAG = 'dev-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'
|
||||
env.CITEST_IMAGETAG = 'develop'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -295,7 +290,7 @@ pipeline {
|
||||
-v ${WORKSPACE}:/mnt \
|
||||
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
|
||||
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
|
||||
ghcr.io/linuxserver/baseimage-alpine:3.23 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
|
||||
ghcr.io/linuxserver/baseimage-alpine:3.20 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
|
||||
apk add --no-cache python3 && \
|
||||
python3 -m venv /lsiopy && \
|
||||
pip install --no-cache-dir -U pip && \
|
||||
@@ -307,7 +302,7 @@ pipeline {
|
||||
// Use helper containers to render templated files
|
||||
stage('Update-Templates') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "dev"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
expression {
|
||||
env.CONTAINER_NAME != null
|
||||
@@ -319,24 +314,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 dev of ${LS_USER}/${LS_REPO} for running the jenkins builder on
|
||||
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch dev 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 dev --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 dev
|
||||
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 dev
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git dev
|
||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
|
||||
rm -Rf ${TEMPDIR}
|
||||
@@ -355,13 +350,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 dev
|
||||
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 dev
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git dev
|
||||
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}
|
||||
@@ -376,20 +371,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}:dev
|
||||
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}-dev.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 dev
|
||||
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 dev
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git dev
|
||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Updating templates and exiting build, new one will trigger based on commit"
|
||||
rm -Rf ${TEMPDIR}
|
||||
@@ -406,7 +401,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 dev
|
||||
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
|
||||
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
|
||||
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
|
||||
@@ -419,8 +414,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 dev
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git dev
|
||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Updating templates and exiting build, new one will trigger based on commit"
|
||||
rm -Rf ${TEMPDIR}
|
||||
@@ -521,7 +516,7 @@ pipeline {
|
||||
// Exit the build if the Templated files were just updated
|
||||
stage('Template-exit') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "dev"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'FILES_UPDATED', value: 'true'
|
||||
expression {
|
||||
@@ -534,10 +529,10 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a master build check the S6 service file perms
|
||||
// If this is a dev build check the S6 service file perms
|
||||
stage("Check S6 Service file Permissions"){
|
||||
when {
|
||||
branch "master"
|
||||
branch "dev"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
@@ -630,16 +625,13 @@ pipeline {
|
||||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
|
||||
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
||||
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
||||
|
||||
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
||||
declare -A pids
|
||||
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
||||
for i in "${CACHE[@]}"; do
|
||||
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
|
||||
pids[$!]="$i"
|
||||
done
|
||||
for p in "${!pids[@]}"; do
|
||||
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
||||
for p in $(jobs -p); do
|
||||
wait "$p" || { echo "job $p failed" >&2; exit 1; }
|
||||
done
|
||||
fi
|
||||
'''
|
||||
@@ -699,16 +691,13 @@ pipeline {
|
||||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
|
||||
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
||||
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
||||
|
||||
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
||||
declare -A pids
|
||||
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
||||
for i in "${CACHE[@]}"; do
|
||||
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
|
||||
pids[$!]="$i"
|
||||
done
|
||||
for p in "${!pids[@]}"; do
|
||||
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
||||
for p in $(jobs -p); do
|
||||
wait "$p" || { echo "job $p failed" >&2; exit 1; }
|
||||
done
|
||||
fi
|
||||
'''
|
||||
@@ -762,14 +751,12 @@ 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 [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
||||
declare -A pids
|
||||
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
||||
for i in "${CACHE[@]}"; do
|
||||
docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} &
|
||||
pids[$!]="$i"
|
||||
done
|
||||
for p in "${!pids[@]}"; do
|
||||
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
||||
for p in $(jobs -p); do
|
||||
wait "$p" || { echo "job $p failed" >&2; exit 1; }
|
||||
done
|
||||
fi
|
||||
'''
|
||||
@@ -790,7 +777,7 @@ pipeline {
|
||||
// Take the image we just built and dump package versions for comparison
|
||||
stage('Update-packages') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "dev"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
@@ -813,14 +800,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 dev
|
||||
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 dev
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git dev
|
||||
echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Package tag updated, stopping build process"
|
||||
else
|
||||
@@ -838,7 +825,7 @@ pipeline {
|
||||
// Exit the build if the package file was just updated
|
||||
stage('PACKAGE-exit') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "dev"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'PACKAGE_UPDATED', value: 'true'
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
@@ -852,7 +839,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 "dev"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'PACKAGE_UPDATED', value: 'false'
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
@@ -883,7 +870,6 @@ 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'
|
||||
env.CI_TEST_ATTEMPTED = 'true'
|
||||
}
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
@@ -895,7 +881,7 @@ pipeline {
|
||||
CI_DOCKERENV="LSIO_FIRST_PARTY=true"
|
||||
fi
|
||||
fi
|
||||
docker pull ghcr.io/linuxserver/ci:${CITEST_IMAGETAG}
|
||||
docker pull ghcr.io/linuxserver/ci:latest
|
||||
if [ "${MULTIARCH}" == "true" ]; then
|
||||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
|
||||
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
||||
@@ -907,7 +893,7 @@ pipeline {
|
||||
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
|
||||
-e TAGS=\"${CI_TAGS}\" \
|
||||
-e META_TAG=\"${META_TAG}\" \
|
||||
-e RELEASE_TAG=\"latest\" \
|
||||
-e RELEASE_TAG=\"dev\" \
|
||||
-e PORT=\"${CI_PORT}\" \
|
||||
-e SSL=\"${CI_SSL}\" \
|
||||
-e BASE=\"${DIST_IMAGE}\" \
|
||||
@@ -919,9 +905,7 @@ pipeline {
|
||||
-e WEB_PATH=\"${CI_WEBPATH}\" \
|
||||
-e NODE_NAME=\"${NODE_NAME}\" \
|
||||
-e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \
|
||||
-e COMMIT_SHA=\"${COMMIT_SHA}\" \
|
||||
-e BUILD_NUMBER=\"${BUILD_NUMBER}\" \
|
||||
-t ghcr.io/linuxserver/ci:${CITEST_IMAGETAG} \
|
||||
-t ghcr.io/linuxserver/ci:latest \
|
||||
python3 test_build.py'''
|
||||
}
|
||||
}
|
||||
@@ -936,9 +920,6 @@ pipeline {
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
script{
|
||||
env.PUSH_ATTEMPTED = 'true'
|
||||
}
|
||||
retry_backoff(5,5) {
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
@@ -950,11 +931,9 @@ 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} || \
|
||||
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:dev -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} || \
|
||||
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
fi
|
||||
done
|
||||
'''
|
||||
@@ -968,45 +947,31 @@ pipeline {
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
script{
|
||||
env.PUSH_ATTEMPTED = 'true'
|
||||
}
|
||||
retry_backoff(5,5) {
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
||||
if [[ "${MANIFESTIMAGE%%/*}" =~ \\. ]]; then
|
||||
MANIFESTIMAGEPLUS="${MANIFESTIMAGE}"
|
||||
else
|
||||
MANIFESTIMAGEPLUS="docker.io/${MANIFESTIMAGE}"
|
||||
fi
|
||||
[[ ${MANIFESTIMAGE%%/*} =~ \\. ]] && MANIFESTIMAGEPLUS="${MANIFESTIMAGE}" || MANIFESTIMAGEPLUS="docker.io/${MANIFESTIMAGE}"
|
||||
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
||||
for i in "${CACHE[@]}"; do
|
||||
if [[ "${MANIFESTIMAGEPLUS}" == "$(cut -d "/" -f1 <<< ${i})"* ]]; then
|
||||
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} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
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} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-dev -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-dev -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} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
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 || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:dev ${MANIFESTIMAGE}:amd64-dev ${MANIFESTIMAGE}:arm64v8-dev
|
||||
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}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
fi
|
||||
done
|
||||
'''
|
||||
@@ -1016,7 +981,7 @@ pipeline {
|
||||
// If this is a public release tag it in the LS Github
|
||||
stage('Github-Tag-Push-Release') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "dev"
|
||||
expression {
|
||||
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
}
|
||||
@@ -1024,54 +989,36 @@ pipeline {
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
echo "Pushing New tag for current commit ${META_TAG}"
|
||||
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 dev",\
|
||||
"type": "commit",\
|
||||
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
|
||||
echo "Pushing New release for Tag"
|
||||
sh '''#! /bin/bash
|
||||
echo "Auto-generating release notes"
|
||||
if [ "$(git tag --points-at HEAD)" != "" ]; then
|
||||
echo "Existing tag points to current commit, suggesting no new LS changes"
|
||||
AUTO_RELEASE_NOTES="No changes"
|
||||
else
|
||||
AUTO_RELEASE_NOTES=$(curl -fsL -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github+json" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases/generate-notes \
|
||||
-d '{"tag_name":"'${META_TAG}'",\
|
||||
"target_commitish": "master"}' \
|
||||
| jq -r '.body' | sed 's|## What.s Changed||')
|
||||
fi
|
||||
echo "Pushing New tag for current commit ${META_TAG}"
|
||||
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",\
|
||||
"type": "commit",\
|
||||
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}'
|
||||
echo "Pushing New release for Tag"
|
||||
curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. |.body' > releasebody.json
|
||||
jq -n \
|
||||
--arg tag_name "$META_TAG" \
|
||||
--arg target_commitish "master" \
|
||||
--arg ci_url "${CI_URL:-N/A}" \
|
||||
--arg ls_notes "$AUTO_RELEASE_NOTES" \
|
||||
--arg remote_notes "$(cat releasebody.json)" \
|
||||
'{
|
||||
"tag_name": $tag_name,
|
||||
"target_commitish": $target_commitish,
|
||||
"name": $tag_name,
|
||||
"body": ("**CI Report:**\\n\\n" + $ci_url + "\\n\\n**LinuxServer Changes:**\\n\\n" + $ls_notes + "\\n\\n**Remote Changes:**\\n\\n" + $remote_notes),
|
||||
"draft": false,
|
||||
"prerelease": false }' > 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
|
||||
'''
|
||||
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": "dev",\
|
||||
"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": 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'''
|
||||
}
|
||||
}
|
||||
// Add protection to the release branch
|
||||
stage('Github-Release-Branch-Protection') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "dev"
|
||||
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 dev"
|
||||
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/dev/protection \
|
||||
-d $(jq -c . << EOF
|
||||
{
|
||||
"required_status_checks": null,
|
||||
@@ -1096,13 +1043,98 @@ EOF
|
||||
) '''
|
||||
}
|
||||
}
|
||||
// If this is a Pull request send the CI link as a comment on it
|
||||
stage('Pull Request Comment') {
|
||||
when {
|
||||
not {environment name: 'CHANGE_ID', value: ''}
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
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
|
||||
'''
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
/* ######################
|
||||
Comment on PR and Send status to Discord
|
||||
Send status to Discord
|
||||
###################### */
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
sh '''#!/bin/bash
|
||||
rm -rf /config/.ssh/id_sign
|
||||
rm -rf /config/.ssh/id_sign.pub
|
||||
git config --global --unset gpg.format
|
||||
git config --global --unset user.signingkey
|
||||
git config --global --unset commit.gpgsign
|
||||
'''
|
||||
script{
|
||||
env.JOB_DATE = sh(
|
||||
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
|
||||
returnStdout: true).trim()
|
||||
@@ -1145,94 +1177,6 @@ EOF
|
||||
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
|
||||
}
|
||||
}
|
||||
script {
|
||||
if (env.GITHUBIMAGE =~ /lspipepr/){
|
||||
if (env.CI_TEST_ATTEMPTED == "true" || env.PUSH_ATTEMPTED == "true"){
|
||||
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 for commit ${COMMIT_SHA:0:7} : \\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 for commit ${COMMIT_SHA:0:7} : \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
|
||||
fi
|
||||
'''
|
||||
} else {
|
||||
sh '''#! /bin/bash
|
||||
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, the build for PR commit ${COMMIT_SHA:0:7} failed and as a result no CI test was attempted and no images were pushed.\\"}"
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
sh '''#!/bin/bash
|
||||
rm -rf /config/.ssh/id_sign
|
||||
rm -rf /config/.ssh/id_sign.pub
|
||||
git config --global --unset gpg.format
|
||||
git config --global --unset user.signingkey
|
||||
git config --global --unset commit.gpgsign
|
||||
'''
|
||||
}
|
||||
cleanup {
|
||||
sh '''#! /bin/bash
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- DO NOT EDIT THIS FILE MANUALLY -->
|
||||
<!-- Please read https://github.com/linuxserver/docker-nzbhydra2/blob/master/.github/CONTRIBUTING.md -->
|
||||
<!-- Please read https://github.com/linuxserver/docker-nzbhydra2/blob/dev/.github/CONTRIBUTING.md -->
|
||||
[](https://linuxserver.io)
|
||||
|
||||
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
||||
@@ -34,10 +34,10 @@ Find us at:
|
||||
[](https://quay.io/repository/linuxserver.io/nzbhydra2)
|
||||
[](https://hub.docker.com/r/linuxserver/nzbhydra2)
|
||||
[](https://hub.docker.com/r/linuxserver/nzbhydra2)
|
||||
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/master/)
|
||||
[](https://ci-tests.linuxserver.io/linuxserver/nzbhydra2/latest/index.html)
|
||||
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/dev/)
|
||||
[](https://ci-tests.linuxserver.io/linuxserver/nzbhydra2/dev/index.html)
|
||||
|
||||
[Nzbhydra2](https://github.com/theotherp/nzbhydra2) is a meta search application for NZB indexers, the spiritual successor to NZBmegasearcH, and an evolution of the original application [NZBHydra](https://github.com/theotherp/nzbhydra).
|
||||
[Nzbhydra2](https://github.com/theotherp/nzbhydra2) is a meta search application for NZB indexers, the "spiritual successor" to NZBmegasearcH, and an evolution of the original application [NZBHydra](https://github.com/theotherp/nzbhydra).
|
||||
|
||||
It provides easy access to a number of raw and newznab based indexers.
|
||||
|
||||
@@ -47,7 +47,7 @@ It provides easy access to a number of raw and newznab based indexers.
|
||||
|
||||
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/nzbhydra2:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
|
||||
Simply pulling `lscr.io/linuxserver/nzbhydra2:dev` 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:
|
||||
|
||||
@@ -67,14 +67,14 @@ This image provides various versions that are available via tags. Please read th
|
||||
|
||||
## Application Setup
|
||||
|
||||
The web interface is at `<your ip>:5076` , to set up indexers and connections to your nzb download applications.
|
||||
The web interface is at `<your ip>:5076`, to set up indexers and connections to your nzb download applications.
|
||||
|
||||
## Usage
|
||||
|
||||
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
|
||||
|
||||
>[!NOTE]
|
||||
>Unless a parameter is flagged as 'optional', it is *mandatory* and a value must be provided.
|
||||
>Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided.
|
||||
|
||||
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
|
||||
|
||||
@@ -82,7 +82,7 @@ To help you get started creating a container from this image you can either use
|
||||
---
|
||||
services:
|
||||
nzbhydra2:
|
||||
image: lscr.io/linuxserver/nzbhydra2:latest
|
||||
image: lscr.io/linuxserver/nzbhydra2:dev
|
||||
container_name: nzbhydra2
|
||||
environment:
|
||||
- PUID=1000
|
||||
@@ -108,7 +108,7 @@ docker run -d \
|
||||
-v /path/to/nzbhydra2/data:/config \
|
||||
-v /path/to/downloads:/downloads `#optional` \
|
||||
--restart unless-stopped \
|
||||
lscr.io/linuxserver/nzbhydra2:latest
|
||||
lscr.io/linuxserver/nzbhydra2:dev
|
||||
```
|
||||
|
||||
## Parameters
|
||||
@@ -188,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/nzbhydra2:latest
|
||||
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nzbhydra2:dev
|
||||
```
|
||||
|
||||
## Updating Info
|
||||
@@ -236,7 +236,7 @@ Below are the instructions for updating containers:
|
||||
* Update the image:
|
||||
|
||||
```bash
|
||||
docker pull lscr.io/linuxserver/nzbhydra2:latest
|
||||
docker pull lscr.io/linuxserver/nzbhydra2:dev
|
||||
```
|
||||
|
||||
* Stop the running container:
|
||||
@@ -273,7 +273,7 @@ cd docker-nzbhydra2
|
||||
docker build \
|
||||
--no-cache \
|
||||
--pull \
|
||||
-t lscr.io/linuxserver/nzbhydra2:latest .
|
||||
-t lscr.io/linuxserver/nzbhydra2:dev .
|
||||
```
|
||||
|
||||
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
|
||||
@@ -286,16 +286,15 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **18.07.24:** - Rebase to Ubuntu Noble. Remove standalone JRE ([#46](https://github.com/linuxserver/docker-nzbhydra2/pull/46)).
|
||||
* **18.07.24:** - Rebase to Ubuntu Noble. Remove standalone JRE ([#47](https://github.com/linuxserver/docker-nzbhydra2/pull/47)).
|
||||
* **04.07.23:** - Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf)
|
||||
* **22.01.23:** - Update release URL for arch-specific packages.
|
||||
* **20.01.23:** - Update dependencies for v5.
|
||||
* **10.12.22:** - Bump master JRE to v17. Default mapIpToHost to false.
|
||||
* **11.09.22:** - Migrate to s6v3.
|
||||
* **03.05.22:** - Rebase to Jammy.
|
||||
* **03.23.22:** - Upgrade JRE to 17, rebase to ubuntu.
|
||||
* **18.04.22:** - Rebase to Alpine 3.15.
|
||||
* **01.05.20:** - Reorganize container, Relocate app to /app/nzbhydra2/bin, Create /app/nzbhydra2/package_info, Use nzbhydra2wrapperPy3.py from zip.
|
||||
* **14.04.20:** - Correct Name, Hydra2 -> NZBHydra2.
|
||||
* **29.04.20:** - Include stable releases incrementally with dev releases.
|
||||
* **14.04.20:** - Correct Name, Hydra2 -> Nzbhydra2.
|
||||
* **08.01.20:** - Switch to python3.
|
||||
* **05.01.20:** - Add dev tag for prereleases.
|
||||
* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
|
||||
|
||||
+5
-7
@@ -1,13 +1,12 @@
|
||||
---
|
||||
|
||||
# jenkins variables
|
||||
project_name: docker-nzbhydra2
|
||||
external_type: github_stable
|
||||
release_type: stable
|
||||
release_tag: latest
|
||||
ls_branch: master
|
||||
external_type: github_devel
|
||||
release_type: prerelease
|
||||
release_tag: dev
|
||||
ls_branch: dev
|
||||
repo_vars:
|
||||
- EXT_GIT_BRANCH = 'master'
|
||||
- EXT_GIT_BRANCH = 'develop'
|
||||
- EXT_USER = 'theotherp'
|
||||
- EXT_REPO = 'nzbhydra2'
|
||||
- BUILD_VERSION_ARG = 'NZBHYDRA2_RELEASE'
|
||||
@@ -29,4 +28,3 @@ repo_vars:
|
||||
- CI_WEBPATH='/system/about'
|
||||
sponsor_links:
|
||||
- { name: "NZBHydra 2", url: "https://github.com/theotherp/nzbhydra2#donate" }
|
||||
|
||||
|
||||
+70
-70
@@ -2,40 +2,40 @@ NAME VERSION TYPE
|
||||
adduser 3.137ubuntu1 deb
|
||||
apt 2.8.3 deb
|
||||
apt-utils 2.8.3 deb
|
||||
base-files 13ubuntu10.4 deb
|
||||
base-files 13ubuntu10.3 deb
|
||||
base-passwd 3.6.3build1 deb
|
||||
bash 5.2.21-2ubuntu4 deb
|
||||
bsdutils 1:2.39.3-9ubuntu6.5 deb
|
||||
ca-certificates 20260601~24.04.1 deb
|
||||
bsdutils 1:2.39.3-9ubuntu6.3 deb
|
||||
ca-certificates 20240203 deb
|
||||
catatonit 0.1.7-1 deb
|
||||
coreutils 9.4-3ubuntu6.2 deb
|
||||
coreutils 9.4-3ubuntu6 deb
|
||||
cron 3.0pl1-184ubuntu2 deb
|
||||
cron-daemon-common 3.0pl1-184ubuntu2 deb
|
||||
curl 8.5.0-2ubuntu10.10 deb
|
||||
curl 8.5.0-2ubuntu10.6 deb
|
||||
dash 0.5.12-6ubuntu5 deb
|
||||
debconf 1.5.86ubuntu1 deb
|
||||
debianutils 5.17build1 deb
|
||||
diffutils 1:3.10-1build1 deb
|
||||
dirmngr 2.4.4-2ubuntu17.4 deb
|
||||
dpkg 1.22.6ubuntu6.6 deb
|
||||
dirmngr 2.4.4-2ubuntu17.3 deb
|
||||
dpkg 1.22.6ubuntu6.1 deb
|
||||
e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
findutils 4.9.0-5build1 deb
|
||||
gcc-14-base 14.2.0-4ubuntu2~24.04.1 deb
|
||||
gnupg 2.4.4-2ubuntu17.4 deb
|
||||
gnupg-l10n 2.4.4-2ubuntu17.4 deb
|
||||
gnupg-utils 2.4.4-2ubuntu17.4 deb
|
||||
gpg 2.4.4-2ubuntu17.4 deb
|
||||
gpg-agent 2.4.4-2ubuntu17.4 deb
|
||||
gpg-wks-client 2.4.4-2ubuntu17.4 deb
|
||||
gpgconf 2.4.4-2ubuntu17.4 deb
|
||||
gpgsm 2.4.4-2ubuntu17.4 deb
|
||||
gpgv 2.4.4-2ubuntu17.4 deb
|
||||
gcc-14-base 14.2.0-4ubuntu2~24.04 deb
|
||||
gnupg 2.4.4-2ubuntu17.3 deb
|
||||
gnupg-l10n 2.4.4-2ubuntu17.3 deb
|
||||
gnupg-utils 2.4.4-2ubuntu17.3 deb
|
||||
gpg 2.4.4-2ubuntu17.3 deb
|
||||
gpg-agent 2.4.4-2ubuntu17.3 deb
|
||||
gpg-wks-client 2.4.4-2ubuntu17.3 deb
|
||||
gpgconf 2.4.4-2ubuntu17.3 deb
|
||||
gpgsm 2.4.4-2ubuntu17.3 deb
|
||||
gpgv 2.4.4-2ubuntu17.3 deb
|
||||
grep 3.11-4build1 deb
|
||||
gzip 1.12-1ubuntu3.2 deb
|
||||
gzip 1.12-1ubuntu3.1 deb
|
||||
hostname 3.23+nmu2ubuntu2 deb
|
||||
init-system-helpers 1.66ubuntu1 deb
|
||||
jq 1.7.1-3ubuntu0.24.04.2 deb
|
||||
keyboxd 2.4.4-2ubuntu17.4 deb
|
||||
jq 1.7.1-3ubuntu0.24.04.1 deb
|
||||
keyboxd 2.4.4-2ubuntu17.3 deb
|
||||
krb5-locales 1.20.1-6ubuntu2.6 deb
|
||||
libacl1 2.3.2-1build1.1 deb
|
||||
libapt-pkg6.0t64 2.8.3 deb
|
||||
@@ -43,60 +43,60 @@ libassuan0 2.5.6-1build1 deb
|
||||
libattr1 1:2.5.2-1build1.1 deb
|
||||
libaudit-common 1:3.1.2-2.1build1.1 deb
|
||||
libaudit1 1:3.1.2-2.1build1.1 deb
|
||||
libblkid1 2.39.3-9ubuntu6.5 deb
|
||||
libblkid1 2.39.3-9ubuntu6.3 deb
|
||||
libbrotli1 1.1.0-2build2 deb
|
||||
libbsd0 0.12.1-1build1.1 deb
|
||||
libbz2-1.0 1.0.8-5.1build0.1 deb
|
||||
libc-bin 2.39-0ubuntu8.7 deb
|
||||
libc6 2.39-0ubuntu8.7 deb
|
||||
libc-bin 2.39-0ubuntu8.5 deb
|
||||
libc6 2.39-0ubuntu8.5 deb
|
||||
libcap-ng0 0.8.4-2build2 deb
|
||||
libcap2 1:2.66-5ubuntu2.4 deb
|
||||
libcap2 1:2.66-5ubuntu2.2 deb
|
||||
libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
libcrypt1 1:4.4.36-4build1 deb
|
||||
libcurl4t64 8.5.0-2ubuntu10.10 deb
|
||||
libcurl4t64 8.5.0-2ubuntu10.6 deb
|
||||
libdb5.3t64 5.3.28+dfsg2-7 deb
|
||||
libdebconfclient0 0.271ubuntu3 deb
|
||||
libexpat1 2.6.1-2ubuntu0.4 deb
|
||||
libexpat1 2.6.1-2ubuntu0.3 deb
|
||||
libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
libffi8 3.4.6-1build1 deb
|
||||
libfreetype6 2.13.2+dfsg-1ubuntu0.1 deb
|
||||
libgcc-s1 14.2.0-4ubuntu2~24.04.1 deb
|
||||
libgcrypt20 1.10.3-2ubuntu0.1 deb
|
||||
libfreetype6 2.13.2+dfsg-1build3 deb
|
||||
libgcc-s1 14.2.0-4ubuntu2~24.04 deb
|
||||
libgcrypt20 1.10.3-2build1 deb
|
||||
libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb
|
||||
libgnutls30t64 3.8.3-1.1ubuntu3.6 deb
|
||||
libgnutls30t64 3.8.3-1.1ubuntu3.4 deb
|
||||
libgpg-error0 1.47-3build2.1 deb
|
||||
libgssapi-krb5-2 1.20.1-6ubuntu2.6 deb
|
||||
libhogweed6t64 3.9.1-2.2build1.1 deb
|
||||
libidn2-0 2.3.7-2build1.1 deb
|
||||
libjq1 1.7.1-3ubuntu0.24.04.2 deb
|
||||
libjq1 1.7.1-3ubuntu0.24.04.1 deb
|
||||
libk5crypto3 1.20.1-6ubuntu2.6 deb
|
||||
libkeyutils1 1.6.3-3build1 deb
|
||||
libkrb5-3 1.20.1-6ubuntu2.6 deb
|
||||
libkrb5support0 1.20.1-6ubuntu2.6 deb
|
||||
libksba8 1.6.6-1build1 deb
|
||||
libldap-common 2.6.10+dfsg-0ubuntu0.24.04.1 deb
|
||||
libldap2 2.6.10+dfsg-0ubuntu0.24.04.1 deb
|
||||
libldap-common 2.6.7+dfsg-1~exp1ubuntu8.2 deb
|
||||
libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb
|
||||
liblz4-1 1.9.4-1build1.1 deb
|
||||
liblzma5 5.6.1+really5.4.5-1ubuntu0.3 deb
|
||||
liblzma5 5.6.1+really5.4.5-1ubuntu0.2 deb
|
||||
libmd0 1.1.0-2build1.1 deb
|
||||
libmount1 2.39.3-9ubuntu6.5 deb
|
||||
libncursesw6 6.4+20240113-1ubuntu2.1 deb
|
||||
libmount1 2.39.3-9ubuntu6.3 deb
|
||||
libncursesw6 6.4+20240113-1ubuntu2 deb
|
||||
libnettle8t64 3.9.1-2.2build1.1 deb
|
||||
libnghttp2-14 1.59.0-1ubuntu0.4 deb
|
||||
libnghttp2-14 1.59.0-1ubuntu0.2 deb
|
||||
libnpth0t64 1.6-3.1build1 deb
|
||||
libonig5 6.9.9-1build1 deb
|
||||
libp11-kit0 0.25.3-4ubuntu2.1 deb
|
||||
libpam-modules 1.5.3-5ubuntu5.5 deb
|
||||
libpam-modules-bin 1.5.3-5ubuntu5.5 deb
|
||||
libpam-runtime 1.5.3-5ubuntu5.5 deb
|
||||
libpam0g 1.5.3-5ubuntu5.5 deb
|
||||
libpam-modules 1.5.3-5ubuntu5.4 deb
|
||||
libpam-modules-bin 1.5.3-5ubuntu5.4 deb
|
||||
libpam-runtime 1.5.3-5ubuntu5.4 deb
|
||||
libpam0g 1.5.3-5ubuntu5.4 deb
|
||||
libpcre2-8-0 10.42-4ubuntu2.1 deb
|
||||
libpng16-16t64 1.6.43-5ubuntu0.6 deb
|
||||
libpng16-16t64 1.6.43-5build1 deb
|
||||
libproc2-0 2:4.0.4-4ubuntu3.2 deb
|
||||
libpsl5t64 0.21.2-1.1build1 deb
|
||||
libpython3-stdlib 3.12.3-0ubuntu2.1 deb
|
||||
libpython3.12-minimal 3.12.3-1ubuntu0.15 deb
|
||||
libpython3.12-stdlib 3.12.3-1ubuntu0.15 deb
|
||||
libpython3-stdlib 3.12.3-0ubuntu2 deb
|
||||
libpython3.12-minimal 3.12.3-1ubuntu0.8 deb
|
||||
libpython3.12-stdlib 3.12.3-1ubuntu0.8 deb
|
||||
libreadline8t64 8.2-4build1 deb
|
||||
librtmp1 2.4+20151223.gitfa8646d.1-2build7 deb
|
||||
libsasl2-2 2.1.28+dfsg1-5ubuntu3.1 deb
|
||||
@@ -107,49 +107,49 @@ libselinux1 3.5-2ubuntu2.1 deb
|
||||
libsemanage-common 3.5-1build5 deb
|
||||
libsemanage2 3.5-1build5 deb
|
||||
libsepol2 3.5-2build1 deb
|
||||
libsmartcols1 2.39.3-9ubuntu6.5 deb
|
||||
libsqlite3-0 3.45.1-1ubuntu2.6 deb
|
||||
libsmartcols1 2.39.3-9ubuntu6.3 deb
|
||||
libsqlite3-0 3.45.1-1ubuntu2.4 deb
|
||||
libss2 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
libssh-4 0.10.6-2ubuntu0.4 deb
|
||||
libssl3t64 3.0.13-0ubuntu3.11 deb
|
||||
libstdc++6 14.2.0-4ubuntu2~24.04.1 deb
|
||||
libsystemd0 255.4-1ubuntu8.16 deb
|
||||
libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb
|
||||
libtinfo6 6.4+20240113-1ubuntu2.1 deb
|
||||
libudev1 255.4-1ubuntu8.16 deb
|
||||
libssh-4 0.10.6-2ubuntu0.1 deb
|
||||
libssl3t64 3.0.13-0ubuntu3.5 deb
|
||||
libstdc++6 14.2.0-4ubuntu2~24.04 deb
|
||||
libsystemd0 255.4-1ubuntu8.10 deb
|
||||
libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb
|
||||
libtinfo6 6.4+20240113-1ubuntu2 deb
|
||||
libudev1 255.4-1ubuntu8.10 deb
|
||||
libunistring5 1.1-2build1.1 deb
|
||||
libuuid1 2.39.3-9ubuntu6.5 deb
|
||||
libuuid1 2.39.3-9ubuntu6.3 deb
|
||||
libxxhash0 0.8.2-2build1 deb
|
||||
libzstd1 1.5.5+dfsg2-2build1.1 deb
|
||||
locales 2.39-0ubuntu8.7 deb
|
||||
locales 2.39-0ubuntu8.5 deb
|
||||
login 1:4.13+dfsg1-4ubuntu3.2 deb
|
||||
logsave 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
mawk 1.3.4.20240123-1build1 deb
|
||||
media-types 10.1.0 deb
|
||||
mount 2.39.3-9ubuntu6.5 deb
|
||||
ncurses-base 6.4+20240113-1ubuntu2.1 deb
|
||||
ncurses-bin 6.4+20240113-1ubuntu2.1 deb
|
||||
mount 2.39.3-9ubuntu6.3 deb
|
||||
ncurses-base 6.4+20240113-1ubuntu2 deb
|
||||
ncurses-bin 6.4+20240113-1ubuntu2 deb
|
||||
netbase 6.4 deb
|
||||
netcat-openbsd 1.226-1ubuntu2 deb
|
||||
openssl 3.0.13-0ubuntu3.11 deb
|
||||
openssl 3.0.13-0ubuntu3.5 deb
|
||||
passwd 1:4.13+dfsg1-4ubuntu3.2 deb
|
||||
perl-base 5.38.2-3.2ubuntu0.3 deb
|
||||
perl-base 5.38.2-3.2ubuntu0.2 deb
|
||||
pinentry-curses 1.2.1-3ubuntu5 deb
|
||||
procps 2:4.0.4-4ubuntu3.2 deb
|
||||
publicsuffix 20231001.0357-0.1 deb
|
||||
python3 3.12.3-0ubuntu2.1 deb
|
||||
python3-minimal 3.12.3-0ubuntu2.1 deb
|
||||
python3.12 3.12.3-1ubuntu0.15 deb
|
||||
python3.12-minimal 3.12.3-1ubuntu0.15 deb
|
||||
python3 3.12.3-0ubuntu2 deb
|
||||
python3-minimal 3.12.3-0ubuntu2 deb
|
||||
python3.12 3.12.3-1ubuntu0.8 deb
|
||||
python3.12-minimal 3.12.3-1ubuntu0.8 deb
|
||||
readline-common 8.2-4build1 deb
|
||||
sed 4.9-2ubuntu0.24.04.1 deb
|
||||
sed 4.9-2build1 deb
|
||||
sensible-utils 0.0.22 deb
|
||||
systemd-standalone-sysusers 255.4-1ubuntu8.16 deb
|
||||
systemd-standalone-sysusers 255.4-1ubuntu8.10 deb
|
||||
sysvinit-utils 3.08-6ubuntu3 deb
|
||||
tar 1.35+dfsg-3ubuntu0.2 deb
|
||||
tzdata 2026a-0ubuntu0.24.04.1 deb
|
||||
tar 1.35+dfsg-3build1 deb
|
||||
tzdata 2025b-0ubuntu0.24.04.1 deb
|
||||
ubuntu-keyring 2023.11.28.1 deb
|
||||
unminimize 0.2.1 deb
|
||||
unzip 6.0-28ubuntu4.1 deb
|
||||
util-linux 2.39.3-9ubuntu6.5 deb
|
||||
util-linux 2.39.3-9ubuntu6.3 deb
|
||||
zlib1g 1:1.3.dfsg-3.1ubuntu2.1 deb
|
||||
|
||||
+8
-10
@@ -5,11 +5,10 @@ project_name: nzbhydra2
|
||||
project_url: "https://github.com/theotherp/nzbhydra2"
|
||||
project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/hydra-icon.png"
|
||||
project_blurb: |
|
||||
[{{ project_name|capitalize }}]({{ project_url }}) is a meta search application for NZB indexers, the spiritual successor to NZBmegasearcH, and an evolution of the original application [NZBHydra](https://github.com/theotherp/nzbhydra).
|
||||
[{{ project_name|capitalize }}]({{ project_url }}) is a meta search application for NZB indexers, the "spiritual successor" to NZBmegasearcH, and an evolution of the original application [NZBHydra](https://github.com/theotherp/nzbhydra).
|
||||
|
||||
It provides easy access to a number of raw and newznab based indexers.
|
||||
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
|
||||
project_categories: "Indexers"
|
||||
# supported architectures
|
||||
available_architectures:
|
||||
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
|
||||
@@ -34,10 +33,10 @@ opt_param_volumes:
|
||||
# application setup block
|
||||
app_setup_block_enabled: true
|
||||
app_setup_block: |
|
||||
The web interface is at `<your ip>:5076` , to set up indexers and connections to your nzb download applications.
|
||||
The web interface is at `<your ip>:5076`, to set up indexers and connections to your nzb download applications.
|
||||
# init diagram
|
||||
init_diagram: |
|
||||
"nzbhydra2:latest": {
|
||||
"nzbhydra2:dev": {
|
||||
docker-mods
|
||||
base {
|
||||
fix-attr +\nlegacy cont-init
|
||||
@@ -75,19 +74,18 @@ init_diagram: |
|
||||
Base Images: {
|
||||
"baseimage-ubuntu:noble"
|
||||
}
|
||||
"nzbhydra2:latest" <- Base Images
|
||||
"nzbhydra2:dev" <- Base Images
|
||||
# changelog
|
||||
changelogs:
|
||||
- {date: "18.07.24:", desc: "Rebase to Ubuntu Noble. Remove standalone JRE ([#46](https://github.com/linuxserver/docker-nzbhydra2/pull/46))."}
|
||||
- {date: "18.07.24:", desc: "Rebase to Ubuntu Noble. Remove standalone JRE ([#47](https://github.com/linuxserver/docker-nzbhydra2/pull/47))."}
|
||||
- {date: "04.07.23:", desc: "Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf)"}
|
||||
- {date: "22.01.23:", desc: "Update release URL for arch-specific packages."}
|
||||
- {date: "20.01.23:", desc: "Update dependencies for v5."}
|
||||
- {date: "10.12.22:", desc: "Bump master JRE to v17. Default mapIpToHost to false."}
|
||||
- {date: "11.09.22:", desc: "Migrate to s6v3."}
|
||||
- {date: "03.05.22:", desc: "Rebase to Jammy."}
|
||||
- {date: "03.23.22:", desc: "Upgrade JRE to 17, rebase to ubuntu."}
|
||||
- {date: "18.04.22:", desc: "Rebase to Alpine 3.15."}
|
||||
- {date: "01.05.20:", desc: "Reorganize container, Relocate app to /app/nzbhydra2/bin, Create /app/nzbhydra2/package_info, Use nzbhydra2wrapperPy3.py from zip."}
|
||||
- {date: "14.04.20:", desc: "Correct Name, Hydra2 -> NZBHydra2."}
|
||||
- {date: "29.04.20:", desc: "Include stable releases incrementally with dev releases."}
|
||||
- {date: "14.04.20:", desc: "Correct Name, Hydra2 -> Nzbhydra2."}
|
||||
- {date: "08.01.20:", desc: "Switch to python3."}
|
||||
- {date: "05.01.20:", desc: "Add dev tag for prereleases."}
|
||||
- {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."}
|
||||
|
||||
Executable → Regular
Reference in New Issue
Block a user