Compare commits

..
Author SHA1 Message Date
LinuxServer-CI 85cf6f780f Bot Updating Package Versions 2022-07-03 11:14:44 +02:00
LinuxServer-CI ddc0e9ce0e Bot Updating Package Versions 2022-06-26 11:13:48 +02:00
LinuxServer-CI 92365cf2de Bot Updating Package Versions 2022-06-15 14:48:02 +02:00
LinuxServer-CI aece1a8937 Bot Updating Package Versions 2022-06-05 04:12:53 -05:00
LinuxServer-CI 88bb318d56 Bot Updating Package Versions 2022-05-29 04:14:50 -05:00
LinuxServer-CI f320f05cd6 Bot Updating Package Versions 2022-05-15 11:15:26 +02:00
LinuxServer-CI a24bb0d8b9 Bot Updating Package Versions 2022-05-03 14:41:27 -05:00
AdamandGitHub 400f4c26f1 Merge pull request #19 from linuxserver/master-jammy 2022-05-03 20:38:16 +01:00
TheSpad cd2552ce2a Rebase to Jammy 2022-05-03 13:36:22 +01:00
LinuxServer-CI da5b2c50fd Bot Updating Templated Files 2022-05-02 11:37:15 -05:00
LinuxServer-CI 103ffb7d12 Bot Updating Package Versions 2022-05-01 11:17:32 +02:00
LinuxServer-CI aa15c8682b Bot Updating Templated Files 2022-05-01 04:15:01 -05:00
LinuxServer-CI f2f8e6f9b1 Bot Updating Templated Files 2022-05-01 11:13:42 +02:00
LinuxServer-CI cd08ffb2b5 Bot Updating Package Versions 2022-04-21 13:54:49 +02:00
LinuxServer-CI e96ef6d848 Bot Updating Templated Files 2022-04-21 13:52:21 +02:00
LinuxServer-CI 72ba61fc54 Bot Updating Templated Files 2022-04-21 13:51:09 +02:00
AdamandGitHub 9910f5f282 Merge pull request #15 from linuxserver/alpine 2022-04-21 12:49:57 +01:00
TheSpad a530f53059 Rebase to Alpine 3.15 2022-04-18 21:41:45 +01:00
LinuxServer-CI 7e9080c059 Bot Updating Package Versions 2022-04-17 04:15:47 -05:00
LinuxServer-CI 4d2142ccdc Bot Updating Package Versions 2022-04-03 11:14:07 +02:00
LinuxServer-CI d98cc96b44 Bot Updating Package Versions 2022-03-24 07:23:23 +00:00
LinuxServer-CI 520d0fce6a Bot Updating Package Versions 2022-03-13 10:13:10 +01:00
LinuxServer-CI c7ca960685 Bot Updating Package Versions 2022-03-04 09:30:10 +01:00
LinuxServer-CI 678022a72e Bot Updating Package Versions 2022-02-27 10:13:22 +01:00
LinuxServer-CI 3f6d309d80 Bot Updating Package Versions 2022-02-06 10:12:14 +01:00
LinuxServer-CI 43c1c77dfd Bot Updating Package Versions 2022-01-16 10:13:30 +01:00
LinuxServer-CI 534b9a7a88 Bot Updating Package Versions 2021-12-26 10:13:32 +01:00
LinuxServer-CI 17aec3dbf1 Bot Updating Package Versions 2021-12-19 10:16:45 +01:00
LinuxServer-CI a71046d34c Bot Updating Templated Files 2021-12-19 10:13:42 +01:00
LinuxServer-CI 3b09082ce2 Bot Updating Templated Files 2021-12-19 10:12:25 +01:00
LinuxServer-CI aefefc88aa Bot Updating Package Versions 2021-12-01 21:30:00 +01:00
LinuxServer-CI 8bc3c18128 Bot Updating Package Versions 2021-11-07 10:13:00 +01:00
LinuxServer-CI 718fdfd0ec Bot Updating Package Versions 2021-10-17 11:11:51 +02:00
LinuxServer-CI d792d2d323 Bot Updating Package Versions 2021-10-03 11:15:51 +02:00
LinuxServer-CI 368b3df136 Bot Updating Templated Files 2021-10-03 11:12:09 +02:00
LinuxServer-CI bc9b601144 Bot Updating Templated Files 2021-10-03 11:11:08 +02:00
LinuxServer-CI d680a9d0e2 Bot Updating Package Versions 2021-09-26 11:11:30 +02:00
LinuxServer-CI 25b0fd8606 Bot Updating Package Versions 2021-09-19 11:11:39 +02:00
LinuxServer-CI 4b87c04fac Bot Updating Package Versions 2021-09-05 11:11:42 +02:00
LinuxServer-CI 6eafd96f2f Bot Updating Templated Files 2021-08-27 18:32:51 +02:00
LinuxServer-CI b21bdec711 Bot Updating Package Versions 2021-08-22 11:12:58 +02:00
LinuxServer-CI b5736bb12a Bot Updating Package Versions 2021-08-05 18:36:12 +02:00
LinuxServer-CI b3601ffc01 Bot Updating Package Versions 2021-08-01 11:14:00 +02:00
LinuxServer-CI 02dc6a16fa Bot Updating Package Versions 2021-07-25 11:14:21 +02:00
LinuxServer-CI f4dbddeb4b Bot Updating Package Versions 2021-07-10 10:26:13 +00:00
LinuxServer-CI e47e79801b Bot Updating Package Versions 2021-07-04 09:25:47 +00:00
LinuxServer-CI 46d7e3a221 Bot Updating Templated Files 2021-07-04 09:13:00 +00:00
LinuxServer-CI 34fb5897af Bot Updating Templated Files 2021-07-04 09:11:28 +00:00
LinuxServer-CI 1cd8c66131 Bot Updating Package Versions 2021-06-13 05:18:28 -04:00
LinuxServer-CI 262fad1c50 Bot Updating Package Versions 2021-05-23 02:45:15 -04:00
LinuxServer-CI e9bbad1193 Bot Updating Package Versions 2021-05-02 09:28:08 +00:00
LinuxServer-CI 404ab4b551 Bot Updating Package Versions 2021-04-22 10:35:30 +00:00
LinuxServer-CI 99f2f154d5 Bot Updating Package Versions 2021-04-18 10:28:21 +01:00
LinuxServer-CI 92546ff830 Bot Updating Templated Files 2021-04-18 09:19:00 +00:00
LinuxServer-CI e50d6cae43 Bot Updating Templated Files 2021-04-18 05:17:29 -04:00
LinuxServer-CI ceb192e9e4 Bot Updating Package Versions 2021-04-11 09:23:28 +00:00
LinuxServer-CI 6bc404ce26 Bot Updating Package Versions 2021-04-04 10:23:13 +01:00
LinuxServer-CI e512705769 Bot Updating Package Versions 2021-03-28 09:24:14 +00:00
LinuxServer-CI 719c7f7363 Bot Updating Package Versions 2021-03-20 18:42:52 +00:00
LinuxServer-CI 3fd2c6f545 Bot Updating Package Versions 2021-03-10 07:40:53 -05:00
LinuxServer-CI 68a50f9a6b Bot Updating Package Versions 2021-02-28 09:19:22 +00:00
LinuxServer-CI ebea843010 Bot Updating Package Versions 2021-02-23 16:27:02 -05:00
LinuxServer-CI 87ca0c66d5 Bot Updating Package Versions 2021-02-13 11:31:58 +00:00
LinuxServer-CI 1d53de44f0 Bot Updating Templated Files 2021-02-13 11:24:19 +00:00
LinuxServer-CI b803ecca4d Bot Updating Templated Files 2021-02-13 06:23:01 -05:00
LinuxServer-CI 763a1bbebf Bot Updating Package Versions 2021-02-07 09:19:41 +00:00
LinuxServer-CI 9b1fef364b Bot Updating Package Versions 2021-01-29 13:40:39 +00:00
LinuxServer-CI dcedab9ee6 Bot Updating Package Versions 2021-01-24 04:51:43 -05:00
LinuxServer-CI 5fa2e3c7c2 Bot Updating Package Versions 2021-01-16 12:59:09 +00:00
LinuxServer-CI 7b9330fa99 Bot Updating Templated Files 2021-01-16 12:51:50 +00:00
LinuxServer-CI 973ce9335e Bot Updating Package Versions 2021-01-09 10:51:29 +00:00
LinuxServer-CI b4f7614677 Bot Updating Package Versions 2020-12-19 07:39:37 -05:00
LinuxServer-CI 5eaa88e5d6 Bot Updating Package Versions 2020-12-16 18:53:44 +00:00
LinuxServer-CI bd6136e12f Bot Updating Templated Files 2020-12-16 18:50:19 +00:00
LinuxServer-CI 32953e5ed2 Bot Updating Templated Files 2020-12-16 13:48:41 -05:00
LinuxServer-CI 273077ddd7 Bot Updating Package Versions 2020-12-14 13:08:00 -05:00
LinuxServer-CI 63f815bf25 Bot Updating Package Versions 2020-12-06 04:10:22 +00:00
LinuxServer-CI 8333572eae Bot Updating Package Versions 2020-11-15 16:08:37 +00:00
LinuxServer-CI 66baf5fd4e Bot Updating Package Versions 2020-11-02 15:11:47 +00:00
LinuxServer-CI faf6fcd9b3 Bot Updating Templated Files 2020-11-02 15:04:37 +00:00
thelamer ccdbc0d1fc update baseimages 2020-11-02 07:02:16 -08:00
LinuxServer-CI 8b4c553f3d Bot Updating Package Versions 2020-10-31 20:09:09 +00:00
LinuxServer-CI be04065f0e Bot Updating Package Versions 2020-10-20 16:07:30 -04:00
LinuxServer-CI fdb433e87f Bot Updating Package Versions 2020-10-19 23:10:27 -04:00
LinuxServer-CI 215efd2683 Bot Updating Templated Files 2020-10-19 23:04:07 -04:00
LinuxServer-CI fe43937cdf Bot Updating Templated Files 2020-10-19 23:02:59 -04:00
LinuxServer-CI a50098880d Bot Updating Package Versions 2020-09-12 05:07:15 -04:00
LinuxServer-CI 58ff104718 Bot Updating Package Versions 2020-09-03 16:49:41 -04:00
LinuxServer-CI 21a878c5bd Bot Updating Package Versions 2020-09-01 07:09:06 +00:00
LinuxServer-CI 85bf67cb5f Bot Updating Package Versions 2020-08-24 21:10:53 +00:00
LinuxServer-CI c7fae073c6 Bot Updating Templated Files 2020-08-24 17:04:24 -04:00
LinuxServer-CI 758ccc1e9a Bot Updating Templated Files 2020-08-24 21:03:26 +00:00
LinuxServer-CI 6c170cc8bf Bot Updating Package Versions 2020-07-03 01:07:47 -04:00
LinuxServer-CI c344c0e7bb Bot Updating Package Versions 2020-06-29 21:08:09 +00:00
LinuxServer-CI 03bb57a915 Bot Updating Package Versions 2020-06-03 12:08:27 -04:00
LinuxServer-CI 368e3c2828 Bot Updating Templated Files 2020-06-03 16:03:16 +00:00
LinuxServer-CI 4ce6db323d Bot Updating Package Versions 2020-05-31 13:19:41 +00:00
LinuxServer-CI 72aee7d2df Bot Updating Templated Files 2020-05-31 09:14:24 -04:00
LinuxServer-CI 2a8b9fb145 Bot Updating Package Versions 2020-05-20 16:07:57 -04:00
LinuxServer-CI 4ed02aba6d Bot Updating Package Versions 2020-05-13 19:07:12 +02:00
Eric NemchikandGitHub 1d213f19e8 Merge pull request #8 from linuxserver/package_info-master
Reorganize container master
2020-05-01 17:57:08 -05:00
Eric Nemchik f12a86f620 Remove UpdateMethod 2020-05-01 13:55:31 -05:00
Eric Nemchik 56f374f59a Reorganize container
Relocate app to /app/nzbhydra2/bin
Create /app/nzbhydra2/package_info
Use nzbhydra2wrapperPy3.py from zip
2020-05-01 10:32:50 -05:00
LinuxServer-CI bd63218ebe Bot Updating Templated Files 2020-04-28 17:02:53 +00:00
LinuxServer-CI 6265517e19 Bot Updating Package Versions 2020-04-27 16:07:33 +00:00
LinuxServer-CI 7f13e9c443 Bot Updating Package Versions 2020-04-23 02:07:41 -04:00
LinuxServer-CI d926aee5e3 Bot Updating Package Versions 2020-04-15 02:50:14 +01:00
Eric NemchikandGitHub 5ac25f7d08 Merge pull request #1 from linuxserver/nzbhydra2
Correct Name
2020-04-14 20:40:57 -05:00
aptalcaandGitHub 3286b4d1fc Merge branch 'master' into nzbhydra2 2020-04-14 19:50:39 -04:00
Eric Nemchik f92bbc6011 Update changelog date 2020-04-14 17:17:43 -05:00
Eric Nemchik 7aeb6a3e34 Jenkins updates 2020-04-14 14:36:02 -05:00
LinuxServer-CI 421e722315 Bot Updating Templated Files 2020-04-14 14:42:02 -04:00
LinuxServer-CI 3c1cdfbb66 Bot Updating Templated Files 2020-04-14 14:40:57 -04:00
aptalcaandGitHub 98893cebc9 Merge pull request #34 from linuxserver/donate
Add donate link
2020-04-14 14:40:00 -04:00
Eric NemchikandGitHub f4b889dc7c Add donate link 2020-04-14 13:08:55 -05:00
LinuxServer-CI b612cd22f0 Bot Updating Package Versions 2020-04-10 05:51:30 -05:00
LinuxServer-CI 053b1ba5a8 Bot Updating Templated Files 2020-04-10 10:46:04 +00:00
LinuxServer-CI ef3efdc5bc Bot Updating Package Versions 2020-03-27 11:58:27 +00:00
LinuxServer-CI 55a4c014f3 Bot Updating Package Versions 2020-03-20 12:49:29 +01:00
LinuxServer-CI 6add88a07a Bot Updating Package Versions 2020-03-13 13:02:45 +01:00
LinuxServer-CI d79b2c963a Bot Updating Package Versions 2020-02-19 18:26:02 +00:00
LinuxServer-CI 6de658a24b Bot Updating Package Versions 2020-02-12 12:49:34 -05:00
Eric Nemchik c514b9c7ff Correct Name 2020-02-12 11:22:33 -06:00
LinuxServer-CI 6e73b38915 Bot Updating Package Versions 2020-02-06 15:13:37 +00:00
LinuxServer-CI 8fb719df38 Bot Updating Package Versions 2020-01-31 11:49:42 +00:00
LinuxServer-CI f7951c52ef Bot Updating Package Versions 2020-01-24 06:50:48 -05:00
LinuxServer-CI 27f878f932 Bot Updating Package Versions 2020-01-20 12:10:37 -05:00
LinuxServer-CI 87041b87f8 Bot Updating Templated Files 2020-01-20 12:04:29 -05:00
RoxedusandRyan Kuba 1281cb7048 Update readme-vars.yml
Remove beta state of the application. 
Added migration note based on @iXNyNe's comment in the discord server
discordapp.com/channels/354974912613449730/506925392603512839/664936745862823987
2020-01-20 09:02:52 -08:00
LinuxServer-CI d59e06317d Bot Updating Package Versions 2020-01-15 16:22:27 -05:00
LinuxServer-CI 5df31b5700 Bot Updating Package Versions 2020-01-12 19:26:36 +00:00
LinuxServer-CI fcb52a9093 Bot Updating Templated Files 2020-01-12 20:16:51 +01:00
Eric NemchikandRyan Kuba 501d213242 Use nzbhydra2wrapperPy3.py 2020-01-12 11:15:51 -08:00
Eric NemchikandRyan Kuba d659263231 switch to python3 2020-01-12 11:15:51 -08:00
LinuxServer-CI b34e11688a Bot Updating Package Versions 2020-01-10 11:50:18 +00:00
saargandGitHub dbf0b36f49 Merge pull request #27 from linuxserver/readme
Add dev tag
2020-01-07 00:06:22 +01:00
aptalca 476d98f2e3 Add dev tag 2020-01-05 11:40:07 -05:00
38 changed files with 667 additions and 738 deletions
+1 -1
View File
@@ -15,6 +15,6 @@ trim_trailing_whitespace = false
indent_style = space
indent_size = 2
[{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}]
[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space
indent_size = 4
+2 -2
View File
@@ -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/dev/readme-vars.yml).
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-nzbhydra2/edit/master/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/dev/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/master/root), add an entry to the changelog
```yml
changelogs:
+40
View File
@@ -0,0 +1,40 @@
---
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 nzbhydra2" -->
-76
View File
@@ -1,76 +0,0 @@
# 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
@@ -0,0 +1,25 @@
---
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
@@ -1,31 +0,0 @@
# 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
+1 -1
View File
@@ -21,7 +21,7 @@
------------------------------
- [ ] 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
- [ ] 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
------------------------------
@@ -1,16 +0,0 @@
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
@@ -1,13 +0,0 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: '15 8 * * *'
workflow_dispatch:
jobs:
stale:
permissions:
issues: write
pull-requests: write
uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1
secrets: inherit
+15 -27
View File
@@ -4,26 +4,24 @@ on:
workflow_dispatch:
jobs:
external-trigger-dev:
external-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v2.3.3
- name: External Trigger
if: github.ref == 'refs/heads/dev'
if: github.ref == 'refs/heads/master'
run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_NZBHYDRA2_DEV }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_NZBHYDRA2_DEV is set; skipping trigger. ****"
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_NZBHYDRA2_DEV\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_NZBHYDRA2_MASTER }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_NZBHYDRA2_MASTER is set; skipping trigger. ****"
exit 0
fi
echo "**** External trigger running off of dev branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_NZBHYDRA2_DEV\". ****"
echo "External trigger running off of dev branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_NZBHYDRA2_DEV\`" >> $GITHUB_STEP_SUMMARY
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_NZBHYDRA2_MASTER\". ****"
echo "**** Retrieving external version ****"
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')
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')
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for nzbhydra2 branch dev"
FAILURE_REASON="Can't retrieve external version for nzbhydra2 branch master"
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"}],
@@ -32,10 +30,9 @@ 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/nzbhydra2"
tag="dev"
tag="latest"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fnzbhydra2%3Apull" \
| jq -r '.token')
@@ -51,37 +48,29 @@ jobs:
| jq -r '.config.digest')
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"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
"https://ghcr.io/v2/${image}/blobs/${digest}" \
| jq -r '.container_config')
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
echo "**** Can't retrieve last pushed version, exiting ****"
FAILURE_REASON="Can't retrieve last pushed version for nzbhydra2 tag dev"
FAILURE_REASON="Can't retrieve last pushed version for nzbhydra2 tag latest"
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 }}
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-nzbhydra2/job/dev/lastBuild/api/json | jq -r '.building') == "true" ]; then
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/master/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-nzbhydra2/job/dev/buildWithParameters?PACKAGE_CHECK=false \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/master/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'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
@@ -89,7 +78,6 @@ 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" \
@@ -97,7 +85,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 dev. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
TRIGGER_REASON="A version change was detected for nzbhydra2 tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
@@ -2,14 +2,14 @@ name: External Trigger Scheduler
on:
schedule:
- cron: '37 * * * *'
- cron: '03 * * * *'
workflow_dispatch:
jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v2.3.3
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_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nzbhydra2/${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. ****"
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nzbhydra2/${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. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-nzbhydra2/${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,10 +36,8 @@ jobs:
https://api.github.com/repos/linuxserver/docker-nzbhydra2/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} 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
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
fi
done
+2 -2
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 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/dev/.github/PULL_REQUEST_TEMPLATE.md)!'
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-nzbhydra2/blob/master/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-nzbhydra2/blob/master/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
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)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}
+8 -12
View File
@@ -4,28 +4,25 @@ on:
workflow_dispatch:
jobs:
package-trigger-dev:
package-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v2.3.3
- name: Package Trigger
if: github.ref == 'refs/heads/dev'
if: github.ref == 'refs/heads/master'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_NZBHYDRA2_DEV }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_NZBHYDRA2_DEV is set; skipping trigger. ****"
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_NZBHYDRA2_DEV\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_NZBHYDRA2_MASTER }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_NZBHYDRA2_MASTER is set; skipping trigger. ****"
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/dev/lastBuild/api/json | jq -r '.building') == "true" ]; then
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/master/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 dev branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_NZBHYDRA2_DEV\". ****"
echo "Package trigger running off of dev branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_NZBHYDRA2_DEV\`" >> $GITHUB_STEP_SUMMARY
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_NZBHYDRA2_MASTER\". ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/dev/buildWithParameters?PACKAGE_CHECK=true \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/master/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
@@ -33,7 +30,6 @@ 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: '57 21 * * 3'
- cron: '01 9 * * 0'
workflow_dispatch:
jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v2.3.3
with:
fetch-depth: '0'
@@ -17,16 +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-nzbhydra2/${br}/jenkins-vars.yml | yq -r '.ls_branch')
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nzbhydra2/${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. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-nzbhydra2/${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 }}" \
@@ -36,11 +38,9 @@ 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
@@ -1,10 +0,0 @@
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
@@ -0,0 +1,23 @@
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 }}
+11 -24
View File
@@ -1,5 +1,3 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-ubuntu:jammy
# set version label
@@ -11,50 +9,39 @@ LABEL maintainer="nemchik"
# environment settings
ARG DEBIAN_FRONTEND="noninteractive"
ENV NZBHYDRA2_RELEASE_TYPE="Pre-Release"
ENV NZBHYDRA2_RELEASE_TYPE="Release"
RUN \
echo "**** install packages ****" && \
apt-get update && \
apt-get install --no-install-recommends -y \
libfreetype6 \
openjdk-17-jre-headless \
curl \
jq \
openjdk-11-jre-headless \
python3 \
unzip && \
echo "**** install nzbhydra2 ****" && \
if [ -z ${NZBHYDRA2_RELEASE+x} ]; then \
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" \
| jq -r '.[0] | .tag_name'); \
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases/latest" \
| jq -r .tag_name); \
fi && \
NZBHYDRA2_VER=${NZBHYDRA2_RELEASE#v} && \
curl -o \
/tmp/nzbhydra2.zip -L \
"https://github.com/theotherp/nzbhydra2/releases/download/v${NZBHYDRA2_VER}/nzbhydra2-${NZBHYDRA2_VER}-amd64-linux.zip" && \
mkdir -p /app/nzbhydra2 && \
unzip /tmp/nzbhydra2.zip -d /app/nzbhydra2 && \
chmod +x /app/nzbhydra2/nzbhydra2wrapperPy3.py && \
if [ -f /app/nzbhydra2/core ]; then chmod +x /app/nzbhydra2/core; fi && \
"https://github.com/theotherp/nzbhydra2/releases/download/v${NZBHYDRA2_VER}/nzbhydra2-${NZBHYDRA2_VER}-linux.zip" && \
mkdir -p /app/nzbhydra2/bin && \
unzip /tmp/nzbhydra2.zip -d /app/nzbhydra2/bin && \
chmod +x /app/nzbhydra2/bin/nzbhydra2wrapperPy3.py && \
echo "ReleaseType=${NZBHYDRA2_RELEASE_TYPE}\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/nzbhydra2/package_info && \
mkdir -p /defaults && \
curl -o \
/defaults/nzbhydra.yml -L \
"https://raw.githubusercontent.com/theotherp/nzbhydra2/v${NZBHYDRA2_VER}/core/src/main/resources/config/baseConfig.yml" && \
sed -i 's/mapIpToHost: true/mapIpToHost: false/' /defaults/nzbhydra.yml && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/* \
/var/log/* \
/app/nzbhydra2/upstart \
/app/nzbhydra2/rc.d \
/app/nzbhydra2/sysv \
/app/nzbhydra2/systemd
/var/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 5076
VOLUME /config
+11 -24
View File
@@ -1,5 +1,3 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-jammy
# set version label
@@ -11,50 +9,39 @@ LABEL maintainer="nemchik"
# environment settings
ARG DEBIAN_FRONTEND="noninteractive"
ENV NZBHYDRA2_RELEASE_TYPE="Pre-Release"
ENV NZBHYDRA2_RELEASE_TYPE="Release"
RUN \
echo "**** install packages ****" && \
apt-get update && \
apt-get install --no-install-recommends -y \
libfreetype6 \
openjdk-17-jre-headless \
curl \
jq \
openjdk-11-jre-headless \
python3 \
unzip && \
echo "**** install nzbhydra2 ****" && \
if [ -z ${NZBHYDRA2_RELEASE+x} ]; then \
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" \
| jq -r '.[0] | .tag_name'); \
NZBHYDRA2_RELEASE=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases/latest" \
| jq -r .tag_name); \
fi && \
NZBHYDRA2_VER=${NZBHYDRA2_RELEASE#v} && \
curl -o \
/tmp/nzbhydra2.zip -L \
"https://github.com/theotherp/nzbhydra2/releases/download/v${NZBHYDRA2_VER}/nzbhydra2-${NZBHYDRA2_VER}-arm64-linux.zip" && \
mkdir -p /app/nzbhydra2 && \
unzip /tmp/nzbhydra2.zip -d /app/nzbhydra2 && \
chmod +x /app/nzbhydra2/nzbhydra2wrapperPy3.py && \
if [ -f /app/nzbhydra2/core ]; then chmod +x /app/nzbhydra2/core; fi && \
"https://github.com/theotherp/nzbhydra2/releases/download/v${NZBHYDRA2_VER}/nzbhydra2-${NZBHYDRA2_VER}-linux.zip" && \
mkdir -p /app/nzbhydra2/bin && \
unzip /tmp/nzbhydra2.zip -d /app/nzbhydra2/bin && \
chmod +x /app/nzbhydra2/bin/nzbhydra2wrapperPy3.py && \
echo "ReleaseType=${NZBHYDRA2_RELEASE_TYPE}\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/nzbhydra2/package_info && \
mkdir -p /defaults && \
curl -o \
/defaults/nzbhydra.yml -L \
"https://raw.githubusercontent.com/theotherp/nzbhydra2/v${NZBHYDRA2_VER}/core/src/main/resources/config/baseConfig.yml" && \
sed -i 's/mapIpToHost: true/mapIpToHost: false/' /defaults/nzbhydra.yml && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/* \
/var/log/* \
/app/nzbhydra2/upstart \
/app/nzbhydra2/rc.d \
/app/nzbhydra2/sysv \
/app/nzbhydra2/systemd
/var/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 5076
VOLUME /config
+47
View File
@@ -0,0 +1,47 @@
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm32v7-jammy
# set version label
ARG BUILD_DATE
ARG VERSION
ARG NZBHYDRA2_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="nemchik"
# environment settings
ARG DEBIAN_FRONTEND="noninteractive"
ENV NZBHYDRA2_RELEASE_TYPE="Release"
RUN \
echo "**** install packages ****" && \
apt-get update && \
apt-get install --no-install-recommends -y \
curl \
jq \
openjdk-11-jre-headless \
python3 \
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); \
fi && \
NZBHYDRA2_VER=${NZBHYDRA2_RELEASE#v} && \
curl -o \
/tmp/nzbhydra2.zip -L \
"https://github.com/theotherp/nzbhydra2/releases/download/v${NZBHYDRA2_VER}/nzbhydra2-${NZBHYDRA2_VER}-linux.zip" && \
mkdir -p /app/nzbhydra2/bin && \
unzip /tmp/nzbhydra2.zip -d /app/nzbhydra2/bin && \
chmod +x /app/nzbhydra2/bin/nzbhydra2wrapperPy3.py && \
echo "ReleaseType=${NZBHYDRA2_RELEASE_TYPE}\nPackageVersion=${VERSION}\nPackageAuthor=linuxserver.io" > /app/nzbhydra2/package_info && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 5076
VOLUME /config
Vendored
+220 -222
View File
@@ -17,7 +17,7 @@ pipeline {
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
SCARF_TOKEN=credentials('scarf_api_key')
EXT_GIT_BRANCH = 'develop'
EXT_GIT_BRANCH = 'master'
EXT_USER = 'theotherp'
EXT_REPO = 'nzbhydra2'
BUILD_VERSION_ARG = 'NZBHYDRA2_RELEASE'
@@ -36,22 +36,16 @@ pipeline {
CI_DELAY='120'
CI_DOCKERENV='TZ=US/Pacific'
CI_AUTH='user:password'
CI_WEBPATH='/system/about'
CI_WEBPATH=''
}
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 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' || : ''',
script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 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' ''',
@@ -65,7 +59,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.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'
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'
}
script{
env.LS_RELEASE_NUMBER = sh(
@@ -75,7 +69,7 @@ pipeline {
script{
env.LS_TAG_NUMBER = sh(
script: '''#! /bin/bash
tagsha=$(git rev-list -n 1 dev-${LS_RELEASE} 2>/dev/null)
tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null)
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
echo ${LS_RELEASE_NUMBER}
elif [ -z "${GIT_COMMIT}" ]; then
@@ -108,23 +102,23 @@ pipeline {
/* ########################
External Release Tagging
######################## */
// 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 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 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"){
@@ -160,10 +154,10 @@ pipeline {
}
}
}
// If this is a dev build use live docker endpoints
// If this is a master build use live docker endpoints
stage("Set ENV live build"){
when {
branch "dev"
branch "master"
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -173,20 +167,20 @@ 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-dev-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-dev-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
env.CI_TAGS = 'dev-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.META_TAG = 'dev-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'dev-version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
}
}
}
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
not {branch "dev"}
not {branch "master"}
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -196,13 +190,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-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
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + 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
} else {
env.CI_TAGS = 'dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 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 = 'dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'dev-version-' + env.EXT_RELEASE_CLEAN
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.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
}
}
@@ -219,13 +213,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-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
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} else {
env.CI_TAGS = 'dev-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 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 = '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.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = '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/'
}
@@ -244,23 +238,26 @@ 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-jenkins-builder/master/checkrun.sh | /bin/bash'''
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
sh '''#! /bin/bash
set -e
docker pull ghcr.io/linuxserver/lsiodev-spaces-file-upload:latest
docker run --rm \
-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" || :'''
-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'''
}
}
}
// Use helper containers to render templated files
stage('Update-Templates') {
when {
branch "dev"
branch "master"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
@@ -271,13 +268,13 @@ pipeline {
set -e
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=dev -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
# 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 dev
git checkout -f master
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
@@ -290,7 +287,7 @@ pipeline {
echo "Jenkinsfile is up to date."
fi
# Stage 2 - Delete old templates
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"
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -300,14 +297,14 @@ 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 dev
git checkout -f master
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done
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 and deprecated templates"
echo "Deleting old templates"
rm -Rf ${TEMPDIR}
exit 0
else
@@ -321,18 +318,17 @@ 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 dev
git checkout -f master
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
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 readme-vars.yml ${TEMPLATED_FILES}
git add ${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}
@@ -353,8 +349,6 @@ 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/
@@ -382,7 +376,7 @@ pipeline {
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
branch "dev"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
@@ -395,26 +389,6 @@ pipeline {
}
}
}
// If this is a dev build check the S6 service file perms
stage("Check S6 Service file Permissions"){
when {
branch "dev"
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
####################### */
@@ -441,12 +415,13 @@ pipeline {
// Add package to Scarf.sh and set permissions
stage("Scarf.sh package registry"){
when {
branch "dev"
branch "master"
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''#! /bin/bash
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/nzbhydra2") | .uuid' || :)
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/nzbhydra2") | .uuid')
if [ -z "${PACKAGE_UUID}" ]; then
echo "Adding package to Scarf.sh"
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -477,8 +452,7 @@ pipeline {
}
steps {
echo "Running on node: ${NODE_NAME}"
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile"
sh "docker buildx build \
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-nzbhydra2/packages\" \
@@ -490,8 +464,8 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Nzbhydra2\" \
--label \"org.opencontainers.image.description=[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. The application NZBHydra 2 is currently in its early stages and is in active development. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--label \"org.opencontainers.image.description=[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. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. **NOTE:** The last version that supports migration is `linuxserver/nzbhydra2:v2.10.2-ls49` \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -508,8 +482,7 @@ pipeline {
stage('Build X86') {
steps {
echo "Running on node: ${NODE_NAME}"
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile"
sh "docker buildx build \
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-nzbhydra2/packages\" \
@@ -521,11 +494,45 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Nzbhydra2\" \
--label \"org.opencontainers.image.description=[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. The application NZBHydra 2 is currently in its early stages and is in active development. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--label \"org.opencontainers.image.description=[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. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. **NOTE:** The last version that supports migration is `linuxserver/nzbhydra2:v2.10.2-ls49` \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
--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-nzbhydra2/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nzbhydra2\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nzbhydra2\" \
--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=Nzbhydra2\" \
--label \"org.opencontainers.image.description=[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. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. **NOTE:** The last version that supports migration is `linuxserver/nzbhydra2:v2.10.2-ls49` \" \
--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'
@@ -536,8 +543,7 @@ pipeline {
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.aarch64"
sh "docker buildx build \
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-nzbhydra2/packages\" \
@@ -549,19 +555,16 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Nzbhydra2\" \
--label \"org.opencontainers.image.description=[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. The application NZBHydra 2 is currently in its early stages and is in active development. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. \" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--label \"org.opencontainers.image.description=[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. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. **NOTE:** The last version that supports migration is `linuxserver/nzbhydra2:v2.10.2-ls49` \" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
--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 '''#! /bin/bash
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || : '''
sh '''docker rmi \
${IMAGE}:arm64v8-${META_TAG} \
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
}
}
}
@@ -569,7 +572,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
branch "dev"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@@ -582,17 +585,31 @@ pipeline {
else
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
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
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
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
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f dev
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/
wait
@@ -616,12 +633,19 @@ pipeline {
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
branch "dev"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
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'
}
@@ -630,7 +654,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') {
when {
branch "dev"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
@@ -639,6 +663,13 @@ 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'
}
@@ -660,13 +691,14 @@ 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 \
@@ -685,8 +717,10 @@ 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 \
python3 test_build.py'''
python /ci/ci.py'''
}
}
}
@@ -723,12 +757,12 @@ pipeline {
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:dev
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
fi
docker push ${PUSHIMAGE}:dev
docker push ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
@@ -737,6 +771,17 @@ pipeline {
done
'''
}
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
${DELETEIMAGE}:latest || :
if [ -n "${SEMVER}" ]; then
docker rmi ${DELETEIMAGE}:${SEMVER} || :
fi
done
'''
}
}
}
@@ -769,55 +814,59 @@ 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 ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-dev
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-dev
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
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}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:amd64-dev
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-dev
docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm32v7-latest
docker push ${MANIFESTIMAGE}:arm64v8-latest
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
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}:dev || :
docker manifest create ${MANIFESTIMAGE}:dev ${MANIFESTIMAGE}:amd64-dev ${MANIFESTIMAGE}:arm64v8-dev
docker manifest annotate ${MANIFESTIMAGE}:dev ${MANIFESTIMAGE}:arm64v8-dev --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${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 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}:arm64v8-${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 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}:arm64v8-${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 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-dev")
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-dev || :
docker manifest create ${MANIFESTIMAGE}:arm32v7-dev ${MANIFESTIMAGE}:amd64-dev
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-dev
fi
docker manifest push --purge ${MANIFESTIMAGE}:dev
docker manifest push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
@@ -826,13 +875,36 @@ pipeline {
done
'''
}
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-latest \
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-latest \
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-latest \
${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} || :
'''
}
}
}
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
branch "dev"
branch "master"
expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
@@ -844,17 +916,17 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to dev",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
"type": "commit",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases | jq '.[0] |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "dev",\
"target_commitish": "master",\
"name": "'${META_TAG}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": true}' >> releasebody.json
printf '","draft": false,"prerelease": false}' >> 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'''
}
@@ -896,78 +968,12 @@ pipeline {
stage('Pull Request Comment') {
when {
not {environment name: 'CHANGE_ID', value: ''}
environment name: 'CI', value: 'true'
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
'''
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}'"}' '''
}
}
}
@@ -981,26 +987,18 @@ pipeline {
sh 'echo "build aborted"'
}
else if (currentBuild.currentResult == "SUCCESS"){
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,\
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,\
"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://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 16711680,\
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,\
"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()
}
}
+16 -20
View File
@@ -1,5 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-nzbhydra2/blob/dev/.github/CONTRIBUTING.md -->
<!-- Please read the https://github.com/linuxserver/docker-nzbhydra2/blob/master/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
@@ -37,12 +37,12 @@ Find us at:
[![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/nzbhydra2)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nzbhydra2.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/nzbhydra2)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nzbhydra2.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/nzbhydra2)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-nzbhydra2%2Fjob%2Fdev%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/dev/)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-nzbhydra2%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nzbhydra2/job/master/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fnzbhydra2%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/nzbhydra2/latest/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).
It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is currently in its early stages and is in active development. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version.
It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. **NOTE:** The last version that supports migration is `linuxserver/nzbhydra2:v2.10.2-ls49`
[![nzbhydra2](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/hydra-icon.png)](https://github.com/theotherp/nzbhydra2)
@@ -50,7 +50,7 @@ It provides easy access to a number of raw and newznab based indexers. The appli
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
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.
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.
The architectures supported by this image are:
@@ -58,7 +58,7 @@ The architectures supported by this image are:
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ❌ | |
| armhf| ✅ | arm32v7-\<version tag\> |
## Version Tags
@@ -68,6 +68,7 @@ This image provides various versions that are available via tags. Please read th
| :----: | :----: |--- |
| latest | ✅ | Stable releases |
| dev | ✅ | Prereleases from their GitHub |
## Application Setup
The web interface is at `<your ip>:5076` , to set up indexers and connections to your nzb download applications.
@@ -83,12 +84,12 @@ Here are some example snippets to help you get started creating a container.
version: "2.1"
services:
nzbhydra2:
image: lscr.io/linuxserver/nzbhydra2:dev
image: lscr.io/linuxserver/nzbhydra2:latest
container_name: nzbhydra2
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- TZ=Europe/London
volumes:
- <path to data>:/config
- <nzb download>:/downloads
@@ -104,13 +105,12 @@ docker run -d \
--name=nzbhydra2 \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e TZ=Europe/London \
-p 5076:5076 \
-v <path to data>:/config \
-v <nzb download>:/downloads \
--restart unless-stopped \
lscr.io/linuxserver/nzbhydra2:dev
lscr.io/linuxserver/nzbhydra2:latest
```
## Parameters
@@ -122,7 +122,7 @@ Container images are configured using parameters passed at runtime (such as thos
| `-p 5076` | WebUI |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. |
| `-v /config` | Where nzbhydra2 should store config files. |
| `-v /downloads` | NZB download folder. |
@@ -169,7 +169,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' nzbhydra2`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nzbhydra2:dev`
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nzbhydra2:latest`
## Updating Info
@@ -187,7 +187,7 @@ Below are the instructions for updating containers:
### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/nzbhydra2:dev`
* Update the image: `docker pull lscr.io/linuxserver/nzbhydra2:latest`
* Stop the running container: `docker stop nzbhydra2`
* Delete the container: `docker rm nzbhydra2`
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
@@ -222,7 +222,7 @@ cd docker-nzbhydra2
docker build \
--no-cache \
--pull \
-t lscr.io/linuxserver/nzbhydra2:dev .
-t lscr.io/linuxserver/nzbhydra2:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
@@ -235,14 +235,10 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **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.
* **03.23.22:** - Upgrade JRE to 17, rebase to ubuntu.
* **03.05.22:** - Rebase to Jammy.
* **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.
* **29.04.20:** - Include stable releases incrementally with dev releases.
* **14.04.20:** - Correct Name, Hydra2 -> Nzbhydra2.
* **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.
+8 -6
View File
@@ -1,12 +1,13 @@
---
# jenkins variables
project_name: docker-nzbhydra2
external_type: github_devel
release_type: prerelease
release_tag: dev
ls_branch: dev
external_type: github_stable
release_type: stable
release_tag: latest
ls_branch: master
repo_vars:
- EXT_GIT_BRANCH = 'develop'
- EXT_GIT_BRANCH = 'master'
- EXT_USER = 'theotherp'
- EXT_REPO = 'nzbhydra2'
- BUILD_VERSION_ARG = 'NZBHYDRA2_RELEASE'
@@ -25,6 +26,7 @@ repo_vars:
- CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific'
- CI_AUTH='user:password'
- CI_WEBPATH='/system/about'
- CI_WEBPATH=''
sponsor_links:
- { name: "NZBHydra 2", url: "https://github.com/theotherp/nzbhydra2#donate" }
+175 -183
View File
@@ -1,183 +1,175 @@
NAME VERSION TYPE
adduser 3.118ubuntu5 deb
apt 2.4.10 deb
apt-utils 2.4.10 deb
base-files 12ubuntu4.3 deb
base-passwd 3.5.52build1 deb
bash 5.1-6ubuntu1 deb
bash 5.1.16 binary
bsdutils 1:2.37.2-4ubuntu3 deb
ca-certificates 20230311ubuntu0.22.04.1 deb
ca-certificates-java java-archive
ca-certificates-java 20190909ubuntu1.2 deb
coreutils 8.32-4.1ubuntu1 deb
curl 7.81.0-1ubuntu1.13 deb
dash 0.5.11+git20210903+057cd650a4ed-3build1 deb
debconf 1.5.79ubuntu1 deb
debianutils 5.5-1ubuntu2 deb
diffutils 1:3.8-0ubuntu2 deb
dirmngr 2.2.27-3ubuntu2.1 deb
dpkg 1.21.1ubuntu2.2 deb
e2fsprogs 1.46.5-2ubuntu1.1 deb
findutils 4.8.0-1ubuntu3 deb
fontconfig-config 2.13.1-4.2ubuntu5 deb
fonts-dejavu-core 2.37-2build1 deb
gcc-12-base 12.1.0-2ubuntu1~22.04 deb
gnupg 2.2.27-3ubuntu2.1 deb
gnupg-l10n 2.2.27-3ubuntu2.1 deb
gnupg-utils 2.2.27-3ubuntu2.1 deb
gpg 2.2.27-3ubuntu2.1 deb
gpg-agent 2.2.27-3ubuntu2.1 deb
gpg-wks-client 2.2.27-3ubuntu2.1 deb
gpg-wks-server 2.2.27-3ubuntu2.1 deb
gpgconf 2.2.27-3ubuntu2.1 deb
gpgsm 2.2.27-3ubuntu2.1 deb
gpgv 2.2.27-3ubuntu2.1 deb
grep 3.7-1build1 deb
gzip 1.10-4ubuntu4.1 deb
hostname 3.23ubuntu2 deb
init-system-helpers 1.62 deb
java-common 0.72build2 deb
jq 1.6-2.1ubuntu3 deb
jrt-fs 17.0.8.1 java-archive
libacl1 2.3.1-1 deb
libapt-pkg6.0 2.4.10 deb
libasound2 1.2.6.1-1ubuntu1 deb
libasound2-data 1.2.6.1-1ubuntu1 deb
libassuan0 2.5.5-1build1 deb
libattr1 1:2.5.1-1build1 deb
libaudit-common 1:3.0.7-1build1 deb
libaudit1 1:3.0.7-1build1 deb
libavahi-client3 0.8-5ubuntu5.1 deb
libavahi-common-data 0.8-5ubuntu5.1 deb
libavahi-common3 0.8-5ubuntu5.1 deb
libblkid1 2.37.2-4ubuntu3 deb
libbrotli1 1.0.9-2build6 deb
libbsd0 0.11.5-1 deb
libbz2-1.0 1.0.8-5build1 deb
libc-bin 2.35-0ubuntu3.1 deb
libc6 2.35-0ubuntu3.1 deb
libcap-ng0 0.7.9-2.2build3 deb
libcap2 1:2.44-1ubuntu0.22.04.1 deb
libcom-err2 1.46.5-2ubuntu1.1 deb
libcrypt1 1:4.4.27-1 deb
libcups2 2.4.1op1-1ubuntu4.7 deb
libcurl4 7.81.0-1ubuntu1.13 deb
libdb5.3 5.3.28+dfsg1-0.8ubuntu3 deb
libdbus-1-3 1.12.20-2ubuntu4.1 deb
libdebconfclient0 0.261ubuntu1 deb
libexpat1 2.4.7-1ubuntu0.2 deb
libext2fs2 1.46.5-2ubuntu1.1 deb
libffi8 3.4.2-4 deb
libfontconfig1 2.13.1-4.2ubuntu5 deb
libfreetype6 2.11.1+dfsg-1ubuntu0.2 deb
libgcc-s1 12.1.0-2ubuntu1~22.04 deb
libgcrypt20 1.9.4-3ubuntu3 deb
libglib2.0-0 2.72.4-0ubuntu2.2 deb
libgmp10 2:6.2.1+dfsg-3ubuntu1 deb
libgnutls30 3.7.3-4ubuntu1.2 deb
libgpg-error0 1.43-3 deb
libgraphite2-3 1.3.14-1build2 deb
libgssapi-krb5-2 1.19.2-2ubuntu0.2 deb
libharfbuzz0b 2.7.4-1ubuntu3.1 deb
libhogweed6 3.7.3-1build2 deb
libidn2-0 2.3.2-2build1 deb
libjpeg-turbo8 2.1.2-0ubuntu1 deb
libjpeg8 8c-2ubuntu10 deb
libjq1 1.6-2.1ubuntu3 deb
libk5crypto3 1.19.2-2ubuntu0.2 deb
libkeyutils1 1.6.1-2ubuntu3 deb
libkrb5-3 1.19.2-2ubuntu0.2 deb
libkrb5support0 1.19.2-2ubuntu0.2 deb
libksba8 1.6.0-2ubuntu0.2 deb
liblcms2-2 2.12~rc1-2build2 deb
libldap-2.5-0 2.5.16+dfsg-0ubuntu0.22.04.1 deb
libldap-common 2.5.16+dfsg-0ubuntu0.22.04.1 deb
liblz4-1 1.9.3-2build2 deb
liblzma5 5.2.5-2ubuntu1 deb
libmd0 1.0.4-1build1 deb
libmount1 2.37.2-4ubuntu3 deb
libmpdec3 2.5.1-2build2 deb
libncurses6 6.3-2ubuntu0.1 deb
libncursesw6 6.3-2ubuntu0.1 deb
libnettle8 3.7.3-1build2 deb
libnghttp2-14 1.43.0-1build3 deb
libnpth0 1.6-3build2 deb
libnsl2 1.3.0-2build2 deb
libnspr4 2:4.32-3build1 deb
libnss3 2:3.68.2-0ubuntu1.2 deb
libonig5 6.9.7.1-2build1 deb
libp11-kit0 0.24.0-6build1 deb
libpam-modules 1.4.0-11ubuntu2.3 deb
libpam-modules-bin 1.4.0-11ubuntu2.3 deb
libpam-runtime 1.4.0-11ubuntu2.3 deb
libpam0g 1.4.0-11ubuntu2.3 deb
libpcre2-8-0 10.39-3ubuntu0.1 deb
libpcre3 2:8.39-13ubuntu0.22.04.1 deb
libpcsclite1 1.9.5-3ubuntu1 deb
libpng16-16 1.6.37-3build5 deb
libprocps8 2:3.3.17-6ubuntu2 deb
libpsl5 0.21.0-1.2build2 deb
libpython3-stdlib 3.10.6-1~22.04 deb
libpython3.10-minimal 3.10.12-1~22.04.2 deb
libpython3.10-stdlib 3.10.12-1~22.04.2 deb
libreadline8 8.1.2-1 deb
librtmp1 2.4+20151223.gitfa8646d.1-2build4 deb
libsasl2-2 2.1.27+dfsg2-3ubuntu1.2 deb
libsasl2-modules 2.1.27+dfsg2-3ubuntu1.2 deb
libsasl2-modules-db 2.1.27+dfsg2-3ubuntu1.2 deb
libseccomp2 2.5.3-2ubuntu2 deb
libselinux1 3.3-1build2 deb
libsemanage-common 3.3-1build2 deb
libsemanage2 3.3-1build2 deb
libsepol2 3.3-1build1 deb
libsmartcols1 2.37.2-4ubuntu3 deb
libsqlite3-0 3.37.2-2ubuntu0.1 deb
libss2 1.46.5-2ubuntu1.1 deb
libssh-4 0.9.6-2ubuntu0.22.04.1 deb
libssl3 3.0.2-0ubuntu1.10 deb
libstdc++6 12.1.0-2ubuntu1~22.04 deb
libsystemd0 249.11-0ubuntu3.9 deb
libtasn1-6 4.18.0-4build1 deb
libtinfo6 6.3-2ubuntu0.1 deb
libtirpc-common 1.3.2-2ubuntu0.1 deb
libtirpc3 1.3.2-2ubuntu0.1 deb
libudev1 249.11-0ubuntu3.9 deb
libunistring2 1.0-1 deb
libuuid1 2.37.2-4ubuntu3 deb
libxxhash0 0.8.1-1 deb
libzstd1 1.4.8+dfsg-3build1 deb
locales 2.35-0ubuntu3.4 deb
login 1:4.8.1-2ubuntu2.1 deb
logsave 1.46.5-2ubuntu1.1 deb
lsb-base 11.1.0ubuntu4 deb
mawk 1.3.4.20200120-3 deb
media-types 7.0.0 deb
mount 2.37.2-4ubuntu3 deb
ncurses-base 6.3-2ubuntu0.1 deb
ncurses-bin 6.3-2ubuntu0.1 deb
netcat 1.218-4ubuntu1 deb
netcat-openbsd 1.218-4ubuntu1 deb
openjdk-17-jre-headless 17.0.8.1+1~us1-0ubuntu1~22.04 deb
openssl 3.0.2-0ubuntu1.10 deb
passwd 1:4.8.1-2ubuntu2.1 deb
perl-base 5.34.0-3ubuntu1.2 deb
pinentry-curses 1.1.1-1build2 deb
procps 2:3.3.17-6ubuntu2 deb
publicsuffix 20211207.1025-1 deb
python3 3.10.6-1~22.04 deb
python3-minimal 3.10.6-1~22.04 deb
python3.10 3.10.12-1~22.04.2 deb
python3.10-minimal 3.10.12-1~22.04.2 deb
readline-common 8.1.2-1 deb
sed 4.8-1ubuntu2 deb
sensible-utils 0.0.17 deb
sysvinit-utils 3.01-1ubuntu1 deb
tar 1.34+dfsg-1ubuntu0.1.22.04.1 deb
tzdata 2023c-0ubuntu0.22.04.2 deb
ubuntu-keyring 2021.03.26 deb
ucf 3.0043 deb
unzip 6.0-26ubuntu3.1 deb
usrmerge 25ubuntu2 deb
util-linux 2.37.2-4ubuntu3 deb
zlib1g 1:1.2.11.dfsg-2ubuntu9.2 deb
adduser3.118ubuntu5
apt2.4.5
apt-utils2.4.5
base-files12ubuntu4.1
base-passwd3.5.52build1
bash5.1-6ubuntu1
bsdutils1:2.37.2-4ubuntu3
ca-certificates20211016
ca-certificates-java20190909
coreutils8.32-4.1ubuntu1
curl7.81.0-1ubuntu1.3
dash0.5.11+git20210903+057cd650a4ed-3build1
debconf1.5.79ubuntu1
debianutils5.5-1ubuntu2
diffutils1:3.8-0ubuntu2
dirmngr2.2.27-3ubuntu2
dpkg1.21.1ubuntu2.1
e2fsprogs1.46.5-2ubuntu1.1
findutils4.8.0-1ubuntu3
fontconfig-config2.13.1-4.2ubuntu5
fonts-dejavu-core2.37-2build1
gcc-12-base12-20220319-1ubuntu1
gnupg2.2.27-3ubuntu2
gnupg-l10n2.2.27-3ubuntu2
gnupg-utils2.2.27-3ubuntu2
gpg2.2.27-3ubuntu2
gpg-agent2.2.27-3ubuntu2
gpgconf2.2.27-3ubuntu2
gpgsm2.2.27-3ubuntu2
gpgv2.2.27-3ubuntu2
gpg-wks-client2.2.27-3ubuntu2
gpg-wks-server2.2.27-3ubuntu2
grep3.7-1build1
gzip1.10-4ubuntu4
hostname3.23ubuntu2
init-system-helpers1.62
java-common0.72build2
jq1.6-2.1ubuntu3
libacl12.3.1-1
libapt-pkg6.02.4.5
libasound21.2.6.1-1ubuntu1
libasound2-data1.2.6.1-1ubuntu1
libassuan02.5.5-1build1
libattr11:2.5.1-1build1
libaudit11:3.0.7-1build1
libaudit-common1:3.0.7-1build1
libavahi-client30.8-5ubuntu5
libavahi-common30.8-5ubuntu5
libavahi-common-data0.8-5ubuntu5
libblkid12.37.2-4ubuntu3
libbrotli11.0.9-2build6
libbz2-1.01.0.8-5build1
libc62.35-0ubuntu3
libcap21:2.44-1build3
libcap-ng00.7.9-2.2build3
libc-bin2.35-0ubuntu3
libcom-err21.46.5-2ubuntu1.1
libcrypt11:4.4.27-1
libcups22.4.1op1-1ubuntu4.1
libcurl47.81.0-1ubuntu1.3
libdb5.35.3.28+dfsg1-0.8ubuntu3
libdbus-1-31.12.20-2ubuntu4
libdebconfclient00.261ubuntu1
libexpat12.4.7-1
libext2fs21.46.5-2ubuntu1.1
libffi83.4.2-4
libfontconfig12.13.1-4.2ubuntu5
libfreetype62.11.1+dfsg-1build1
libgcc-s112-20220319-1ubuntu1
libgcrypt201.9.4-3ubuntu3
libglib2.0-02.72.1-1
libgmp102:6.2.1+dfsg-3ubuntu1
libgnutls303.7.3-4ubuntu1
libgpg-error01.43-3
libgraphite2-31.3.14-1build2
libgssapi-krb5-21.19.2-2
libharfbuzz0b2.7.4-1ubuntu3
libhogweed63.7.3-1build2
libidn2-02.3.2-2build1
libjpeg88c-2ubuntu10
libjpeg-turbo82.1.2-0ubuntu1
libjq11.6-2.1ubuntu3
libk5crypto31.19.2-2
libkeyutils11.6.1-2ubuntu3
libkrb5-31.19.2-2
libkrb5support01.19.2-2
libksba81.6.0-2build1
liblcms2-22.12~rc1-2build2
libldap-2.5-02.5.12+dfsg-0ubuntu0.22.04.1
libldap-common2.5.12+dfsg-0ubuntu0.22.04.1
liblz4-11.9.3-2build2
liblzma55.2.5-2ubuntu1
libmount12.37.2-4ubuntu3
libmpdec32.5.1-2build2
libncurses66.3-2
libncursesw66.3-2
libnettle83.7.3-1build2
libnghttp2-141.43.0-1build3
libnpth01.6-3build2
libnsl21.3.0-2build2
libnspr42:4.32-3build1
libnss32:3.68.2-0ubuntu1
libonig56.9.7.1-2build1
libp11-kit00.24.0-6build1
libpam0g1.4.0-11ubuntu2
libpam-modules1.4.0-11ubuntu2
libpam-modules-bin1.4.0-11ubuntu2
libpam-runtime1.4.0-11ubuntu2
libpcre2-8-010.39-3build1
libpcre32:8.39-13ubuntu0.22.04.1
libpcsclite11.9.5-3
libpng16-161.6.37-3build5
libprocps82:3.3.17-6ubuntu2
libpsl50.21.0-1.2build2
libpython3.10-minimal3.10.4-3
libpython3.10-stdlib3.10.4-3
libpython3-stdlib3.10.4-0ubuntu2
libreadline88.1.2-1
librtmp12.4+20151223.gitfa8646d.1-2build4
libsasl2-22.1.27+dfsg2-3ubuntu1
libsasl2-modules2.1.27+dfsg2-3ubuntu1
libsasl2-modules-db2.1.27+dfsg2-3ubuntu1
libseccomp22.5.3-2ubuntu2
libselinux13.3-1build2
libsemanage23.3-1build2
libsemanage-common3.3-1build2
libsepol23.3-1build1
libsmartcols12.37.2-4ubuntu3
libsqlite3-03.37.2-2
libss21.46.5-2ubuntu1.1
libssh-40.9.6-2build1
libssl33.0.2-0ubuntu1.5
libstdc++612-20220319-1ubuntu1
libsystemd0249.11-0ubuntu3.3
libtasn1-64.18.0-4build1
libtinfo66.3-2
libtirpc31.3.2-2build1
libtirpc-common1.3.2-2build1
libudev1249.11-0ubuntu3.3
libunistring21.0-1
libuuid12.37.2-4ubuntu3
libxxhash00.8.1-1
libzstd11.4.8+dfsg-3build1
locales2.35-0ubuntu3
login1:4.8.1-2ubuntu2
logsave1.46.5-2ubuntu1.1
lsb-base11.1.0ubuntu4
mawk1.3.4.20200120-3
media-types7.0.0
mount2.37.2-4ubuntu3
ncurses-base6.3-2
ncurses-bin6.3-2
openjdk-11-jre-headless11.0.15+10-0ubuntu0.22.04.1
openssl3.0.2-0ubuntu1.5
passwd1:4.8.1-2ubuntu2
perl-base5.34.0-3ubuntu1
pinentry-curses1.1.1-1build2
procps2:3.3.17-6ubuntu2
publicsuffix20211207.1025-1
python3.103.10.4-3
python3.10-minimal3.10.4-3
python33.10.4-0ubuntu2
python3-minimal3.10.4-0ubuntu2
readline-common8.1.2-1
sed4.8-1ubuntu2
sensible-utils0.0.17
sysvinit-utils3.01-1ubuntu1
tar1.34+dfsg-1build3
tzdata2022a-0ubuntu1
ubuntu-keyring2021.03.26
ucf3.0043
unzip6.0-26ubuntu3
usrmerge25ubuntu2
util-linux2.37.2-4ubuntu3
zlib1g1:1.2.11.dfsg-2ubuntu9
+29 -25
View File
@@ -7,34 +7,39 @@ project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/ma
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).
It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is currently in its early stages and is in active development. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version.
It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. **NOTE:** The last version that supports migration is `linuxserver/nzbhydra2:v2.10.2-ls49`
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_blurb_optional_extras_enabled: false
# supported architectures
available_architectures:
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version
development_versions: true
development_versions_items:
- {tag: "latest", desc: "Stable releases"}
- {tag: "dev", desc: "Prereleases from their GitHub"}
- { tag: "latest", desc: "Stable releases" }
- { tag: "dev", desc: "Prereleases from their GitHub" }
# container parameters
common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}"
param_usage_include_net: false
param_usage_include_env: true
param_env_vars:
- {env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London."}
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." }
param_usage_include_vols: true
param_volumes:
- {vol_path: "/config", vol_host_path: "<path to data>", desc: "Where nzbhydra2 should store config files."}
- {vol_path: "/downloads", vol_host_path: "<nzb download>", desc: "NZB download folder."}
- { vol_path: "/config", vol_host_path: "<path to data>", desc: "Where nzbhydra2 should store config files." }
- { vol_path: "/downloads", vol_host_path: "<nzb download>", desc: "NZB download folder." }
param_usage_include_ports: true
param_ports:
- {external_port: "5076", internal_port: "5076", port_desc: "WebUI"}
- { external_port: "5076", internal_port: "5076", port_desc: "WebUI" }
param_device_map: false
cap_add_param: false
# optional container parameters
opt_param_usage_include_env: false
opt_param_usage_include_vols: false
@@ -42,25 +47,24 @@ opt_param_usage_include_ports: false
opt_param_device_map: false
opt_cap_add_param: false
optional_block_1: false
# 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.
# changelog
changelogs:
- {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: "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: "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."}
- {date: "11.02.19:", desc: "Add pipeline logic and multi arch."}
- {date: "18.08.18:", desc: "Bump java version to 10, (bionic currently refers to it as version 11)."}
- {date: "10.08.18:", desc: "Rebase to ubuntu bionic."}
- {date: "15.04.18:", desc: "Change to port 5076 in the Dockerfile."}
- {date: "11.01.18:", desc: "Initial Release."}
- { date: "03.05.22:", desc: "Rebase to Jammy." }
- { 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: "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." }
- { date: "11.02.19:", desc: "Add pipeline logic and multi arch." }
- { date: "18.08.18:", desc: "Bump java version to 10, (bionic currently refers to it as version 11)." }
- { date: "10.08.18:", desc: "Rebase to ubuntu bionic." }
- { date: "15.04.18:", desc: "Change to port 5076 in the Dockerfile." }
- { date: "11.01.18:", desc: "Initial Release." }
Regular → Executable
View File
+8
View File
@@ -0,0 +1,8 @@
#!/usr/bin/with-contenv bash
# make our folders
mkdir -p /config/logs
# permissions
chmod +x /app/nzbhydra2/bin/nzbhydra2
chown -R abc:abc /config
@@ -1,13 +0,0 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# make our folders
mkdir -p /config/logs
if [[ ! -f /config/nzbhydra.yml ]]; then
cp /defaults/nzbhydra.yml /config/nzbhydra.yml
fi
# permissions
lsiown -R abc:abc \
/config
@@ -1 +0,0 @@
oneshot
@@ -1 +0,0 @@
/etc/s6-overlay/s6-rc.d/init-nzbhydra2-config/run
@@ -1 +0,0 @@
3
@@ -1,9 +0,0 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# unset unraid specific ENV to avoid crashing
unset HOST_OS
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 5076" \
cd /app/nzbhydra2 s6-setuidgid abc /usr/bin/python3 nzbhydra2wrapperPy3.py --nobrowser --datafolder /config
@@ -1 +0,0 @@
longrun
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/with-contenv bash
# unset unraid specific ENV to avoid crashing
unset HOST_OS
cd /app/nzbhydra2/bin || exit
exec \
s6-setuidgid abc /usr/bin/python3 nzbhydra2wrapperPy3.py \
--nobrowser --datafolder /config