Compare commits

..

490 commits

Author SHA1 Message Date
LinuxServer-CI
a8ff139c5c Bot Updating Package Versions 2024-07-17 05:32:23 +00:00
LinuxServer-CI
2d7267f519 Bot Updating Package Versions 2024-07-15 20:28:44 +00:00
LinuxServer-CI
23ef18395a Bot Updating Templated Files 2024-07-12 23:31:39 +00:00
LinuxServer-CI
818e5e8276 Bot Updating Templated Files 2024-07-12 23:30:13 +00:00
LinuxServer-CI
fa400aff25 Bot Updating Package Versions 2024-07-10 14:30:15 +00:00
LinuxServer-CI
1b8cf6b870 Bot Updating Templated Files 2024-07-07 20:58:52 +00:00
Roxedus
77b8b08d9c
Merge pull request #296 from linuxserver/develop-ro-tweaks 2024-07-07 22:57:27 +02:00
LinuxServer-CI
eb49703aa8 Bot Updating Package Versions 2024-07-06 01:39:29 +00:00
thespad
15868457cf
Move tmpdir, set COMPlus_EnableDiagnostics 2024-07-03 19:40:59 +01:00
LinuxServer-CI
0157a2559a Bot Updating Package Versions 2024-06-30 18:37:30 +00:00
LinuxServer-CI
ff32a6c6ba Bot Updating Package Versions 2024-06-28 14:30:49 +00:00
LinuxServer-CI
5744327ad2 Bot Updating Package Versions 2024-06-27 16:35:45 +00:00
LinuxServer-CI
232afc9e3f Bot Updating Package Versions 2024-06-25 23:28:45 +00:00
LinuxServer-CI
8763e58743 Bot Updating Package Versions 2024-06-18 04:32:23 +00:00
LinuxServer-CI
4707777083 Bot Updating Package Versions 2024-06-14 23:30:24 +00:00
LinuxServer-CI
647e5b5227 Bot Updating Package Versions 2024-06-11 04:33:36 +00:00
LinuxServer-CI
d794a7c20d Bot Updating Package Versions 2024-06-01 01:43:45 +00:00
LinuxServer-CI
9b7be471e6 Bot Updating Package Versions 2024-05-26 17:42:56 +00:00
Adam
0d61017d0b
Merge pull request #292 from linuxserver/develop-3.20
Rebase to 3.20 (Develop)
2024-05-26 18:39:02 +01:00
thespad
89b38bfab7
Rebase to 3.20 2024-05-26 17:41:38 +01:00
LinuxServer-CI
ca92b55eb3 Bot Updating Package Versions 2024-05-24 14:30:24 +00:00
LinuxServer-CI
1c24314688 Bot Updating Package Versions 2024-05-23 04:32:23 +00:00
LinuxServer-CI
bf92aa9cc5 Bot Updating Package Versions 2024-05-22 01:41:08 +00:00
LinuxServer-CI
4b32b78965 Bot Updating Templated Files 2024-05-22 01:38:37 +00:00
LinuxServer-CI
7886c269c8 Bot Updating Templated Files 2024-05-22 01:36:56 +00:00
LinuxServer-CI
18bf4c638b Bot Updating Package Versions 2024-05-10 05:33:52 +00:00
LinuxServer-CI
1dee866aa3 Bot Updating Templated Files 2024-05-10 05:29:02 +00:00
LinuxServer-CI
ad1fc66f24 Bot Updating Package Versions 2024-05-09 02:42:37 +00:00
LinuxServer-CI
2756b83f1a Bot Updating Templated Files 2024-05-09 02:38:01 +00:00
LinuxServer-CI
0f0ffdb963 Bot Updating Package Versions 2024-05-05 03:29:19 +00:00
LinuxServer-CI
24521ed806 Bot Updating Templated Files 2024-05-03 23:29:41 +00:00
LinuxServer-CI
6a77e089ac Bot Updating Package Versions 2024-04-28 01:38:11 +00:00
LinuxServer-CI
2c97cb0e1b Bot Updating Package Versions 2024-04-19 23:30:40 +00:00
LinuxServer-CI
933fb03260 Bot Updating Package Versions 2024-04-16 04:30:09 +00:00
LinuxServer-CI
a51d3e3b20 Bot Updating Package Versions 2024-04-12 23:25:01 +00:00
LinuxServer-CI
1bec010935 Bot Updating Package Versions 2024-04-10 01:34:21 +00:00
LinuxServer-CI
50d88211e5 Bot Updating Package Versions 2024-04-08 19:25:47 +00:00
LinuxServer-CI
1791bb5b3e Bot Updating Package Versions 2024-04-05 23:30:18 +00:00
LinuxServer-CI
d9ada0ceb8 Bot Updating Package Versions 2024-03-28 06:30:50 +00:00
LinuxServer-CI
0ca57bb85c Bot Updating Package Versions 2024-03-22 05:33:55 +00:00
LinuxServer-CI
891d413e35 Bot Updating Package Versions 2024-03-14 05:33:22 +00:00
LinuxServer-CI
687e54a3fe Bot Updating Templated Files 2024-03-14 05:27:47 +00:00
LinuxServer-CI
27e75b9f0d Bot Updating Package Versions 2024-03-10 05:29:25 +00:00
LinuxServer-CI
327faa331f Bot Updating Package Versions 2024-03-03 06:30:02 +00:00
LinuxServer-CI
606c044953 Bot Updating Package Versions 2024-03-03 01:32:32 +00:00
LinuxServer-CI
c43cabc3b9 Bot Updating Package Versions 2024-03-01 23:32:36 +00:00
LinuxServer-CI
bcf07fa873 Bot Updating Package Versions 2024-02-27 06:32:22 +00:00
aptalca
d4325ae151
Merge pull request #287 from linuxserver/develop-test
develop: fix ci screenshot
2024-02-23 19:15:35 -05:00
aptalca
e9cad6858e
fix ci screenshot 2024-02-23 18:55:06 -05:00
LinuxServer-CI
09540b5491 Bot Updating Templated Files 2024-02-23 23:32:54 +00:00
LinuxServer-CI
7581649155 Bot Updating Templated Files 2024-02-23 23:30:08 +00:00
LinuxServer-CI
854ed4e134 Bot Updating Package Versions 2024-02-21 05:30:02 +00:00
LinuxServer-CI
0e6421b020 Bot Updating Package Versions 2024-02-14 01:30:22 +00:00
LinuxServer-CI
4dd21e0b69 Bot Updating Package Versions 2024-02-10 03:27:35 +00:00
LinuxServer-CI
7d3ccd6b47 Bot Updating Package Versions 2024-02-09 23:31:42 +00:00
LinuxServer-CI
4d93f8f5d5 Bot Updating Package Versions 2024-02-07 04:30:02 +00:00
LinuxServer-CI
5425968407 Bot Updating Package Versions 2024-02-01 04:31:53 +00:00
LinuxServer-CI
1a0ced7647 Bot Updating Package Versions 2024-01-27 07:26:38 +00:00
LinuxServer-CI
dce6d63dcb Bot Updating Package Versions 2024-01-23 05:32:10 +00:00
LinuxServer-CI
6ccfcc9a5a Bot Updating Package Versions 2024-01-21 01:43:06 +00:00
LinuxServer-CI
3fd2c85097 Bot Updating Package Versions 2024-01-20 06:32:27 +00:00
LinuxServer-CI
8e39e32bd2 Bot Updating Package Versions 2024-01-19 06:33:05 +00:00
LinuxServer-CI
24b033f9ab Bot Updating Package Versions 2024-01-12 17:31:19 +00:00
LinuxServer-CI
8697997b91 Bot Updating Package Versions 2024-01-12 10:46:28 +00:00
Roxedus
024ca3e1b0
Merge pull request #282 from linuxserver/url/develop 2024-01-12 11:43:34 +01:00
Roxedus
e1c62724f9
Use new urls after upstream build changes 2024-01-12 10:51:23 +01:00
LinuxServer-CI
6283bbd4a8 Bot Updating Templated Files 2024-01-11 02:40:59 +00:00
LinuxServer-CI
bd62785efc Bot Updating Templated Files 2024-01-11 02:39:10 +00:00
LinuxServer-CI
408e3510ac Bot Updating Package Versions 2024-01-06 01:35:31 +00:00
LinuxServer-CI
29b2345423 Bot Updating Package Versions 2024-01-03 22:30:35 +00:00
LinuxServer-CI
574bb7c0bf Bot Updating Package Versions 2024-01-02 10:32:33 +00:00
LinuxServer-CI
6577e4a7ea Bot Updating Package Versions 2024-01-01 01:44:29 +00:00
LinuxServer-CI
d73f1d63b2 Bot Updating Package Versions 2023-12-31 02:36:57 +00:00
LinuxServer-CI
28c337edeb Bot Updating Package Versions 2023-12-30 18:31:57 +00:00
LinuxServer-CI
acea487800 Bot Updating Package Versions 2023-12-30 17:06:30 +00:00
LinuxServer-CI
6771a23815 Bot Updating Templated Files 2023-12-30 17:03:43 +00:00
Adam
5e1e909fce
Merge pull request #273 from linuxserver/develop-3.19
Rebase to 3.19
2023-12-30 17:01:53 +00:00
TheSpad
197fbe6c71
Don't extract port from non-existent file 2023-12-30 15:36:38 +00:00
TheSpad
590e1f9b92
Rebase to 3.19 2023-12-30 15:15:31 +00:00
LinuxServer-CI
0cc4050a12 Bot Updating Package Versions 2023-12-28 21:26:03 +00:00
LinuxServer-CI
8a56735341 Bot Updating Package Versions 2023-12-22 23:30:05 +00:00
LinuxServer-CI
e216beb03a Bot Updating Package Versions 2023-12-19 08:31:56 +00:00
LinuxServer-CI
1bbce6ab69 Bot Updating Package Versions 2023-12-15 02:38:21 +00:00
LinuxServer-CI
2ba0a7a921 Bot Updating Package Versions 2023-12-12 01:37:05 +00:00
LinuxServer-CI
4d0111ea16 Bot Updating Package Versions 2023-12-08 23:30:07 +00:00
LinuxServer-CI
00b0ce45bf Bot Updating Package Versions 2023-11-25 21:25:39 +00:00
LinuxServer-CI
5542773c53 Bot Updating Package Versions 2023-11-20 06:34:36 +00:00
LinuxServer-CI
736a5a609a Bot Updating Package Versions 2023-11-20 01:36:46 +00:00
LinuxServer-CI
0b15e1247c Bot Updating Package Versions 2023-11-19 21:24:32 +00:00
LinuxServer-CI
79e956ac49 Bot Updating Package Versions 2023-11-17 16:39:25 +00:00
LinuxServer-CI
bb3be0170d Bot Updating Templated Files 2023-11-17 16:37:02 +00:00
LinuxServer-CI
cd148194e2 Bot Updating Package Versions 2023-11-11 18:29:20 +00:00
LinuxServer-CI
bfd4ab47c9 Bot Updating Package Versions 2023-11-10 18:30:48 +00:00
LinuxServer-CI
a1606b46e9 Bot Updating Package Versions 2023-11-10 02:33:34 +00:00
LinuxServer-CI
62b23c32c6 Bot Updating Package Versions 2023-10-30 01:31:41 +00:00
LinuxServer-CI
e7018a9ecb Bot Updating Package Versions 2023-10-29 19:24:41 +00:00
LinuxServer-CI
7b7f385f7d Bot Updating Package Versions 2023-10-29 17:27:41 +00:00
LinuxServer-CI
0ab77c7364 Bot Updating Package Versions 2023-10-27 15:26:35 +00:00
LinuxServer-CI
5ec3546ba1 Bot Updating Package Versions 2023-10-17 08:34:04 +00:00
LinuxServer-CI
68477b8994 Bot Updating Package Versions 2023-10-10 15:29:12 +00:00
LinuxServer-CI
52e01f8973 Bot Updating Package Versions 2023-10-10 08:32:53 +00:00
LinuxServer-CI
c0fbeac198 Bot Updating Package Versions 2023-10-10 06:34:48 +00:00
LinuxServer-CI
cf74db5795 Bot Updating Templated Files 2023-10-10 06:32:31 +00:00
LinuxServer-CI
d2455ca5b8 Bot Updating Templated Files 2023-10-06 23:32:49 +00:00
LinuxServer-CI
a7a34f2404 Bot Updating Templated Files 2023-10-06 23:30:27 +00:00
LinuxServer-CI
2dccaa3c6a Bot Updating Package Versions 2023-09-30 20:26:52 +00:00
LinuxServer-CI
78c9bb6200 Bot Updating Package Versions 2023-09-27 20:26:56 +00:00
LinuxServer-CI
47fbbb6090 Bot Updating Package Versions 2023-09-27 16:34:04 +00:00
LinuxServer-CI
0cf588bcaf Bot Updating Package Versions 2023-09-19 05:29:07 +00:00
LinuxServer-CI
46ed56a755 Bot Updating Package Versions 2023-09-18 02:31:48 +00:00
LinuxServer-CI
3bb4992807 Bot Updating Package Versions 2023-09-18 01:30:00 +00:00
LinuxServer-CI
640856f28c Bot Updating Package Versions 2023-09-14 02:32:04 +00:00
LinuxServer-CI
37863d787d Bot Updating Package Versions 2023-09-11 21:26:05 +00:00
LinuxServer-CI
69a6585c84 Bot Updating Package Versions 2023-09-08 16:34:12 +00:00
LinuxServer-CI
b05bc18e9c Bot Updating Package Versions 2023-09-08 06:31:55 +00:00
LinuxServer-CI
5b8034ec2c Bot Updating Package Versions 2023-09-08 01:31:20 +00:00
LinuxServer-CI
833ec7e5db Bot Updating Package Versions 2023-09-02 01:57:00 +00:00
LinuxServer-CI
abd4e87db1 Bot Updating Package Versions 2023-09-01 23:25:40 +00:00
LinuxServer-CI
1e67cdf702 Bot Updating Package Versions 2023-09-01 02:35:03 +00:00
LinuxServer-CI
5995f61845 Bot Updating Package Versions 2023-08-29 21:26:09 +00:00
LinuxServer-CI
c319ffbdb6 Bot Updating Package Versions 2023-08-29 06:31:11 +00:00
LinuxServer-CI
c7551810d6 Bot Updating Package Versions 2023-08-29 04:30:38 +00:00
LinuxServer-CI
0d74ea6baa Bot Updating Package Versions 2023-08-23 03:26:13 +00:00
LinuxServer-CI
746262a3cd Bot Updating Package Versions 2023-08-21 18:30:50 +00:00
LinuxServer-CI
aa400088a0 Bot Updating Package Versions 2023-08-20 20:24:51 +00:00
LinuxServer-CI
fae3f52176 Bot Updating Package Versions 2023-08-20 19:24:37 +00:00
LinuxServer-CI
f4fb53a3eb Bot Updating Package Versions 2023-08-20 08:28:22 +00:00
LinuxServer-CI
3209a7ef21 Bot Updating Package Versions 2023-08-20 01:29:39 +00:00
LinuxServer-CI
85621fd27c Bot Updating Package Versions 2023-08-19 22:28:01 +00:00
LinuxServer-CI
3db4a9ec10 Bot Updating Package Versions 2023-08-19 19:24:22 +00:00
LinuxServer-CI
a6f6c96d9a Bot Updating Package Versions 2023-08-19 07:25:27 +00:00
LinuxServer-CI
054ca05d52 Bot Updating Package Versions 2023-08-19 01:21:27 +00:00
LinuxServer-CI
f02258ced5 Bot Updating Package Versions 2023-08-18 06:31:19 +00:00
LinuxServer-CI
60a3279fb2 Bot Updating Package Versions 2023-08-15 23:26:08 +00:00
LinuxServer-CI
b9f83171d8 Bot Updating Package Versions 2023-08-13 22:28:16 +00:00
LinuxServer-CI
be4a082035 Bot Updating Package Versions 2023-08-13 19:24:57 +00:00
LinuxServer-CI
2d0053cde2 Bot Updating Package Versions 2023-08-13 08:27:17 +00:00
LinuxServer-CI
a5edd9901e Bot Updating Package Versions 2023-08-13 04:29:59 +00:00
LinuxServer-CI
d84725cb9f Bot Updating Package Versions 2023-08-13 03:26:16 +00:00
LinuxServer-CI
081fb3ecb5 Bot Updating Package Versions 2023-08-12 20:24:51 +00:00
LinuxServer-CI
30ca8d1ae9 Bot Updating Package Versions 2023-08-12 09:24:49 +00:00
LinuxServer-CI
fb469943b1 Bot Updating Package Versions 2023-08-12 07:24:53 +00:00
LinuxServer-CI
dd99f66c21 Bot Updating Package Versions 2023-08-12 06:29:44 +00:00
LinuxServer-CI
ab7df7564d Bot Updating Package Versions 2023-08-10 01:46:56 +00:00
LinuxServer-CI
b57680a71b Bot Updating Package Versions 2023-08-09 16:37:33 +00:00
LinuxServer-CI
ae22027bda Bot Updating Package Versions 2023-08-09 02:38:04 +00:00
LinuxServer-CI
4867b6d806 Bot Updating Package Versions 2023-08-08 02:38:02 +00:00
LinuxServer-CI
2779f3e5e7 Bot Updating Package Versions 2023-08-06 16:31:53 +00:00
LinuxServer-CI
7bbdda5b07 Bot Updating Package Versions 2023-08-05 19:25:25 +00:00
LinuxServer-CI
2a87437e29 Bot Updating Package Versions 2023-08-04 18:30:07 +00:00
LinuxServer-CI
f8fa4de3d2 Bot Updating Package Versions 2023-08-04 07:25:07 +00:00
LinuxServer-CI
3773a063df Bot Updating Package Versions 2023-08-04 02:37:49 +00:00
LinuxServer-CI
d2770ff9a2 Bot Updating Package Versions 2023-08-04 01:43:09 +00:00
LinuxServer-CI
b52474f9a9 Bot Updating Package Versions 2023-08-02 01:41:57 +00:00
LinuxServer-CI
662e5494c0 Bot Updating Package Versions 2023-08-02 01:39:33 +00:00
LinuxServer-CI
4cc96442ca Bot Updating Package Versions 2023-07-30 18:28:08 +00:00
LinuxServer-CI
c5f31afa11 Bot Updating Package Versions 2023-07-23 01:54:19 +00:00
LinuxServer-CI
b5a412ef5a Bot Updating Package Versions 2023-07-15 17:30:18 +00:00
LinuxServer-CI
2ebbcb257e Bot Updating Package Versions 2023-07-14 23:31:10 +00:00
LinuxServer-CI
41b381707b Bot Updating Package Versions 2023-07-11 06:36:14 +00:00
LinuxServer-CI
3cc46b0f55 Bot Updating Package Versions 2023-06-30 23:32:51 +00:00
LinuxServer-CI
1837ae6a00 Bot Updating Templated Files 2023-06-30 23:30:36 +00:00
Roxedus
ee60fdc187
Merge pull request #266 from mynameisbogdan/develop-branch 2023-06-27 09:43:36 +02:00
Bogdan
0f940587b3 Use the correct branch variable in package info 2023-06-27 08:50:00 +03:00
LinuxServer-CI
be1d0074e7 Bot Updating Package Versions 2023-06-20 21:25:41 +00:00
LinuxServer-CI
d999c53ff4 Bot Updating Package Versions 2023-06-16 23:30:18 +00:00
LinuxServer-CI
68765a94a8 Bot Updating Package Versions 2023-06-14 08:06:31 +00:00
Adam
b9ea3701ce
Merge pull request #264 from linuxserver/develop-ports 2023-06-14 09:02:13 +01:00
LinuxServer-CI
2d3cedd3d3 Bot Updating Package Versions 2023-06-09 23:27:45 +00:00
TheSpad
ef362c4618
Allow readiness check to use custom ports 2023-06-06 14:41:25 +01:00
LinuxServer-CI
8b4bdaaa43 Bot Updating Package Versions 2023-05-30 15:52:16 +00:00
Adam
6ada0b9f6f
Merge pull request #263 from linuxserver/develop-3.18 2023-05-30 16:48:55 +01:00
TheSpad
20997930aa
Rebase to 3.18 2023-05-30 16:11:48 +01:00
LinuxServer-CI
3311e63ee1 Bot Updating Package Versions 2023-05-27 23:24:51 +00:00
LinuxServer-CI
7b6111095c Bot Updating Templated Files 2023-05-23 05:27:47 +00:00
LinuxServer-CI
15c20fe239 Bot Updating Package Versions 2023-05-21 01:52:28 +00:00
LinuxServer-CI
b9d5f93066 Bot Updating Package Versions 2023-05-19 23:32:35 +00:00
LinuxServer-CI
952d1c1f77 Bot Updating Package Versions 2023-05-06 19:25:45 +00:00
LinuxServer-CI
fa385bba6e Bot Updating Templated Files 2023-04-27 04:32:55 +00:00
LinuxServer-CI
150c08a90a Bot Updating Templated Files 2023-04-27 04:31:43 +00:00
LinuxServer-CI
69f25db094 Bot Updating Package Versions 2023-04-22 21:49:49 -05:00
LinuxServer-CI
7af06ccdae Bot Updating Package Versions 2023-04-17 03:46:20 +02:00
LinuxServer-CI
0643570c4b Bot Updating Package Versions 2023-04-14 20:47:06 -05:00
LinuxServer-CI
548af42f62 Bot Updating Package Versions 2023-04-04 14:49:08 +02:00
LinuxServer-CI
11498584d9 Bot Updating Templated Files 2023-04-01 20:50:39 -05:00
LinuxServer-CI
b1e7168f09 Bot Updating Templated Files 2023-04-01 20:49:04 -05:00
LinuxServer-CI
d4f9f546c0 Bot Updating Templated Files 2023-04-01 20:47:29 -05:00
LinuxServer-CI
8e56a2f528 Bot Updating Package Versions 2023-03-31 01:35:23 -05:00
LinuxServer-CI
4237da3440 Bot Updating Package Versions 2023-03-28 08:41:19 -05:00
LinuxServer-CI
121426d2e5 Bot Updating Package Versions 2023-03-27 18:39:32 +02:00
LinuxServer-CI
727d0f918b Bot Updating Package Versions 2023-03-27 02:29:07 -05:00
LinuxServer-CI
31d4ee35e7 Bot Updating Package Versions 2023-03-21 08:40:17 -05:00
LinuxServer-CI
c69e09af00 Bot Updating Package Versions 2023-03-01 20:12:22 -06:00
LinuxServer-CI
6882f46a2c Bot Updating Templated Files 2023-03-02 03:09:50 +01:00
Adam
3f1ca1d92f
Merge pull request #255 from linuxserver/ping-develop 2023-02-24 12:07:53 +00:00
TheSpad
ec057dda95
Use /ping endpoint for readiness check 2023-02-24 11:19:47 +00:00
LinuxServer-CI
9d16e158ae Bot Updating Package Versions 2023-02-21 14:41:56 +01:00
LinuxServer-CI
9d2984e655 Bot Updating Package Versions 2023-02-14 14:43:28 +01:00
Adam
d8b754ccd9
Merge pull request #248 from linuxserver/develop-remove-armhf 2023-02-11 10:08:32 +00:00
TheSpad
623373c876
Remove dummy amrhf build 2023-02-10 21:19:25 +00:00
LinuxServer-CI
5d20bec082 Bot Updating Package Versions 2023-01-17 07:40:49 -06:00
LinuxServer-CI
9630e6b6c9 Bot Updating Package Versions 2023-01-10 14:42:03 +01:00
LinuxServer-CI
056862eb20 Bot Updating Package Versions 2022-12-29 10:29:08 +01:00
LinuxServer-CI
b740d43f66 Bot Updating Package Versions 2022-12-27 04:33:07 -06:00
LinuxServer-CI
d76450b1af Bot Updating Package Versions 2022-12-21 12:09:44 -06:00
Roxedus
081fbdc193
Merge pull request #243 from linuxserver/develop-3.17 2022-12-21 19:07:27 +01:00
TheSpad
fe1fd67593
Rebase develop to 3.17 2022-12-19 17:38:17 +00:00
Adam
474169d9e9
Merge pull request #242 from linuxserver/develop-remove-warning 2022-12-09 12:45:55 +00:00
TheSpad
dafc38abe2
Remove Alpine migration warning 2022-12-07 10:58:05 +00:00
LinuxServer-CI
6fd75b069d Bot Updating Templated Files 2022-11-29 03:07:39 +01:00
LinuxServer-CI
ceaba66624 Bot Updating Templated Files 2022-11-29 03:06:16 +01:00
LinuxServer-CI
3c3ef71757 Bot Updating Templated Files 2022-11-29 03:04:49 +01:00
LinuxServer-CI
32b4be470b Bot Updating Package Versions 2022-11-28 10:17:27 +01:00
Adam
80a6eb3123
Merge pull request #239 from linuxserver/develop-v4 2022-11-28 09:15:08 +00:00
TheSpad
0e7a02d9d1
Fix release version check 2022-11-24 17:26:04 +00:00
TheSpad
0d1221ca56
Use lsiown 2022-11-24 17:24:05 +00:00
TheSpad
aea21d7459
Switch to v4, rebase to Alpine 3.16, migrate to s6v3 2022-11-24 17:17:56 +00:00
LinuxServer-CI
a5715acc71 Bot Updating Package Versions 2022-11-22 14:49:40 +01:00
LinuxServer-CI
462c594408 Bot Updating Package Versions 2022-11-15 07:55:41 -06:00
LinuxServer-CI
9b551c1907 Bot Updating Templated Files 2022-11-15 07:51:43 -06:00
LinuxServer-CI
1cf0d1f9ef Bot Updating Package Versions 2022-11-08 15:02:57 +01:00
LinuxServer-CI
05fc4c80d9 Bot Updating Package Versions 2022-11-01 09:05:38 -05:00
LinuxServer-CI
8f49ab3cf3 Bot Updating Package Versions 2022-10-25 16:24:53 +02:00
LinuxServer-CI
b9e5c75b55 Bot Updating Package Versions 2022-10-11 09:16:04 -05:00
LinuxServer-CI
ac73c43990 Bot Updating Package Versions 2022-10-04 09:23:14 -05:00
LinuxServer-CI
298fd69552 Bot Updating Package Versions 2022-09-27 09:14:43 -05:00
LinuxServer-CI
1a76cd35d0 Bot Updating Package Versions 2022-09-20 16:13:06 +02:00
LinuxServer-CI
d11363ef3b Bot Updating Templated Files 2022-09-20 16:10:25 +02:00
LinuxServer-CI
f716ca0c03 Bot Updating Package Versions 2022-09-13 16:08:46 +02:00
LinuxServer-CI
7baa4da436 Bot Updating Package Versions 2022-09-06 09:03:35 -05:00
LinuxServer-CI
77f910d2db Bot Updating Package Versions 2022-08-16 08:47:41 -05:00
LinuxServer-CI
925ba0608b Bot Updating Package Versions 2022-08-09 09:05:42 -05:00
LinuxServer-CI
b0956933c2 Bot Updating Package Versions 2022-08-07 15:17:39 +02:00
Adam
f677d45b5c
Merge pull request #229 from linuxserver/amend-deprecate-develop 2022-08-07 14:15:24 +01:00
TheSpad
79961fb76f
Fix missing mono libs 2022-08-07 14:00:11 +01:00
TheSpad
faf131391d
Remove errant "t" 2022-08-07 12:20:56 +01:00
TheSpad
aa62b379f7
Tweak warning working 2022-08-07 12:18:58 +01:00
TheSpad
97908a8970
Pin base & app versions and add deprecation notice 2022-08-07 12:08:57 +01:00
Adam
279aa4a7d3
Merge pull request #226 from linuxserver/deprecate-armhf-develop 2022-08-04 18:54:24 +01:00
LinuxServer-CI
5b9f5e1d6e Bot Updating Package Versions 2022-08-02 21:24:43 +02:00
TheSpad
fe1505163f
Make servicefile executable 2022-08-02 20:22:35 +01:00
Adam
e82dda1e1c
Merge pull request #223 from linuxserver/develop-focal 2022-08-02 20:21:57 +01:00
TheSpad
7907c81237
Add startup delay for CI 2022-08-02 19:30:47 +01:00
TheSpad
de4070e122
Deprecate armhf 2022-08-02 17:36:18 +01:00
TheSpad
b5177b6640
Remove unsupported hyperlink 2022-08-02 17:07:36 +01:00
TheSpad
972ac45750
Actually definitely use the right bases for arm 2022-08-02 16:52:20 +01:00
TheSpad
948a43cc5c
Add armhf deprecation warning. 2022-08-02 16:42:48 +01:00
TheSpad
8443ad8f47
Change bases for arm too 2022-08-02 16:22:27 +01:00
TheSpad
66de2a887b
Rebase develop back to ubuntu due to Alpine dropping mono 2022-08-02 16:01:32 +01:00
LinuxServer-CI
8e17d177f9 Bot Updating Package Versions 2022-07-26 08:58:30 -05:00
LinuxServer-CI
3cf7242303 Bot Updating Package Versions 2022-07-19 08:59:53 -05:00
LinuxServer-CI
34cc71a50e Bot Updating Package Versions 2022-07-06 11:56:52 -05:00
LinuxServer-CI
58b3383649 Bot Updating Package Versions 2022-07-05 16:11:02 +02:00
LinuxServer-CI
cc0c5eb897 Bot Updating Package Versions 2022-05-16 01:38:39 +02:00
LinuxServer-CI
f98bb07ddc Bot Updating Templated Files 2022-05-03 08:57:30 -05:00
LinuxServer-CI
9f2853d068 Bot Updating Templated Files 2022-04-30 17:37:27 -05:00
LinuxServer-CI
31a4eaafc0 Bot Updating Templated Files 2022-05-01 00:35:49 +02:00
LinuxServer-CI
9ab2c14da4 Bot Updating Package Versions 2022-04-28 21:36:05 -05:00
LinuxServer-CI
747e96fb8e Bot Updating Package Versions 2022-04-12 15:48:26 +02:00
LinuxServer-CI
1483f93074 Bot Updating Package Versions 2022-04-09 23:45:12 -05:00
LinuxServer-CI
76d6b2c02b Bot Updating Package Versions 2022-04-05 15:45:58 +02:00
LinuxServer-CI
20e243fa5e Bot Updating Package Versions 2022-03-29 08:46:11 -05:00
LinuxServer-CI
6a8fefcca8 Bot Updating Package Versions 2022-03-22 08:43:36 -05:00
aptalca
a0eb3fe561
Merge pull request #212 from linuxserver/remove-develop-warning
Remove alpine rebase warning
2022-03-21 08:59:24 -04:00
TheSpad
fc02d37955 Remove alpine warning 2022-03-20 17:50:15 +00:00
LinuxServer-CI
375e3cf25a Bot Updating Package Versions 2022-03-20 09:39:00 +01:00
LinuxServer-CI
4c3e33e4bf Bot Updating Package Versions 2022-03-07 07:43:14 +01:00
LinuxServer-CI
594c064181 Bot Updating Package Versions 2022-02-27 22:34:26 +01:00
LinuxServer-CI
a969f4ecd9 Bot Updating Package Versions 2022-02-22 08:34:32 +01:00
Adam
4792840582
Merge pull request #209 from linuxserver/mono-cert-fix 2022-02-21 22:12:45 +00:00
TheSpad
35f0ce3c7f Run mono cert sync on init 2022-02-21 22:11:12 +00:00
LinuxServer-CI
cf015ba97d Bot Updating Package Versions 2022-02-21 17:50:52 +01:00
LinuxServer-CI
d9fc58fdb7 Bot Updating Templated Files 2022-02-21 17:48:04 +01:00
Adam
73c03a133b
Merge pull request #206 from linuxserver/make-develop-alpine 2022-02-21 16:46:51 +00:00
TheSpad
18c7299298 Update readme tags 2022-02-20 12:32:50 +00:00
TheSpad
7c0d7c366d Rebase develop branch to Alpine 2022-02-20 12:29:59 +00:00
LinuxServer-CI
c4b1d6bcf7 Bot Updating Package Versions 2022-02-17 03:44:55 +01:00
LinuxServer-CI
29854e9566 Bot Updating Package Versions 2022-01-23 22:32:05 +01:00
LinuxServer-CI
dd6c9edb54 Bot Updating Package Versions 2022-01-18 14:46:54 +01:00
LinuxServer-CI
8410b4f66a Bot Updating Package Versions 2021-12-24 02:37:41 +01:00
LinuxServer-CI
7f7cb0bf6e Bot Updating Templated Files 2021-12-16 20:29:15 +01:00
LinuxServer-CI
3d30b9a000 Bot Updating Templated Files 2021-12-16 20:27:59 +01:00
LinuxServer-CI
44b3faad8c Bot Updating Package Versions 2021-12-16 02:35:54 +01:00
LinuxServer-CI
f1ef1706b4 Bot Updating Package Versions 2021-12-13 13:54:23 +01:00
LinuxServer-CI
8ba4207f4e Bot Updating Templated Files 2021-12-13 13:51:36 +01:00
aptalca
dd48f1e94e
Merge pull request #201 from linuxserver/develop-mediainfo
Pull mediainfo from mediarenas repo, as per sonarr docs
2021-12-13 07:50:16 -05:00
Roxedus
0a2071754f
Pull mediainfo from mediarenas repo, as per sonarr docs 2021-12-13 10:19:18 +01:00
LinuxServer-CI
7eb1a5a523 Bot Updating Package Versions 2021-11-21 18:39:39 +01:00
LinuxServer-CI
b5a0a5efc0 Bot Updating Package Versions 2021-11-16 00:35:53 +01:00
LinuxServer-CI
b7b358d8f1 Bot Updating Package Versions 2021-11-04 00:32:41 +01:00
LinuxServer-CI
1aa8cdc3af Bot Updating Package Versions 2021-11-02 14:42:59 +01:00
LinuxServer-CI
94fe2c5f8e Bot Updating Package Versions 2021-10-19 15:42:44 +02:00
Eric Nemchik
290f5f8463
Merge pull request #197 from linuxserver/develop-umask
Remove old umask functionality
2021-10-10 14:11:16 -05:00
Roxedus
faad03c35f
Remove old umask functionality 2021-10-10 20:37:33 +02:00
LinuxServer-CI
839e554f4e Bot Updating Templated Files 2021-10-01 20:38:09 +02:00
LinuxServer-CI
5582df6e30 Bot Updating Templated Files 2021-10-01 20:37:03 +02:00
LinuxServer-CI
4a9d0b911e Bot Updating Package Versions 2021-09-28 23:29:48 +02:00
LinuxServer-CI
9bd8bf2bd0 Bot Updating Package Versions 2021-09-28 15:42:31 +02:00
LinuxServer-CI
1d6da0bd8a Bot Updating Package Versions 2021-09-21 15:42:48 +02:00
LinuxServer-CI
2687616acd Bot Updating Package Versions 2021-09-04 07:31:06 +02:00
LinuxServer-CI
719b595759 Bot Updating Package Versions 2021-08-30 04:43:50 +02:00
LinuxServer-CI
d04da3e1a5 Bot Updating Templated Files 2021-08-30 04:41:30 +02:00
LinuxServer-CI
42248b541e Bot Updating Package Versions 2021-08-24 15:43:51 +02:00
LinuxServer-CI
9fbbd0bdf1 Bot Updating Package Versions 2021-08-04 04:44:37 +02:00
LinuxServer-CI
05f4582380 Bot Updating Package Versions 2021-07-27 17:43:40 +02:00
LinuxServer-CI
ec4f4bd47b Bot Updating Package Versions 2021-07-27 15:43:24 +02:00
LinuxServer-CI
b246280a03 Bot Updating Package Versions 2021-07-13 13:46:16 +00:00
LinuxServer-CI
51b75a296e Bot Updating Package Versions 2021-07-04 13:41:29 -04:00
LinuxServer-CI
fb29348a00 Bot Updating Templated Files 2021-07-04 17:39:03 +00:00
LinuxServer-CI
048f556211 Bot Updating Templated Files 2021-07-04 13:37:24 -04:00
LinuxServer-CI
fcd32d3326 Bot Updating Package Versions 2021-06-08 15:50:32 +00:00
LinuxServer-CI
1deae96a2b Bot Updating Package Versions 2021-06-08 14:08:20 +00:00
LinuxServer-CI
a1e01de3f2 Bot Updating Package Versions 2021-05-27 10:08:50 +00:00
LinuxServer-CI
6d1485efb5 Bot Updating Package Versions 2021-05-07 16:42:06 -04:00
LinuxServer-CI
9915eb900d Bot Updating Package Versions 2021-05-04 13:53:43 +00:00
LinuxServer-CI
496a954501 Bot Updating Package Versions 2021-04-21 23:47:55 +00:00
LinuxServer-CI
7770bef7f8 Bot Updating Package Versions 2021-04-20 09:59:33 -04:00
LinuxServer-CI
e0178e07d9 Bot Updating Templated Files 2021-04-20 13:51:32 +00:00
LinuxServer-CI
521a04d219 Bot Updating Templated Files 2021-04-20 13:49:56 +00:00
LinuxServer-CI
983736defe Bot Updating Package Versions 2021-04-10 09:48:08 +00:00
LinuxServer-CI
d7c7df669a Bot Updating Package Versions 2021-04-06 09:57:07 -04:00
LinuxServer-CI
57a8d05ca3 Bot Updating Package Versions 2021-03-17 21:25:35 -04:00
LinuxServer-CI
2a8e6c7fce Bot Updating Package Versions 2021-03-10 16:50:06 +00:00
Roxedus
324e005f69
Merge pull request #181 from linuxserver/develop-v3 2021-03-10 17:44:52 +01:00
aptalca
d52f66fe22 add package_info 2021-03-10 10:48:32 -05:00
aptalca
9ca99c33e9 update pid name 2021-03-10 10:35:55 -05:00
aptalca
a575f9bd4e update to v3, rebase to mono 6 on focal 2021-03-10 10:11:16 -05:00
LinuxServer-CI
671965dd96 Bot Updating Package Versions 2021-03-09 13:56:24 +00:00
LinuxServer-CI
acb07fd3f6 Bot Updating Package Versions 2021-03-02 13:44:12 +00:00
LinuxServer-CI
4bc0de9dad Bot Updating Package Versions 2021-02-16 13:48:15 +00:00
LinuxServer-CI
202f46af12 Bot Updating Templated Files 2021-02-16 13:43:09 +00:00
LinuxServer-CI
17ae96fef3 Bot Updating Templated Files 2021-02-16 08:41:38 -05:00
LinuxServer-CI
b07980a0bd Bot Updating Package Versions 2021-02-09 13:49:07 +00:00
LinuxServer-CI
b54b2043ce Bot Updating Package Versions 2021-02-02 13:57:29 +00:00
LinuxServer-CI
ff5caf2f29 Bot Updating Package Versions 2021-01-26 13:54:29 +00:00
LinuxServer-CI
a8010b9787 Bot Updating Package Versions 2021-01-18 13:42:51 +00:00
aptalca
4c8c5e17d0
Merge pull request #175 from linuxserver/develop-deprecate-umask_set
Deprecate UMASK_SET in favor of UMASK in baseimage
2021-01-18 08:37:19 -05:00
Roxedus
914058792b
Deprecate UMASK_SET in favor of UMASK in baseimage 2021-01-18 10:59:42 +01:00
LinuxServer-CI
4f4831f3a2 Bot Updating Package Versions 2021-01-14 13:45:27 +00:00
LinuxServer-CI
f237cb2adb Bot Updating Templated Files 2021-01-14 08:38:18 -05:00
LinuxServer-CI
fca2a8eec2 Bot Updating Package Versions 2020-12-24 13:25:09 +00:00
LinuxServer-CI
53fbf94894 Bot Updating Package Versions 2020-12-16 17:10:58 -05:00
LinuxServer-CI
1e22253d25 Bot Updating Templated Files 2020-12-16 22:02:48 +00:00
LinuxServer-CI
3405c9a15f Bot Updating Templated Files 2020-12-16 21:59:22 +00:00
LinuxServer-CI
1d0778a623 Bot Updating Package Versions 2020-11-21 03:37:30 -05:00
LinuxServer-CI
35f59aca3a Bot Updating Package Versions 2020-11-14 08:38:11 +00:00
LinuxServer-CI
49be838aa4 Bot Updating Package Versions 2020-11-07 03:37:37 -05:00
LinuxServer-CI
202428a6eb Bot Updating Package Versions 2020-11-02 14:56:19 +00:00
LinuxServer-CI
8756d1cb8c Bot Updating Templated Files 2020-11-02 14:53:15 +00:00
thelamer
cd18a00a17 update baseimages 2020-11-02 06:49:38 -08:00
LinuxServer-CI
4f68cef48c Bot Updating Package Versions 2020-10-31 08:38:36 +00:00
LinuxServer-CI
4dd3897f9b Bot Updating Package Versions 2020-10-24 07:37:21 +00:00
LinuxServer-CI
7e254511f6 Bot Updating Package Versions 2020-10-17 07:40:17 +00:00
LinuxServer-CI
1d80099f10 Bot Updating Templated Files 2020-10-03 03:35:01 -04:00
LinuxServer-CI
2750108104 Bot Updating Templated Files 2020-10-03 03:33:59 -04:00
LinuxServer-CI
570303fe6e Bot Updating Package Versions 2020-09-26 07:35:26 +00:00
LinuxServer-CI
39e018091f Bot Updating Package Versions 2020-09-12 03:35:29 -04:00
LinuxServer-CI
08ce1a9c5f Bot Updating Package Versions 2020-09-05 03:35:23 -04:00
LinuxServer-CI
611ba0368a Bot Updating Package Versions 2020-08-22 07:36:47 +00:00
LinuxServer-CI
9d1ca7f6bc Bot Updating Templated Files 2020-08-22 03:33:59 -04:00
LinuxServer-CI
0e7afb98c8 Bot Updating Package Versions 2020-08-15 07:35:42 +00:00
LinuxServer-CI
de36a96da6 Bot Updating Package Versions 2020-08-08 03:37:22 -04:00
LinuxServer-CI
f743f5bd9f Bot Updating Templated Files 2020-08-08 03:34:49 -04:00
LinuxServer-CI
6688e82f22 Bot Updating Templated Files 2020-08-08 07:33:51 +00:00
LinuxServer-CI
e83ba44912 Bot Updating Package Versions 2020-08-01 07:37:40 +00:00
LinuxServer-CI
ddf95279f2 Bot Updating Package Versions 2020-07-25 03:35:33 -04:00
LinuxServer-CI
e7611f06bc Bot Updating Package Versions 2020-07-18 07:35:46 +00:00
LinuxServer-CI
563e9e3378 Bot Updating Package Versions 2020-07-11 07:35:49 +00:00
LinuxServer-CI
dcf9712670 Bot Updating Package Versions 2020-07-04 07:35:48 +00:00
LinuxServer-CI
e8098d2c59 Bot Updating Package Versions 2020-06-27 07:35:22 +00:00
LinuxServer-CI
6a61095c6a Bot Updating Package Versions 2020-06-20 09:35:21 +02:00
LinuxServer-CI
5dfc68f2cb Bot Updating Package Versions 2020-06-13 03:35:40 -04:00
LinuxServer-CI
0403f5ab40 Bot Updating Package Versions 2020-06-06 07:40:26 +00:00
LinuxServer-CI
89faaa3bd5 Bot Updating Templated Files 2020-06-06 07:33:43 +00:00
LinuxServer-CI
dc5532de4f Bot Updating Package Versions 2020-05-30 07:40:55 +00:00
LinuxServer-CI
a56c9b0bab Bot Updating Templated Files 2020-05-30 09:33:43 +02:00
LinuxServer-CI
ad9fdc73ef Bot Updating Package Versions 2020-05-23 09:36:15 +02:00
LinuxServer-CI
a7840a4ee2 Bot Updating Package Versions 2020-05-16 03:35:56 -04:00
LinuxServer-CI
14f80f31d8 Bot Updating Package Versions 2020-05-02 03:37:52 -04:00
LinuxServer-CI
d1ee4e0daf Bot Updating Templated Files 2020-05-02 07:34:10 +00:00
LinuxServer-CI
3fca99e5f0 Bot Updating Package Versions 2020-04-25 15:05:25 +00:00
LinuxServer-CI
7ffcc5bfb9 Bot Updating Templated Files 2020-04-09 17:44:40 -04:00
aptalca
9db6331d6e
Merge pull request #151 from linuxserver/develop-app
Move app to /app
2020-04-09 17:43:35 -04:00
LinuxServer-CI
b43eb605a4 Bot Updating Package Versions 2020-04-08 21:51:53 +01:00
LinuxServer-CI
20b014b112 Bot Updating Templated Files 2020-04-08 21:49:20 +01:00
LinuxServer-CI
3be63c2708 Bot Updating Templated Files 2020-04-08 21:48:15 +01:00
aptalca
f4bd3f5cca
Merge pull request #155 from linuxserver/nemchik-patch-2
Add donate link
2020-04-08 16:47:06 -04:00
Eric Nemchik
5b54f4b31d
Add donate link 2020-04-07 17:48:15 -05:00
Eric Nemchik
82b3b8ff88 Move app to /app 2020-04-05 02:24:08 -05:00
LinuxServer-CI
53df8d6e90 Bot Updating Package Versions 2020-03-28 08:38:34 +00:00
LinuxServer-CI
bbeae3871d Bot Updating Package Versions 2020-03-21 08:37:03 +00:00
LinuxServer-CI
c6d331d475 Bot Updating Package Versions 2020-03-13 17:25:13 +00:00
LinuxServer-CI
321adaf854 Bot Updating Package Versions 2020-02-22 08:36:07 +00:00
LinuxServer-CI
3dd7381f96 Bot Updating Package Versions 2020-02-15 08:42:26 +00:00
LinuxServer-CI
f579ca209e Bot Updating Package Versions 2020-02-08 08:36:42 +00:00
LinuxServer-CI
d90a4304fc Bot Updating Package Versions 2020-02-01 03:39:00 -05:00
LinuxServer-CI
bd3a317f7f Bot Updating Package Versions 2020-01-25 03:39:43 -05:00
LinuxServer-CI
366a32308b Bot Updating Package Versions 2020-01-18 08:36:31 +00:00
LinuxServer-CI
883099826f Bot Updating Package Versions 2019-12-21 08:39:47 +00:00
LinuxServer-CI
631dc158f7 Bot Updating Package Versions 2019-12-07 03:36:42 -05:00
LinuxServer-CI
dd4c83cf8f Bot Updating Templated Files 2019-11-30 08:33:57 +00:00
LinuxServer-CI
cf6fff85f5 Bot Updating Package Versions 2019-11-23 08:40:25 +00:00
LinuxServer-CI
6288d31f9a Bot Updating Package Versions 2019-11-16 03:38:31 -05:00
Jameel Al-Aziz
5a25387b77 Remove downloads and tv volumes from Dockerfile
Specifying the volumes in the Dockerfile is unnecessary and can lead to
excessive orphaned volume if the user chooses to use different paths at
runtime.
2019-11-02 21:59:15 -07:00
LinuxServer-CI
e936e5cd12 Bot Updating Package Versions 2019-11-02 04:42:16 -04:00
LinuxServer-CI
56c2a6fe66 Bot Updating Templated Files 2019-11-02 04:34:55 -04:00
LinuxServer-CI
b42ee1bddb Bot Updating Package Versions 2019-10-26 07:41:02 +00:00
LinuxServer-CI
11621314cc Bot Updating Package Versions 2019-10-19 03:35:52 -04:00
LinuxServer-CI
cf1770e5b5 Bot Updating Package Versions 2019-10-12 03:42:47 -04:00
LinuxServer-CI
206a6e034e Bot Updating Templated Files 2019-10-12 03:36:05 -04:00
LinuxServer-CI
a16f501725 Bot Updating Templated Files 2019-10-12 03:35:12 -04:00
LinuxServer-CI
a4800b9bca Bot Updating Package Versions 2019-10-05 03:40:45 -04:00
LinuxServer-CI
83613f83ea Bot Updating Package Versions 2019-09-28 03:37:31 -04:00
LinuxServer-CI
61c95f7af9 Bot Updating Package Versions 2019-09-21 10:04:47 -04:00
LinuxServer-CI
49151a70ad Bot Updating Package Versions 2019-09-14 03:38:07 -04:00
LinuxServer-CI
a30f3b7d7c Bot Updating Package Versions 2019-09-07 03:42:28 -04:00
LinuxServer-CI
2a3278d8a5 Bot Updating Templated Files 2019-09-07 03:34:58 -04:00
LinuxServer-CI
2e65d41fbf Bot Updating Templated Files 2019-09-07 08:33:53 +01:00
LinuxServer-CI
669e84e876 Bot Updating Package Versions 2019-08-24 08:39:02 +01:00
LinuxServer-CI
c7eda95dff Bot Updating Package Versions 2019-08-14 20:40:16 -04:00
LinuxServer-CI
bf3fcf4a9d Bot Updating Package Versions 2019-08-10 03:39:35 -04:00
LinuxServer-CI
b96a654c6d Bot Updating Package Versions 2019-08-03 15:56:15 -04:00
aptalca
69b8dd29ab
Merge pull request #124 from thelamer/develop
develop - adding LTS branch for us to freeze a stable mono for downstream
2019-08-03 15:46:36 -04:00
LinuxServer-CI
d951befb2f Bot Updating Package Versions 2019-08-03 03:37:16 -04:00
thelamer
1751a36820 adding LTS branch for us to freeze a stable mono for downstream 2019-08-01 17:51:06 -07:00
LinuxServer-CI
0485a3a4c2 Bot Updating Package Versions 2019-07-27 07:38:37 +00:00
LinuxServer-CI
51cec3bc06 Bot Updating Package Versions 2019-07-20 03:36:35 -04:00
LinuxServer-CI
fb8ee7e381 Bot Updating Package Versions 2019-07-13 03:56:21 -04:00
LinuxServer-CI
190fddd99c Bot Updating Templated Files 2019-07-06 07:33:49 +00:00
LinuxServer-CI
441816f894 Bot Updating Package Versions 2019-07-02 20:25:56 +00:00
LinuxServer-CI
854a4835b3 Bot Updating Package Versions 2019-06-29 08:39:12 +01:00
LinuxServer-CI
11379f4e3f Bot Updating Package Versions 2019-06-22 07:35:15 +00:00
SirFerdek
4bc6d1a29d Fix umask - get umask from environment
Makes it consistent with other linuxserver.io images.
2019-06-16 15:30:57 -07:00
LinuxServer-CI
8e35ce2350 Bot Updating Package Versions 2019-06-15 03:35:17 -04:00
LinuxServer-CI
f80dc0b241 Bot Updating Templated Files 2019-06-08 03:35:05 -04:00
LinuxServer-CI
188f98c605 Bot Updating Package Versions 2019-05-25 03:39:34 -04:00
LinuxServer-CI
7ea0fbb46c Bot Updating Templated Files 2019-05-25 03:34:52 -04:00
LinuxServer-CI
3cc1ae393b Bot Updating Templated Files 2019-05-25 03:33:54 -04:00
LinuxServer-CI
bba5416fd2 Bot Updating Package Versions 2019-05-19 15:50:05 +00:00
saarg
f39c833a9b
Merge pull request #108 from thelamer/develop
rebase to bionic develop
2019-05-19 17:40:17 +02:00
thelamer
8e6342b8d7 adding new branch to readme 2019-05-17 16:34:11 -07:00
thelamer
4550322a73 rebase to bionic 2019-05-10 12:51:53 -07:00
LinuxServer-CI
204bffa46a Bot Updating Package Versions 2019-05-04 03:36:59 -04:00
LinuxServer-CI
2f113215d7 Bot Updating Templated Files 2019-05-04 03:33:57 -04:00
LinuxServer-CI
91a20ba848 Bot Updating Package Versions 2019-04-27 08:35:52 +01:00
LinuxServer-CI
ca2fcadf5a Bot Updating Package Versions 2019-04-20 08:37:26 +01:00
LinuxServer-CI
bce9ba8c47 Bot Updating Package Versions 2019-04-13 03:35:58 -04:00
LinuxServer-CI
da15845bad Bot Updating Package Versions 2019-04-06 08:35:58 +01:00
LinuxServer-CI
0189186f12 Bot Updating Package Versions 2019-03-24 16:53:04 -04:00
aptalca
db94a7c929
Merge pull request #105 from thelamer/develop
Switching to new Base images, shift to arm32v7 tag.
2019-03-24 16:43:19 -04:00
thelamer
b719c72871 Switching to new Base images, shift to arm32v7 tag. 2019-03-23 18:46:01 -07:00
LinuxServer-CI
656d0e80c3 Bot Updating Package Versions 2019-03-23 08:43:20 +00:00
LinuxServer-CI
a7c176abea Bot Updating Package Versions 2019-03-16 08:36:15 +00:00
LinuxServer-CI
8a77db53f7 Bot Updating Package Versions 2019-03-09 03:39:18 -05:00
LinuxServer-CI
557e418163 Bot Updating Templated Files 2019-03-09 03:33:43 -05:00
LinuxServer-CI
a3779d2284 Bot Updating Package Versions 2019-03-02 03:37:38 -05:00
LinuxServer-CI
d848513678 Bot Updating Templated Files 2019-03-02 03:33:42 -05:00
LinuxServer-CI
688b0b0455 Bot Updating Package Versions 2019-02-23 03:36:35 -05:00
LinuxServer-CI
848c64dc7e Bot Updating Package Versions 2019-02-09 03:36:58 -05:00
LinuxServer-CI
f587043b1c Bot Updating Templated Files 2019-02-09 08:33:38 +00:00
LinuxServer-CI
8c368ce62b Bot Updating Package Versions 2019-02-07 12:09:59 -05:00
LinuxServer-CI
f1b7856dbf Bot Updating Templated Files 2019-02-07 17:06:39 +00:00
LinuxServer-CI
83c9fe088f Bot Updating Package Versions 2019-02-01 21:09:47 +00:00
aptalca
bb25d2f468
Merge pull request #92 from linuxserver/pipeline-develop
Pipeline develop
2019-02-01 16:05:49 -05:00
aptalca
5d2f12f3d6 update readme, add tag info 2019-02-01 19:41:40 +00:00
aptalca
64878b3f7b use https for api endpoints 2019-01-28 20:10:40 -08:00
aptalca
208e435171 standardize Dockerfiles 2019-01-28 20:10:40 -08:00
aptalca
081f0704b5 update Jenkinsfile 2019-01-28 20:10:40 -08:00
aptalca
f540632b28 standardize the package download urls and simplify version retrieval 2019-01-28 20:10:40 -08:00
Ryan Kuba
e18289b0f2
Merge branch 'develop' into pipeline-develop 2019-01-21 01:01:11 -08:00
thelamer
18aeb041ea updating branch with current pipeline build logic in prep for PR 2019-01-20 20:56:13 -08:00
thelamer
4962cf1985 adding pre-release tagging logic to develop branch for github version control 2018-09-27 23:19:17 -07:00
thelamer
a96fbd8dfd wrong endpoint to determine package version for develop build 2018-09-08 22:06:16 -07:00
thelamer
249f35a4a8 adding develop build logic and multi arching 2018-09-08 21:57:41 -07:00
sparklyballs
2d8b18aa51 change baseimages to new ubuntu style 2018-03-14 18:37:20 +00:00
sparklyballs
68270b7856
Merge pull request #64 from linuxserver/develop_continuation_lines
fix continuation lines xenial
2017-12-16 17:25:24 +00:00
sparklyballs
663d478113 fix continuation lines xenial 2017-12-15 11:26:50 +00:00
sparklyballs
c0e94b3c59 Update Dockerfile 2017-07-12 15:46:06 +01:00
sparklyballs
497e3a7f31 update of README with badges for new ci 2017-07-12 15:21:39 +01:00
Neil
c9b0406e8b Merge pull request #54 from linuxserver/repo_fix
fix repo for sonarr develop branch
2017-06-19 10:46:46 +01:00
sparklyballs
3f090cccf9 fix repo for sonarr develop branch 2017-06-19 10:29:22 +01:00
j0nnymoe
d6f019d53f Merge pull request #49 from linuxserver/mono_rebase_develop
Mono rebase develop
2017-04-17 17:21:39 +01:00
sparklyballs
99f98d8b9f removed wrong repository 2017-04-17 11:39:10 +01:00
sparklyballs
001dff6d7b add python note to changelog 2017-04-17 11:08:49 +01:00
sparklyballs
87144862a7 rebase to inhouse mono image 2017-04-17 10:51:22 +01:00
sparklyballs
f8199a871c update README to latest master spec 2017-04-15 02:30:57 +01:00
aptalca
93a8bb7d9c Merge pull request #46 from linuxserver/mono_repo_develop
switch to official mono repository
2017-04-13 18:22:10 -04:00
sparklyballs
ca5b9d14b8 switch to official mono repository 2017-04-13 23:08:21 +01:00
sparklyballs
3b9e4ba956 fix formatting markdown README 2017-03-15 17:31:37 +00:00
sparklyballs
d90e60b91c make develop branch as per sonarr dev request 2017-01-14 00:41:49 +00:00
17 changed files with 823 additions and 889 deletions

View file

@ -6,7 +6,7 @@
* Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
## Common files
@ -24,7 +24,7 @@
## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-sonarr/edit/master/readme-vars.yml).
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-sonarr/edit/develop/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-sonarr)
@ -105,17 +105,17 @@ docker build \
-t linuxserver/sonarr:latest .
```
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```bash
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
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-sonarr/tree/master/root), add an entry to the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-sonarr/tree/develop/root), add an entry to the changelog
```yml
changelogs:

View file

@ -1,7 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: Discord chat support
url: https://linuxserver.io/discord
url: https://discord.gg/YWrKVTn
about: Realtime support / chat with the community and the team.
- name: Discourse discussion forum

View file

@ -21,7 +21,7 @@
------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-sonarr/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-sonarr/blob/develop/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------

View file

@ -4,39 +4,26 @@ on:
workflow_dispatch:
jobs:
external-trigger-master:
external-trigger-develop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: External Trigger
if: github.ref == 'refs/heads/master'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
if: github.ref == 'refs/heads/develop'
run: |
printf "# External trigger for docker-sonarr\n\n" >> $GITHUB_STEP_SUMMARY
if grep -q "^sonarr_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`sonarr_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^sonarr_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`sonarr_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of master branch. To disable this trigger, add \`sonarr_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(curl -sX GET http://services.sonarr.tv/v1/releases | jq -r '.[] | select(.releaseChannel=="v4-stable") | .version')
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^sonarr_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_SONARR_DEVELOP }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_SONARR_DEVELOP is set; skipping trigger. ****"
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_SONARR_DEVELOP\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "**** External trigger running off of develop branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_SONARR_DEVELOP\". ****"
echo "External trigger running off of develop branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_SONARR_DEVELOP\`" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving external version ****"
EXT_RELEASE=$(curl -sX GET http://services.sonarr.tv/v1/releases | jq -r '.[] | select(.releaseChannel=="v4-nightly") | .version')
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve external version for sonarr branch master"
echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for sonarr branch develop"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-sonarr/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"}],
@ -44,42 +31,24 @@ jobs:
exit 1
fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
echo "**** External version: ${EXT_RELEASE} ****"
echo "External version: ${EXT_RELEASE}" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving last pushed version ****"
image="linuxserver/sonarr"
tag="latest"
tag="develop"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fsonarr%3Apull" \
| jq -r '.token')
multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.index.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}")
if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# If there's a layer element it's a single-arch manifest so just get that digest
digest=$(jq -r '.config.digest' <<< "${multidigest}")
else
# Otherwise it's multi-arch or has manifest annotations
if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# Check for manifest annotations and delete if found
multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}")
fi
if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then
# If there's still more than one digest, it's multi-arch
multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}")
else
# Otherwise it's single arch
multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}")
fi
if digest=$(curl -s \
multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.manifest.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
digest=$(jq -r '.config.digest' <<< "${digest}");
fi
fi
"https://ghcr.io/v2/${image}/manifests/${tag}" \
| jq -r 'first(.manifests[].digest)')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \
| jq -r '.config.digest')
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}")
@ -91,54 +60,45 @@ jobs:
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 "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve last pushed version for sonarr tag latest"
echo "**** Can't retrieve last pushed version, exiting ****"
FAILURE_REASON="Can't retrieve last pushed version for sonarr tag develop"
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}\`" >> $GITHUB_STEP_SUMMARY
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" >> $GITHUB_STEP_SUMMARY
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-sonarr/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" >> $GITHUB_STEP_SUMMARY
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-sonarr/job/develop/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
if [[ "${artifacts_found}" == "false" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="New version ${EXT_RELEASE} for sonarr tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
else
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if [[ "${artifacts_found}" == "true" ]]; then
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
fi
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-sonarr/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'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--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 sonarr 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 }}
fi
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-sonarr/job/develop/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 ****"
sleep 10
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" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--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 sonarr tag develop. 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 }}
fi

View file

@ -15,31 +15,31 @@ jobs:
- name: External Trigger Scheduler
run: |
printf "# External trigger scheduler for docker-sonarr\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
do
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-sonarr/${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 appears to be live and trigger is not os; checking workflow." >> $GITHUB_STEP_SUMMARY
echo "**** Branch ${br} appears to be live and trigger is not os; checking workflow. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-sonarr/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY
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" \
-d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-sonarr/actions/workflows/external_trigger.yml/dispatches
else
echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "Skipping branch ${br} due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
else
echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
echo "**** ${br} is either a dev branch, or has no external version; skipping trigger. ****"
echo "Skipping branch ${br} due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
fi
done

View file

@ -9,5 +9,5 @@ jobs:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-sonarr/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-sonarr/blob/develop/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}

42
.github/workflows/package_trigger.yml vendored Executable file
View file

@ -0,0 +1,42 @@
name: Package Trigger Main
on:
workflow_dispatch:
jobs:
package-trigger-develop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: Package Trigger
if: github.ref == 'refs/heads/develop'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_SONARR_DEVELOP }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_SONARR_DEVELOP is set; skipping trigger. ****"
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_SONARR_DEVELOP\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-sonarr/job/develop/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 develop branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_SONARR_DEVELOP\". ****"
echo "Package trigger running off of develop branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_SONARR_DEVELOP\`" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-sonarr/job/develop/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 ****"
sleep 10
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" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"

View file

@ -14,87 +14,37 @@ jobs:
fetch-depth: '0'
- name: Package Trigger Scheduler
env:
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
run: |
printf "# Package trigger scheduler for docker-sonarr\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
do
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-sonarr/${br}/jenkins-vars.yml)
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-sonarr/${br}/Jenkinsfile >/dev/null 2>&1; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-sonarr/${br}/readme-vars.yml)
if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif grep -q "^sonarr_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`sonarr_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-sonarr/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
else
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY
printf "> To disable, add \`sonarr_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-sonarr/${br}/jenkins-vars.yml | yq -r '.ls_branch')
if [ "${br}" == "${ls_branch}" ]; then
echo "**** Branch ${br} appears to be live; checking workflow. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-sonarr/${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} "
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-sonarr/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
if [[ -z "${response}" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Jenkins build could not be triggered. Skipping branch."
continue
fi
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
if ! curl -ifX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Unable to change the Jenkins job description."
fi
sleep 20
curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-sonarr/actions/workflows/package_trigger.yml/dispatches
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
if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
if [[ -n "${triggered_branches}" ]]; then
NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-sonarr/activity/ \n"
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
fi
if [[ -n "${skipped_branches}" ]]; then
NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n"
fi
echo "**** Notifying Discord ****"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Package Check Build(s) for sonarr** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
echo "**** Notifying Discord ****"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Package Check Build(s) Triggered for sonarr** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-sonarr/activity/"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:3.21
FROM ghcr.io/linuxserver/baseimage-alpine:3.20
# set version label
ARG BUILD_DATE
@ -11,8 +11,8 @@ LABEL maintainer="thespad"
# set environment variables
ENV XDG_CONFIG_HOME="/config/xdg" \
SONARR_CHANNEL="v4-stable" \
SONARR_BRANCH="main" \
SONARR_BRANCH="develop" \
SONARR_CHANNEL="v4-nightly" \
COMPlus_EnableDiagnostics=0 \
TMPDIR=/run/sonarr-temp

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.21
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.20
# set version label
ARG BUILD_DATE
@ -11,8 +11,8 @@ LABEL maintainer="thespad"
# set environment variables
ENV XDG_CONFIG_HOME="/config/xdg" \
SONARR_CHANNEL="v4-stable" \
SONARR_BRANCH="main" \
SONARR_BRANCH="develop" \
SONARR_CHANNEL="v4-nightly" \
COMPlus_EnableDiagnostics=0 \
TMPDIR=/run/sonarr-temp

525
Jenkinsfile vendored
View file

@ -8,7 +8,7 @@ pipeline {
}
// Input to determine if this is a package check
parameters {
string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK')
string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK')
}
// Configuration for the variables used for this specific repo
environment {
@ -17,8 +17,6 @@ pipeline {
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
DOCKERHUB_TOKEN=credentials('docker-hub-ci-pat')
QUAYIO_API_TOKEN=credentials('quayio-repo-api-token')
GIT_SIGNING_KEY=credentials('484fbca6-9a4f-455e-b9e3-97ac98785f5f')
BUILD_VERSION_ARG = 'SONARR_VERSION'
LS_USER = 'linuxserver'
LS_REPO = 'docker-sonarr'
@ -26,57 +24,31 @@ pipeline {
DOCKERHUB_IMAGE = 'linuxserver/sonarr'
DEV_DOCKERHUB_IMAGE = 'lsiodev/sonarr'
PR_DOCKERHUB_IMAGE = 'lspipepr/sonarr'
DIST_IMAGE = 'ubuntu'
DIST_IMAGE = 'alpine'
MULTIARCH='true'
CI='true'
CI_WEB='true'
CI_PORT='8989'
CI_SSL='false'
CI_DELAY='240'
CI_DELAY='120'
CI_DOCKERENV=''
CI_AUTH=''
CI_WEBPATH='/system/status'
}
stages {
stage("Set git config"){
steps{
sh '''#!/bin/bash
cat ${GIT_SIGNING_KEY} > /config/.ssh/id_sign
chmod 600 /config/.ssh/id_sign
ssh-keygen -y -f /config/.ssh/id_sign > /config/.ssh/id_sign.pub
echo "Using $(ssh-keygen -lf /config/.ssh/id_sign) to sign commits"
git config --global gpg.format ssh
git config --global user.signingkey /config/.ssh/id_sign
git config --global commit.gpgsign true
'''
}
}
// Setup all the basic environment variables needed for the build
stage("Set ENV Variables base"){
steps{
echo "Running on node: ${NODE_NAME}"
sh '''#! /bin/bash
echo "Pruning builder"
docker builder prune -f --builder container || :
containers=$(docker ps -q)
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit')
for container in ${containers}; do
if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then
echo "skipping buildx container in docker stop"
else
echo "Stopping container ${container}"
docker stop ${container}
fi
done
docker stop ${containers}
fi
docker system prune -f --volumes || :
docker image prune -af || :
'''
docker system prune -af --volumes || : '''
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:develop 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' ''',
@ -93,7 +65,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 ./root/donate.txt'
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml ./root/donate.txt'
}
sh '''#! /bin/bash
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
@ -105,7 +77,7 @@ pipeline {
script{
env.LS_TAG_NUMBER = sh(
script: '''#! /bin/bash
tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null)
tagsha=$(git rev-list -n 1 develop-${LS_RELEASE} 2>/dev/null)
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
echo ${LS_RELEASE_NUMBER}
elif [ -z "${GIT_COMMIT}" ]; then
@ -143,7 +115,7 @@ pipeline {
steps{
script{
env.EXT_RELEASE = sh(
script: ''' curl -sX GET http://services.sonarr.tv/v1/releases | jq -r '.[] | select(.releaseChannel=="v4-stable") | .version' ''',
script: ''' curl -sX GET http://services.sonarr.tv/v1/releases | jq -r '.[] | select(.releaseChannel=="v4-nightly") | .version' ''',
returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command'
}
@ -183,10 +155,10 @@ pipeline {
}
}
}
// If this is a master build use live docker endpoints
// If this is a develop build use live docker endpoints
stage("Set ENV live build"){
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
}
steps {
@ -196,21 +168,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-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
}
}
}
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
not {branch "master"}
not {branch "develop"}
environment name: 'CHANGE_ID', value: ''
}
steps {
@ -220,15 +191,14 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
}
}
}
@ -244,16 +214,15 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
}
}
}
@ -288,7 +257,7 @@ pipeline {
// Use helper containers to render templated files
stage('Update-Templates') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
@ -300,24 +269,24 @@ pipeline {
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
# Cloned repo paths for templating:
# ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch master of ${LS_USER}/${LS_REPO} for running the jenkins builder on
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch master of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
# ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch develop of ${LS_USER}/${LS_REPO} for running the jenkins builder on
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch develop of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
# ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github
# ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
# ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
git clone --branch master --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
git clone --branch develop --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest
echo "Starting Stage 1 - Jenkinsfile update"
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
git checkout -f develop
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@ -326,7 +295,7 @@ pipeline {
echo "Jenkinsfile is up to date."
fi
echo "Starting 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 .github/workflows/package_trigger.yml"
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"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@ -336,13 +305,13 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
git checkout -f develop
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done
git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@ -350,35 +319,6 @@ pipeline {
else
echo "No templates to delete"
fi
echo "Starting Stage 2.5 - Update init diagram"
if ! grep -q 'init_diagram:' readme-vars.yml; then
echo "Adding the key 'init_diagram' to readme-vars.yml"
sed -i '\\|^#.*changelog.*$|d' readme-vars.yml
sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml
fi
mkdir -p ${TEMPDIR}/d2
docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:latest
ls -al ${TEMPDIR}/d2
yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-latest.d2\\")" readme-vars.yml
if [[ $(md5sum readme-vars.yml | cut -c1-8) != $(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | cut -c1-8) ]]; then
echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit."
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
cp ${WORKSPACE}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml
git add readme-vars.yml
git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
exit 0
else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Init diagram is unchanged"
fi
echo "Starting Stage 3 - Update templates"
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
@ -387,7 +327,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
git checkout -f develop
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
@ -400,8 +340,8 @@ pipeline {
fi
git add readme-vars.yml ${TEMPLATED_FILES}
git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@ -441,9 +381,9 @@ pipeline {
echo "Updating Unraid template"
cd ${TEMPDIR}/unraid/templates/
GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
if grep -wq "^${CONTAINER_NAME}$" ${TEMPDIR}/unraid/templates/unraid/ignore.list && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then
echo "Image is on the ignore list, and already in the deprecation folder."
elif grep -wq "^${CONTAINER_NAME}$" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
elif grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
@ -502,7 +442,7 @@ pipeline {
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
@ -515,10 +455,10 @@ pipeline {
}
}
}
// If this is a master build check the S6 service file perms
// If this is a develop build check the S6 service file perms
stage("Check S6 Service file Permissions"){
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@ -536,10 +476,10 @@ pipeline {
}
}
/* #######################
GitLab Mirroring and Quay.io Repo Visibility
GitLab Mirroring
####################### */
// Ping into Gitlab to mirror this repo and have a registry endpoint & mark this repo on Quay.io as public
stage("GitLab Mirror and Quay.io Visibility"){
// Ping into Gitlab to mirror this repo and have a registry endpoint
stage("GitLab Mirror"){
when {
environment name: 'EXIT_STATUS', value: ''
}
@ -555,8 +495,6 @@ pipeline {
"visibility":"public"}' '''
sh '''curl -H "Private-Token: ${GITLAB_TOKEN}" -X PUT "https://gitlab.com/api/v4/projects/Linuxserver.io%2F${LS_REPO}" \
-d "mirror=true&import_url=https://github.com/linuxserver/${LS_REPO}.git" '''
sh '''curl -H "Content-Type: application/json" -H "Authorization: Bearer ${QUAYIO_API_TOKEN}" -X POST "https://quay.io/api/v1/repository${QUAYIMAGE/quay.io/}/changevisibility" \
-d '{"visibility":"public"}' ||: '''
}
}
/* ###############
@ -587,42 +525,8 @@ pipeline {
--label \"org.opencontainers.image.title=Sonarr\" \
--label \"org.opencontainers.image.description=[Sonarr](https://sonarr.tv/) (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--provenance=true --sbom=true --builder=container --load \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh '''#! /bin/bash
set -e
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker tag ${IMAGE}:${META_TAG} ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
done
'''
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
done
for p in $(jobs -p); do
wait "$p" || { echo "job $p failed" >&2; exit 1; }
done
fi
'''
}
}
}
}
// Build MultiArch Docker containers for push to LS Repo
@ -653,42 +557,8 @@ pipeline {
--label \"org.opencontainers.image.title=Sonarr\" \
--label \"org.opencontainers.image.description=[Sonarr](https://sonarr.tv/) (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--provenance=true --sbom=true --builder=container --load \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh '''#! /bin/bash
set -e
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
done
'''
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
done
for p in $(jobs -p); do
wait "$p" || { echo "job $p failed" >&2; exit 1; }
done
fi
'''
}
}
}
}
stage('Build ARM64') {
@ -697,6 +567,10 @@ pipeline {
}
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 "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.aarch64"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
@ -712,50 +586,18 @@ pipeline {
--label \"org.opencontainers.image.title=Sonarr\" \
--label \"org.opencontainers.image.description=[Sonarr](https://sonarr.tv/) (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. \" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--provenance=true --sbom=true --builder=container --load \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh '''#! /bin/bash
set -e
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker tag ${IMAGE}:arm64v8-${META_TAG} ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
done
'''
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} &
done
for p in $(jobs -p); do
wait "$p" || { echo "job $p failed" >&2; exit 1; }
done
fi
'''
}
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 -f --volumes || :
docker image prune -af || :
'''
docker system prune -af --volumes || : '''
}
}
}
@ -763,7 +605,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@ -786,14 +628,14 @@ pipeline {
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f develop
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/
wait
git add package_versions.txt
git commit -m 'Bot Updating Package Versions'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
echo "Package tag updated, stopping build process"
else
@ -811,7 +653,7 @@ pipeline {
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: ''
@ -825,7 +667,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
@ -859,14 +701,6 @@ pipeline {
}
sh '''#! /bin/bash
set -e
if grep -q 'docker-baseimage' <<< "${LS_REPO}"; then
echo "Detected baseimage, setting LSIO_FIRST_PARTY=true"
if [ -n "${CI_DOCKERENV}" ]; then
CI_DOCKERENV="LSIO_FIRST_PARTY=true|${CI_DOCKERENV}"
else
CI_DOCKERENV="LSIO_FIRST_PARTY=true"
fi
fi
docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
@ -879,7 +713,6 @@ pipeline {
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \
-e RELEASE_TAG=\"latest\" \
-e PORT=\"${CI_PORT}\" \
-e SSL=\"${CI_SSL}\" \
-e BASE=\"${DIST_IMAGE}\" \
@ -889,7 +722,6 @@ pipeline {
-e WEB_SCREENSHOT=\"${CI_WEB}\" \
-e WEB_AUTH=\"${CI_AUTH}\" \
-e WEB_PATH=\"${CI_WEBPATH}\" \
-e NODE_NAME=\"${NODE_NAME}\" \
-t ghcr.io/linuxserver/ci:latest \
python3 test_build.py'''
}
@ -905,23 +737,37 @@ pipeline {
environment name: 'EXIT_STATUS', value: ''
}
steps {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
for PUSHIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
[[ ${PUSHIMAGE%%/*} =~ \\. ]] && PUSHIMAGEPLUS="${PUSHIMAGE}" || PUSHIMAGEPLUS="docker.io/${PUSHIMAGE}"
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
if [[ "${PUSHIMAGEPLUS}" == "$(cut -d "/" -f1 <<< ${i})"* ]]; then
CACHEIMAGE=${i}
fi
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry(5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:develop
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
fi
docker push ${PUSHIMAGE}:develop
docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${PUSHIMAGE}:${SEMVER}
fi
done
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
if [ -n "${SEMVER}" ]; then
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
fi
done
'''
'''
}
}
}
}
@ -932,41 +778,64 @@ pipeline {
environment name: 'EXIT_STATUS', value: ''
}
steps {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
[[ ${MANIFESTIMAGE%%/*} =~ \\. ]] && MANIFESTIMAGEPLUS="${MANIFESTIMAGE}" || MANIFESTIMAGEPLUS="docker.io/${MANIFESTIMAGE}"
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
if [[ "${MANIFESTIMAGEPLUS}" == "$(cut -d "/" -f1 <<< ${i})"* ]]; then
CACHEIMAGE=${i}
fi
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry(5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
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-develop
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-develop
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}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:amd64-develop
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-develop
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
done
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
if [ -n "${SEMVER}" ]; then
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
fi
done
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
done
'''
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker buildx imagetools create -t ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:amd64-develop ${MANIFESTIMAGE}:arm64v8-develop
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
done
'''
}
}
}
}
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
branch "master"
branch "develop"
expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
@ -978,17 +847,17 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to develop",\
"type": "commit",\
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "master",\
"target_commitish": "develop",\
"name": "'${META_TAG}'",\
"body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": false}' >> releasebody.json
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": true}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
}
@ -996,14 +865,14 @@ pipeline {
// Add protection to the release branch
stage('Github-Release-Branch-Protection') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
echo "Setting up protection for release branch master"
echo "Setting up protection for release branch develop"
sh '''#! /bin/bash
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/master/protection \
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/develop/protection \
-d $(jq -c . << EOF
{
"required_status_checks": null,
@ -1112,94 +981,32 @@ EOF
###################### */
post {
always {
sh '''#!/bin/bash
rm -rf /config/.ssh/id_sign
rm -rf /config/.ssh/id_sign.pub
git config --global --unset gpg.format
git config --global --unset user.signingkey
git config --global --unset commit.gpgsign
'''
script{
env.JOB_DATE = sh(
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
returnStdout: true).trim()
if (env.EXIT_STATUS == "ABORTED"){
sh 'echo "build aborted"'
}else{
if (currentBuild.currentResult == "SUCCESS"){
if (env.GITHUBIMAGE =~ /lspipepr/){
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=3957028
env.JOB_WEBHOOK_FOOTER='PR Build'
}else if (env.GITHUBIMAGE =~ /lsiodev/){
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=3957028
env.JOB_WEBHOOK_FOOTER='Dev Build'
}else{
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=1681177
env.JOB_WEBHOOK_FOOTER='Live Build'
}
}else{
if (env.GITHUBIMAGE =~ /lspipepr/){
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=12669523
env.JOB_WEBHOOK_FOOTER='PR Build'
}else if (env.GITHUBIMAGE =~ /lsiodev/){
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=12669523
env.JOB_WEBHOOK_FOOTER='Dev Build'
}else{
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=16711680
env.JOB_WEBHOOK_FOOTER='Live Build'
}
}
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'": '${JOB_WEBHOOK_COLOUR}',\
"footer": {"text" : "'"${JOB_WEBHOOK_FOOTER}"'"},\
"timestamp": "'${JOB_DATE}'",\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** '${JOB_WEBHOOK_STATUS}'\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
}
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,\
"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,\
"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 "Pruning builder!!"
docker builder prune -f --builder container || :
containers=$(docker ps -q)
echo "Performing docker system prune!!"
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit')
for container in ${containers}; do
if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then
echo "skipping buildx container in docker stop"
else
echo "Stopping container ${container}"
docker stop ${container}
fi
done
docker stop ${containers}
fi
docker system prune -f --volumes || :
docker image prune -af || :
docker system prune -af --volumes || :
'''
cleanWs()
}
}
}
def retry_backoff(int max_attempts, int power_base, Closure c) {
int n = 0
while (n < max_attempts) {
try {
c()
return
} catch (err) {
if ((n + 1) >= max_attempts) {
throw err
}
sleep(power_base ** n)
n++
}
}
return
}

View file

@ -1,9 +1,9 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-sonarr/blob/master/.github/CONTRIBUTING.md -->
<!-- Please read https://github.com/linuxserver/docker-sonarr/blob/develop/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
@ -20,7 +20,7 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
@ -36,7 +36,7 @@ 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/sonarr)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/sonarr.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/sonarr)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/sonarr.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/sonarr)
[![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-sonarr%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-sonarr/job/master/)
[![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-sonarr%2Fjob%2Fdevelop%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-sonarr/job/develop/)
[![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%2Fsonarr%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/sonarr/latest/index.html)
[Sonarr](https://sonarr.tv/) (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.
@ -47,7 +47,7 @@ Find us at:
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `lscr.io/linuxserver/sonarr:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/sonarr:develop` 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:
@ -63,8 +63,8 @@ This image provides various versions that are available via tags. Please read th
| Tag | Available | Description |
| :----: | :----: |--- |
| latest | ✅ | Stable releases from Sonarr |
| develop | ✅ | Development releases from Sonarr |
| latest | ✅ | Stable releases from Sonarr (currently v4) |
| develop | ✅ | Development releases from Sonarr (currently v4) |
## Application Setup
@ -82,24 +82,18 @@ The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/D
This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/).
## Non-Root Operation
This image can be run with a non-root user. For details please [read the docs](https://docs.linuxserver.io/misc/non-root/).
## Usage
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
>[!NOTE]
>Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml
---
services:
sonarr:
image: lscr.io/linuxserver/sonarr:latest
image: lscr.io/linuxserver/sonarr:develop
container_name: sonarr
environment:
- PUID=1000
@ -107,8 +101,8 @@ services:
- TZ=Etc/UTC
volumes:
- /path/to/sonarr/data:/config
- /path/to/tvseries:/tv #optional
- /path/to/downloadclient-downloads:/downloads #optional
- /path/to/tv:/tv #optional
- /path/to/download-client-downloads:/downloads #optional
ports:
- 8989:8989
restart: unless-stopped
@ -124,10 +118,10 @@ docker run -d \
-e TZ=Etc/UTC \
-p 8989:8989 \
-v /path/to/sonarr/data:/config \
-v /path/to/tvseries:/tv `#optional` \
-v /path/to/downloadclient-downloads:/downloads `#optional` \
-v /path/to/tv:/tv `#optional` \
-v /path/to/download-client-downloads:/downloads `#optional` \
--restart unless-stopped \
lscr.io/linuxserver/sonarr:latest
lscr.io/linuxserver/sonarr:develop
```
## Parameters
@ -136,15 +130,14 @@ Containers are configured using parameters passed at runtime (such as those abov
| Parameter | Function |
| :----: | --- |
| `-p 8989:8989` | The port for the Sonarr web interface |
| `-p 8989` | The port for the Sonarr web interface |
| `-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). |
| `-v /config` | Database and sonarr configs |
| `-v /tv` | Location of TV library on disk (See note in Application setup) |
| `-v /downloads` | Location of download managers output directory (See note in Application setup) |
| `-v /config` | Database and Sonarr configs |
| `-v /tv` | Location of TV library on disk |
| `-v /downloads` | Location of download managers output directory |
| `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). |
| `--user=1000:1000` | Run container with a non-root user. Please [read the docs](https://docs.linuxserver.io/misc/non-root/). |
## Environment variables from files (Docker secrets)
@ -210,7 +203,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/sonarr:latest
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/sonarr:develop
```
## Updating Info
@ -258,7 +251,7 @@ Below are the instructions for updating containers:
* Update the image:
```bash
docker pull lscr.io/linuxserver/sonarr:latest
docker pull lscr.io/linuxserver/sonarr:develop
```
* Stop the running container:
@ -282,8 +275,7 @@ Below are the instructions for updating containers:
### Image Update Notifications - Diun (Docker Image Update Notifier)
>[!TIP]
>We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
**tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally
@ -295,34 +287,30 @@ cd docker-sonarr
docker build \
--no-cache \
--pull \
-t lscr.io/linuxserver/sonarr:latest .
-t lscr.io/linuxserver/sonarr:develop .
```
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```bash
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions
* **09.01.25:** - Fix rootless entrypoint.
* **23.12.24:** - Rebase Alpine 3.21.
* **31.05.24:** - Rebase Alpine 3.20.
* **25.05.24:** - Rebase to Alpine 3.20.
* **12.01.24:** - Update download url.
* **30.12.23:** - Rebase master branch to Alpine 3.19.
* **15.02.23:** - Rebase master branch to Jammy.
* **19.12.22:** - Rebase develop branch Alpine 3.17.
* **24.11.22:** - Bump develop branch to v4, rebase to Alpine 3.16.
* **30.12.23:** - Rebase to Alpine 3.19.
* **30.05.23:** - Rebase to Alpine 3.18.
* **19.12.22:** - Rebase develop branch to Alpine 3.17.
* **24.11.22:** - Bump develop branch to v4, rebase to Alpine.
* **03.08.22:** - Deprecate armhf.
* **02.08.22:** - Add armhf deprecation warning.
* **28.04.22:** - Rebase master branch to mono 6.12 base (focal).
* **20.02.22:** - Rebase develop branch to Alpine, deprecate develop-alpine branch.
* **28.12.21:** - Add develop-alpine branch.
* **11.05.21:** - Make the paths clearer to the user.
* **10.03.21:** - Upgrade to Sonarr v3. Existing users are highly recommended to make a backup prior to update.
* **02.08.22:** - Rebase develop branch to Ubuntu Focal due to dropping of mono support on Alpine.
* **20.02.22:** - Rebase develop branch to Alpine.
* **13.12.21:** - Switch strategy for mediainfo
* **10.02.21:** - Rebase to mono focal baseimage. Switch to v3 nightlies.
* **18.01.21:** - Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information.
* **05.04.20:** - Move app to /app.
* **01.08.19:** - Rebase to Linuxserver LTS mono version.

View file

@ -3,10 +3,10 @@
# jenkins variables
project_name: docker-sonarr
external_type: na
custom_version_command: "curl -sX GET http://services.sonarr.tv/v1/releases | jq -r '.[] | select(.releaseChannel==\"v4-stable\") | .version'"
release_type: stable
release_tag: latest
ls_branch: master
custom_version_command: "curl -sX GET http://services.sonarr.tv/v1/releases | jq -r '.[] | select(.releaseChannel==\"v4-nightly\") | .version'"
release_type: prerelease
release_tag: develop
ls_branch: develop
repo_vars:
- BUILD_VERSION_ARG = 'SONARR_VERSION'
- LS_USER = 'linuxserver'
@ -15,13 +15,13 @@ repo_vars:
- DOCKERHUB_IMAGE = 'linuxserver/sonarr'
- DEV_DOCKERHUB_IMAGE = 'lsiodev/sonarr'
- PR_DOCKERHUB_IMAGE = 'lspipepr/sonarr'
- DIST_IMAGE = 'ubuntu'
- DIST_IMAGE = 'alpine'
- MULTIARCH='true'
- CI='true'
- CI_WEB='true'
- CI_PORT='8989'
- CI_SSL='false'
- CI_DELAY='240'
- CI_DELAY='120'
- CI_DOCKERENV=''
- CI_AUTH=''
- CI_WEBPATH='/system/status'

View file

@ -1,184 +1,416 @@
NAME VERSION TYPE
BouncyCastle.Cryptography 2.4.0 dotnet (+5 duplicates)
Dapper 2.0.123 dotnet (+5 duplicates)
Diacritical.Net 1.0.4 dotnet (+5 duplicates)
DryIoc.Microsoft.DependencyInjection 6.2.0 dotnet (+1 duplicate)
DryIoc.dll 5.4.3 dotnet (+7 duplicates)
Dynamitey 2.0.9.136 dotnet (+3 duplicates)
Equ 2.3.0 dotnet (+5 duplicates)
FluentValidation 9.5.4 dotnet (+5 duplicates)
IPAddressRange 6.1.0 dotnet (+7 duplicates)
Ical.Net 4.3.1 dotnet (+2 duplicates)
ImpromptuInterface 7.0.1 dotnet (+3 duplicates)
Instances 1.6.1 dotnet (+5 duplicates)
Lib.Harmony 2.3.3 dotnet (+1 duplicate)
MailKit 4.8.0 dotnet (+5 duplicates)
Microsoft.AspNetCore.Cryptography.Internal 6.0.21 dotnet (+5 duplicates)
Microsoft.AspNetCore.Cryptography.KeyDerivation 6.0.21 dotnet (+5 duplicates)
Microsoft.AspNetCore.Owin 6.0.21 dotnet (+1 duplicate)
Microsoft.Bcl.AsyncInterfaces 6.0.0 dotnet (+5 duplicates)
Microsoft.Bcl.TimeProvider 8.0.0 dotnet (+5 duplicates)
Microsoft.Data.SqlClient 2.1.7 dotnet (+5 duplicates)
Microsoft.Extensions.Configuration 6.0.0 dotnet (+1 duplicate)
Microsoft.Extensions.Configuration 6.0.1 dotnet (+4 duplicates)
Microsoft.Extensions.Configuration.Abstractions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Configuration.Binder 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Configuration.CommandLine 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Configuration.EnvironmentVariables 6.0.1 dotnet (+6 duplicates)
Microsoft.Extensions.Configuration.FileExtensions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Configuration.Json 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Configuration.UserSecrets 6.0.1 dotnet (+6 duplicates)
Microsoft.Extensions.DependencyInjection 6.0.1 dotnet (+6 duplicates)
Microsoft.Extensions.DependencyInjection.Abstractions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.DependencyInjection.Abstractions 7.0.0 dotnet (+1 duplicate)
Microsoft.Extensions.FileProviders.Abstractions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.FileProviders.Physical 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.FileSystemGlobbing 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Hosting 6.0.1 dotnet (+6 duplicates)
Microsoft.Extensions.Hosting.Abstractions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Hosting.WindowsServices 6.0.2 dotnet (+7 duplicates)
Microsoft.Extensions.Logging 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.Abstractions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.Configuration 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.Console 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.Debug 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.EventLog 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.EventSource 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Options 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Options.ConfigurationExtensions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Primitives 6.0.0 dotnet (+2 duplicates)
Microsoft.Identity.Client 4.21.1 dotnet (+5 duplicates)
Microsoft.IdentityModel.JsonWebTokens 6.8.0 dotnet (+5 duplicates)
Microsoft.IdentityModel.Logging 6.8.0 dotnet (+5 duplicates)
Microsoft.IdentityModel.Protocols 6.8.0 dotnet (+5 duplicates)
Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0 dotnet (+5 duplicates)
Microsoft.IdentityModel.Tokens 6.8.0 dotnet (+5 duplicates)
Microsoft.OpenApi 1.6.14 dotnet (+2 duplicates)
Microsoft.Win32.SystemEvents 6.0.0 dotnet (+7 duplicates)
MimeKit 4.8.0 dotnet (+5 duplicates)
Mono.Nat 3.0.1 dotnet (+5 duplicates)
Mono.Posix.NETStandard 5.20.1.34-servarr24 dotnet
MonoTorrent 2.0.7 dotnet (+5 duplicates)
NLog 5.3.4 dotnet (+7 duplicates)
NLog.Extensions.Logging 5.3.15 dotnet (+7 duplicates)
NLog.Layouts.ClefJsonLayout 1.0.2 dotnet (+7 duplicates)
NLog.Targets.Syslog 7.0.0 dotnet (+7 duplicates)
Newtonsoft.Json 13.0.3 dotnet (+7 duplicates)
NodaTime 3.2.0 dotnet (+2 duplicates)
Npgsql 7.0.9 dotnet (+5 duplicates)
Polly 8.5.0 dotnet (+5 duplicates)
Polly.Contrib.WaitAndRetry 1.1.1 dotnet (+7 duplicates)
Polly.Core 8.5.0 dotnet (+5 duplicates)
ReusableTasks 2.0.0 dotnet (+5 duplicates)
Sentry 4.0.2 dotnet (+7 duplicates)
Servarr.FFMpegCore 4.7.0-26 dotnet (+5 duplicates)
Servarr.FluentMigrator 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Abstractions 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Extensions.Oracle 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Extensions.Postgres 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Extensions.SqlAnywhere 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Extensions.SqlServer 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Core 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Db2 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Firebird 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Hana 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.MySql 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Oracle 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Postgres 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Redshift 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.SQLite 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.SqlAnywhere 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.SqlServer 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.SqlServerCe 3.3.2.9 dotnet (+5 duplicates)
SharpZipLib 1.4.2 dotnet (+7 duplicates)
SixLabors.ImageSharp 3.1.7 dotnet (+5 duplicates)
Sonarr 4.0.14 dotnet
Sonarr.Api.V3 4.0.14 dotnet (+2 duplicates)
Sonarr.Common 4.0.14 dotnet (+7 duplicates)
Sonarr.Core 4.0.14 dotnet (+5 duplicates)
Sonarr.Host 4.0.14 dotnet (+1 duplicate)
Sonarr.Http 4.0.14 dotnet (+3 duplicates)
Sonarr.Mono 4.0.14 dotnet
Sonarr.RuntimePatches 4.0.14 dotnet (+1 duplicate)
Sonarr.SignalR 4.0.14 dotnet (+4 duplicates)
Swashbuckle.AspNetCore.Annotations 6.6.2 dotnet (+2 duplicates)
Swashbuckle.AspNetCore.Swagger 6.6.2 dotnet (+2 duplicates)
Swashbuckle.AspNetCore.SwaggerGen 6.6.2 dotnet (+2 duplicates)
System.Configuration.ConfigurationManager 6.0.1 dotnet (+7 duplicates)
System.Data.SQLite.Core.Servarr 1.0.115.5-18 dotnet (+7 duplicates)
System.Diagnostics.EventLog 6.0.0 dotnet (+2 duplicates)
System.Drawing.Common 6.0.0 dotnet (+7 duplicates)
System.Formats.Asn1 8.0.1 dotnet (+5 duplicates)
System.IdentityModel.Tokens.Jwt 6.8.0 dotnet (+5 duplicates)
System.Runtime.Caching 4.7.0 dotnet (+5 duplicates)
System.Security.Cryptography.Pkcs 8.0.0 dotnet (+5 duplicates)
System.Security.Cryptography.ProtectedData 6.0.0 dotnet (+7 duplicates)
System.Security.Permissions 6.0.0 dotnet (+7 duplicates)
System.ServiceProcess.ServiceController 6.0.1 dotnet (+7 duplicates)
System.Text.Json 6.0.10 dotnet (+7 duplicates)
System.Text.Json 6.0.9 dotnet
System.Windows.Extensions 6.0.0 dotnet (+7 duplicates)
acl-libs 2.3.2-r1 apk
alpine-baselayout 3.6.8-r1 apk
alpine-baselayout-data 3.6.8-r1 apk
alpine-keys 2.5-r0 apk
alpine-release 3.21.3-r0 apk
apk-tools 2.14.6-r3 apk
bash 5.2.37-r0 apk
brotli-libs 1.1.0-r2 apk
busybox 1.37.0-r12 apk
busybox-binsh 1.37.0-r12 apk
c-ares 1.34.5-r0 apk
ca-certificates 20241121-r1 apk
ca-certificates-bundle 20241121-r1 apk
catatonit 0.2.0-r0 apk
coreutils 9.5-r2 apk
coreutils-env 9.5-r2 apk
coreutils-fmt 9.5-r2 apk
coreutils-sha512sum 9.5-r2 apk
curl 8.12.1-r1 apk
findutils 4.10.0-r0 apk
icu-data-en 74.2-r0 apk
icu-libs 74.2-r0 apk
jq 1.7.1-r0 apk
libattr 2.5.2-r2 apk
libbsd 0.12.2-r0 apk
libcrypto3 3.3.3-r0 apk
libcurl 8.12.1-r1 apk
libgcc 14.2.0-r4 apk
libgcrypt 1.10.3-r1 apk
libgpg-error 1.51-r0 apk
libidn2 2.3.7-r0 apk
libintl 0.22.5-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.5_p20241006-r3 apk
libproc2 4.0.4-r2 apk
libpsl 0.21.5-r3 apk
libssl3 3.3.3-r0 apk
libstdc++ 14.2.0-r4 apk
libunistring 1.2-r0 apk
libxml2 2.13.4-r5 apk
libxslt 1.1.42-r2 apk
linux-pam 1.6.1-r1 apk
musl 1.2.5-r9 apk
musl-utils 1.2.5-r9 apk
ncurses-terminfo-base 6.5_p20241006-r3 apk
netcat-openbsd 1.226.1.1-r0 apk
nghttp2-libs 1.64.0-r0 apk
oniguruma 6.9.9-r0 apk
procps-ng 4.0.4-r2 apk
readline 8.2.13-r0 apk
runtimepack.Microsoft.AspNetCore.App.Runtime.linux-musl-x64 6.0.13 dotnet
runtimepack.Microsoft.NETCore.App.Runtime.linux-musl-x64 6.0.13 dotnet
scanelf 1.3.8-r1 apk
shadow 4.16.0-r1 apk
skalibs-libs 2.14.3.0-r0 apk
sqlite-libs 3.48.0-r1 apk
ssl_client 1.37.0-r12 apk
tzdata 2025b-r0 apk
utmps-libs 0.1.2.3-r2 apk
xmlstarlet 1.6.1-r2 apk
xz-libs 5.6.3-r1 apk
zlib 1.3.1-r2 apk
zstd-libs 1.5.6-r2 apk
NAME VERSION TYPE
Bouncy Castle for .NET (netstandard2.0) 1.9.0.1 dotnet
Dapper 2.0.123.33578 dotnet
Diacritical 1.0.4.0 dotnet
DryIoc 5.4.3.0 dotnet
DryIoc.Microsoft.DependencyInjection net6.0 6.2.0.0 dotnet
Dynamitey 2.0.9.136 dotnet
Equ 2.3.0 dotnet
FFMpegCore 4.0.0.0 dotnet
FluentMigrator 3.3.2.9 dotnet (+19 duplicates)
FluentValidation 9.5.4.0 dotnet
Harmony 2.0.1.0 dotnet
ICSharpCode.SharpZipLib 1.4.2.13 dotnet
Ical.Net 1.0.0.0 dotnet
ImpromptuInterface 7.0.1.0 dotnet
Instances 1.0.0.0 dotnet
Json.NET 13.0.3.27908 dotnet
MailKit 3.6.0.0 dotnet
Microsoft.AspNetCore 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Antiforgery 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authentication 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authentication.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authentication.Cookies 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authentication.Core 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authentication.OAuth 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authorization 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authorization.Policy 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Components 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Components.Authorization 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Components.Forms 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Components.Server 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Components.Web 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Connections.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.CookiePolicy 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Cors 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Cryptography.Internal 6.0.2123.36438 dotnet
Microsoft.AspNetCore.Cryptography.KeyDerivation 6.0.2123.36438 dotnet
Microsoft.AspNetCore.DataProtection 6.0.1322.58013 dotnet
Microsoft.AspNetCore.DataProtection.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.DataProtection.Extensions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Diagnostics 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Diagnostics.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Diagnostics.HealthChecks 6.0.1322.58013 dotnet
Microsoft.AspNetCore.HostFiltering 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Hosting 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Hosting.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Hosting.Server.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Html.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Connections 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Connections.Common 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Extensions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Features 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Results 6.0.1322.58013 dotnet
Microsoft.AspNetCore.HttpLogging 6.0.1322.58013 dotnet
Microsoft.AspNetCore.HttpOverrides 6.0.1322.58013 dotnet
Microsoft.AspNetCore.HttpsPolicy 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Identity 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Localization 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Localization.Routing 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Metadata 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.ApiExplorer 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Core 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Cors 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.DataAnnotations 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Formatters.Json 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Formatters.Xml 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Localization 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Razor 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.RazorPages 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.TagHelpers 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.ViewFeatures 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Owin 6.0.2123.36438 dotnet
Microsoft.AspNetCore.Razor 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Razor.Runtime 6.0.1322.58013 dotnet
Microsoft.AspNetCore.ResponseCaching 6.0.1322.58013 dotnet
Microsoft.AspNetCore.ResponseCaching.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.ResponseCompression 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Rewrite 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Routing 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Routing.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.HttpSys 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.IIS 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.IISIntegration 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.Kestrel 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.Kestrel.Core 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.Kestrel.Transport.Quic 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Session 6.0.1322.58013 dotnet
Microsoft.AspNetCore.SignalR 6.0.1322.58013 dotnet
Microsoft.AspNetCore.SignalR.Common 6.0.1322.58013 dotnet
Microsoft.AspNetCore.SignalR.Core 6.0.1322.58013 dotnet
Microsoft.AspNetCore.SignalR.Protocols.Json 6.0.1322.58013 dotnet
Microsoft.AspNetCore.StaticFiles 6.0.1322.58013 dotnet
Microsoft.AspNetCore.WebSockets 6.0.1322.58013 dotnet
Microsoft.AspNetCore.WebUtilities 6.0.1322.58013 dotnet
Microsoft.Bcl.AsyncInterfaces 6.0.21.52210 dotnet
Microsoft.Bcl.TimeProvider 8.0.23.53103 dotnet
Microsoft.CSharp 6.0.1322.58009 dotnet
Microsoft.Data.SqlClient 2.1.2+2a61e8301e9d21ada2338a9279cf27653e781757 dotnet
Microsoft.Extensions.Caching.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Caching.Memory 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration 6.0.322.12309 dotnet
Microsoft.Extensions.Configuration.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Binder 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.CommandLine 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.EnvironmentVariables 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration.FileExtensions 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Ini 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Json 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.KeyPerFile 6.0.1322.58013 dotnet
Microsoft.Extensions.Configuration.UserSecrets 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration.Xml 6.0.21.52210 dotnet
Microsoft.Extensions.DependencyInjection 6.0.1022.47605 dotnet
Microsoft.Extensions.DependencyInjection.Abstractions 7.0.22.51805 dotnet
Microsoft.Extensions.Diagnostics.HealthChecks 6.0.1322.58013 dotnet
Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions 6.0.1322.58013 dotnet
Microsoft.Extensions.Features 6.0.1322.58013 dotnet
Microsoft.Extensions.FileProviders.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.FileProviders.Composite 6.0.21.52210 dotnet
Microsoft.Extensions.FileProviders.Embedded 6.0.1322.58013 dotnet
Microsoft.Extensions.FileProviders.Physical 6.0.21.52210 dotnet
Microsoft.Extensions.FileSystemGlobbing 6.0.21.52210 dotnet
Microsoft.Extensions.Hosting 6.0.222.6406 dotnet
Microsoft.Extensions.Hosting.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Hosting.WindowsServices 6.0.1823.26907 dotnet
Microsoft.Extensions.Http 6.0.21.52210 dotnet
Microsoft.Extensions.Identity.Core 6.0.1322.58013 dotnet
Microsoft.Extensions.Identity.Stores 6.0.1322.58013 dotnet
Microsoft.Extensions.Localization 6.0.1322.58013 dotnet
Microsoft.Extensions.Localization.Abstractions 6.0.1322.58013 dotnet
Microsoft.Extensions.Logging 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Abstractions 6.0.1122.52304 dotnet
Microsoft.Extensions.Logging.Configuration 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Console 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Debug 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.EventLog 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.EventSource 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.TraceSource 6.0.21.52210 dotnet
Microsoft.Extensions.ObjectPool 6.0.1322.58013 dotnet
Microsoft.Extensions.Options 6.0.21.52210 dotnet
Microsoft.Extensions.Options.ConfigurationExtensions 6.0.21.52210 dotnet
Microsoft.Extensions.Options.DataAnnotations 6.0.21.52210 dotnet
Microsoft.Extensions.Primitives 6.0.21.52210 dotnet
Microsoft.Extensions.WebEncoders 6.0.1322.58013 dotnet
Microsoft.Identity.Client 4.21.1.0 dotnet
Microsoft.IdentityModel.JsonWebTokens 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Logging 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Protocols 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Tokens 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.JSInterop 6.0.1322.58013 dotnet
Microsoft.Net.Http.Headers 6.0.1322.58013 dotnet
Microsoft.OpenApi 1.6.14.0 dotnet
Microsoft.VisualBasic 6.0.1322.58009 dotnet
Microsoft.VisualBasic.Core 11.100.1322.58009 dotnet
Microsoft.Win32.Primitives 6.0.1322.58009 dotnet
Microsoft.Win32.Registry 6.0.1322.58009 dotnet
Microsoft.Win32.SystemEvents 6.0.21.52210 dotnet
MimeKit 3.6.0.0 dotnet
Mono.Cecil 0.11.2.0 dotnet (+3 duplicates)
Mono.Nat 3.0.1 dotnet
Mono.Posix.NETStandard 1.0.0.0 dotnet
MonoMod.Common 20.05.07.01+b18b2bddebe81992d218ea7e1f41aa1923459652 dotnet
MonoTorrent 2.0.7 dotnet
NLog v4.7.14 4.7.14.740 dotnet
NLog.Extensions.Logging v1.7.4 1.7.4.1610 dotnet
NLog.Targets.Syslog 6.0.3.0 dotnet
NodaTime 3.0.0.0 dotnet
Npgsql 7.0.7.0 dotnet
Polly 8.3.1.3207 dotnet
Polly.Core 8.3.1.3207 dotnet
ReusableTasks 2.0.0 dotnet
Sentry 4.0.2.0 dotnet
SixLabors.ImageSharp 3.1.4.0 dotnet
Sonarr 4.0.8.1893 dotnet (+8 duplicates)
Swashbuckle.AspNetCore.Annotations 6.6.2.401 dotnet
Swashbuckle.AspNetCore.Swagger 6.6.2.401 dotnet
Swashbuckle.AspNetCore.SwaggerGen 6.6.2.401 dotnet
System 6.0.1322.58009 dotnet
System.AppContext 6.0.1322.58009 dotnet
System.Buffers 6.0.1322.58009 dotnet
System.Collections 6.0.1322.58009 dotnet
System.Collections.Concurrent 6.0.1322.58009 dotnet
System.Collections.Immutable 6.0.1322.58009 dotnet
System.Collections.NonGeneric 6.0.1322.58009 dotnet
System.Collections.Specialized 6.0.1322.58009 dotnet
System.ComponentModel 6.0.1322.58009 dotnet
System.ComponentModel.Annotations 6.0.1322.58009 dotnet
System.ComponentModel.DataAnnotations 6.0.1322.58009 dotnet
System.ComponentModel.EventBasedAsync 6.0.1322.58009 dotnet
System.ComponentModel.Primitives 6.0.1322.58009 dotnet
System.ComponentModel.TypeConverter 6.0.1322.58009 dotnet
System.Configuration 6.0.1322.58009 dotnet
System.Configuration.ConfigurationManager 6.0.922.41905 dotnet
System.Console 6.0.1322.58009 dotnet
System.Core 6.0.1322.58009 dotnet
System.Data 6.0.1322.58009 dotnet
System.Data.Common 6.0.1322.58009 dotnet
System.Data.DataSetExtensions 6.0.1322.58009 dotnet
System.Data.SQLite 1.0.115.5 dotnet
System.Data.SqlServerCe 4.0.8876.1 dotnet
System.Diagnostics.Contracts 6.0.1322.58009 dotnet
System.Diagnostics.Debug 6.0.1322.58009 dotnet
System.Diagnostics.DiagnosticSource 6.0.1322.58009 dotnet
System.Diagnostics.EventLog 6.0.21.52210 dotnet
System.Diagnostics.FileVersionInfo 6.0.1322.58009 dotnet
System.Diagnostics.Process 6.0.1322.58009 dotnet
System.Diagnostics.StackTrace 6.0.1322.58009 dotnet
System.Diagnostics.TextWriterTraceListener 6.0.1322.58009 dotnet
System.Diagnostics.Tools 6.0.1322.58009 dotnet
System.Diagnostics.TraceSource 6.0.1322.58009 dotnet
System.Diagnostics.Tracing 6.0.1322.58009 dotnet
System.Drawing 6.0.1322.58009 dotnet
System.Drawing.Common 6.0.21.52210 dotnet
System.Drawing.Primitives 6.0.1322.58009 dotnet
System.Dynamic.Runtime 6.0.1322.58009 dotnet
System.Formats.Asn1 6.0.1322.58009 dotnet
System.Globalization 6.0.1322.58009 dotnet
System.Globalization.Calendars 6.0.1322.58009 dotnet
System.Globalization.Extensions 6.0.1322.58009 dotnet
System.IO 6.0.1322.58009 dotnet
System.IO.Compression 6.0.1322.58009 dotnet
System.IO.Compression.Brotli 6.0.1322.58009 dotnet
System.IO.Compression.FileSystem 6.0.1322.58009 dotnet
System.IO.Compression.ZipFile 6.0.1322.58009 dotnet
System.IO.FileSystem 6.0.1322.58009 dotnet
System.IO.FileSystem.AccessControl 6.0.1322.58009 dotnet
System.IO.FileSystem.DriveInfo 6.0.1322.58009 dotnet
System.IO.FileSystem.Primitives 6.0.1322.58009 dotnet
System.IO.FileSystem.Watcher 6.0.1322.58009 dotnet
System.IO.IsolatedStorage 6.0.1322.58009 dotnet
System.IO.MemoryMappedFiles 6.0.1322.58009 dotnet
System.IO.Pipelines 6.0.522.21309 dotnet
System.IO.Pipes 6.0.1322.58009 dotnet
System.IO.Pipes.AccessControl 6.0.1322.58009 dotnet
System.IO.UnmanagedMemoryStream 6.0.1322.58009 dotnet
System.IdentityModel.Tokens.Jwt 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
System.Linq 6.0.1322.58009 dotnet
System.Linq.Expressions 6.0.1322.58009 dotnet
System.Linq.Parallel 6.0.1322.58009 dotnet
System.Linq.Queryable 6.0.1322.58009 dotnet
System.Memory 6.0.1322.58009 dotnet
System.Net 6.0.1322.58009 dotnet
System.Net.Http 6.0.1322.58009 dotnet
System.Net.Http.Json 6.0.1322.58009 dotnet
System.Net.HttpListener 6.0.1322.58009 dotnet
System.Net.Mail 6.0.1322.58009 dotnet
System.Net.NameResolution 6.0.1322.58009 dotnet
System.Net.NetworkInformation 6.0.1322.58009 dotnet
System.Net.Ping 6.0.1322.58009 dotnet
System.Net.Primitives 6.0.1322.58009 dotnet
System.Net.Quic 6.0.1322.58009 dotnet
System.Net.Requests 6.0.1322.58009 dotnet
System.Net.Security 6.0.1322.58009 dotnet
System.Net.ServicePoint 6.0.1322.58009 dotnet
System.Net.Sockets 6.0.1322.58009 dotnet
System.Net.WebClient 6.0.1322.58009 dotnet
System.Net.WebHeaderCollection 6.0.1322.58009 dotnet
System.Net.WebProxy 6.0.1322.58009 dotnet
System.Net.WebSockets 6.0.1322.58009 dotnet
System.Net.WebSockets.Client 6.0.1322.58009 dotnet
System.Numerics 6.0.1322.58009 dotnet
System.Numerics.Vectors 6.0.1322.58009 dotnet
System.ObjectModel 6.0.1322.58009 dotnet
System.Private.CoreLib 6.0.1322.58009 dotnet
System.Private.DataContractSerialization 6.0.1322.58009 dotnet
System.Private.Uri 6.0.1322.58009 dotnet
System.Private.Xml 6.0.1322.58009 dotnet
System.Private.Xml.Linq 6.0.1322.58009 dotnet
System.Reflection 6.0.1322.58009 dotnet
System.Reflection.DispatchProxy 6.0.1322.58009 dotnet
System.Reflection.Emit 6.0.1322.58009 dotnet
System.Reflection.Emit.ILGeneration 6.0.1322.58009 dotnet
System.Reflection.Emit.Lightweight 6.0.1322.58009 dotnet
System.Reflection.Extensions 6.0.1322.58009 dotnet
System.Reflection.Metadata 6.0.1322.58009 dotnet
System.Reflection.Primitives 6.0.1322.58009 dotnet
System.Reflection.TypeExtensions 6.0.1322.58009 dotnet
System.Resources.Reader 6.0.1322.58009 dotnet
System.Resources.ResourceManager 6.0.1322.58009 dotnet
System.Resources.Writer 6.0.1322.58009 dotnet
System.Runtime 6.0.1322.58009 dotnet
System.Runtime.Caching 4.700.19.56404 dotnet
System.Runtime.CompilerServices.VisualC 6.0.1322.58009 dotnet
System.Runtime.Extensions 6.0.1322.58009 dotnet
System.Runtime.Handles 6.0.1322.58009 dotnet
System.Runtime.InteropServices 6.0.1322.58009 dotnet
System.Runtime.InteropServices.RuntimeInformation 6.0.1322.58009 dotnet
System.Runtime.Intrinsics 6.0.1322.58009 dotnet
System.Runtime.Loader 6.0.1322.58009 dotnet
System.Runtime.Numerics 6.0.1322.58009 dotnet
System.Runtime.Serialization 6.0.1322.58009 dotnet
System.Runtime.Serialization.Formatters 6.0.1322.58009 dotnet
System.Runtime.Serialization.Json 6.0.1322.58009 dotnet
System.Runtime.Serialization.Primitives 6.0.1322.58009 dotnet
System.Runtime.Serialization.Xml 6.0.1322.58009 dotnet
System.Security 6.0.1322.58009 dotnet
System.Security.AccessControl 6.0.1322.58009 dotnet
System.Security.Claims 6.0.1322.58009 dotnet
System.Security.Cryptography.Algorithms 6.0.1322.58009 dotnet
System.Security.Cryptography.Cng 6.0.1322.58009 dotnet
System.Security.Cryptography.Csp 6.0.1322.58009 dotnet
System.Security.Cryptography.Encoding 6.0.1322.58009 dotnet
System.Security.Cryptography.OpenSsl 6.0.1322.58009 dotnet
System.Security.Cryptography.Pkcs 6.0.522.21309 dotnet
System.Security.Cryptography.Primitives 6.0.1322.58009 dotnet
System.Security.Cryptography.ProtectedData 6.0.21.52210 dotnet
System.Security.Cryptography.X509Certificates 6.0.1322.58009 dotnet
System.Security.Cryptography.Xml 6.0.822.36306 dotnet
System.Security.Permissions 6.0.21.52210 dotnet
System.Security.Principal 6.0.1322.58009 dotnet
System.Security.Principal.Windows 6.0.1322.58009 dotnet
System.Security.SecureString 6.0.1322.58009 dotnet
System.ServiceModel.Web 6.0.1322.58009 dotnet
System.ServiceProcess 6.0.1322.58009 dotnet
System.ServiceProcess.ServiceController 6.0.1823.26907 dotnet
System.Text.Encoding 6.0.1322.58009 dotnet
System.Text.Encoding.CodePages 6.0.1322.58009 dotnet
System.Text.Encoding.Extensions 6.0.1322.58009 dotnet
System.Text.Encodings.Web 6.0.1322.58009 dotnet
System.Text.Json 6.0.2523.51912 dotnet
System.Text.RegularExpressions 6.0.1322.58009 dotnet
System.Threading 6.0.1322.58009 dotnet
System.Threading.Channels 6.0.1322.58009 dotnet
System.Threading.Overlapped 6.0.1322.58009 dotnet
System.Threading.Tasks 6.0.1322.58009 dotnet
System.Threading.Tasks.Dataflow 6.0.1322.58009 dotnet
System.Threading.Tasks.Extensions 6.0.1322.58009 dotnet
System.Threading.Tasks.Parallel 6.0.1322.58009 dotnet
System.Threading.Thread 6.0.1322.58009 dotnet
System.Threading.ThreadPool 6.0.1322.58009 dotnet
System.Threading.Timer 6.0.1322.58009 dotnet
System.Transactions 6.0.1322.58009 dotnet
System.Transactions.Local 6.0.1322.58009 dotnet
System.ValueTuple 6.0.1322.58009 dotnet
System.Web 6.0.1322.58009 dotnet
System.Web.HttpUtility 6.0.1322.58009 dotnet
System.Windows 6.0.1322.58009 dotnet
System.Windows.Extensions 6.0.21.52210 dotnet
System.Xml 6.0.1322.58009 dotnet
System.Xml.Linq 6.0.1322.58009 dotnet
System.Xml.ReaderWriter 6.0.1322.58009 dotnet
System.Xml.Serialization 6.0.1322.58009 dotnet
System.Xml.XDocument 6.0.1322.58009 dotnet
System.Xml.XPath 6.0.1322.58009 dotnet
System.Xml.XPath.XDocument 6.0.1322.58009 dotnet
System.Xml.XmlDocument 6.0.1322.58009 dotnet
System.Xml.XmlSerializer 6.0.1322.58009 dotnet
WindowsBase 6.0.1322.58009 dotnet
alpine-baselayout 3.6.5-r0 apk
alpine-baselayout-data 3.6.5-r0 apk
alpine-keys 2.4-r1 apk
alpine-release 3.20.1-r0 apk
apk-tools 2.14.4-r0 apk
bash 5.2.26-r0 apk
brotli-libs 1.1.0-r2 apk
busybox 1.36.1-r29 apk
busybox-binsh 1.36.1-r29 apk
c-ares 1.28.1-r0 apk
ca-certificates 20240705-r0 apk
ca-certificates-bundle 20240705-r0 apk
catatonit 0.2.0-r0 apk
coreutils 9.5-r1 apk
coreutils-env 9.5-r1 apk
coreutils-fmt 9.5-r1 apk
coreutils-sha512sum 9.5-r1 apk
curl 8.8.0-r0 apk
findutils 4.9.0-r5 apk
icu-data-en 74.2-r0 apk
icu-libs 74.2-r0 apk
jq 1.7.1-r0 apk
libacl 2.3.2-r0 apk
libattr 2.5.2-r0 apk
libbsd 0.12.2-r0 apk
libcrypto3 3.3.1-r3 apk
libcurl 8.8.0-r0 apk
libgcc 13.2.1_git20240309-r0 apk
libgcrypt 1.10.3-r0 apk
libgpg-error 1.49-r0 apk
libidn2 2.3.7-r0 apk
libintl 0.22.5-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.4_p20240420-r0 apk
libproc2 4.0.4-r0 apk
libpsl 0.21.5-r1 apk
libssl3 3.3.1-r3 apk
libstdc++ 13.2.1_git20240309-r0 apk
libunistring 1.2-r0 apk
libxml2 2.12.7-r0 apk
libxslt 1.1.39-r1 apk
linux-pam 1.6.0-r0 apk
mscorlib 6.0.1322.58009 dotnet
musl 1.2.5-r0 apk
musl-utils 1.2.5-r0 apk
ncurses-terminfo-base 6.4_p20240420-r0 apk
netcat-openbsd 1.226-r0 apk
netstandard 6.0.1322.58009 dotnet
nghttp2-libs 1.62.1-r0 apk
oniguruma 6.9.9-r0 apk
procps-ng 4.0.4-r0 apk
readline 8.2.10-r0 apk
scanelf 1.3.7-r2 apk
shadow 4.15.1-r0 apk
skalibs 2.14.1.1-r0 apk
sqlite-libs 3.45.3-r1 apk
ssl_client 1.36.1-r29 apk
tzdata 2024a-r1 apk
utmps-libs 0.1.2.2-r1 apk
xmlstarlet 1.6.1-r2 apk
xz-libs 5.6.1-r3 apk
zlib 1.3.1-r1 apk
zstd-libs 1.5.6-r0 apk

View file

@ -7,30 +7,35 @@ project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/ma
project_blurb: |
[{{ project_name|capitalize }}]({{ project_url }}) (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Media Management"
# supported architectures
available_architectures:
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# development version
development_versions: true
development_versions_items:
- {tag: "latest", desc: "Stable releases from Sonarr"}
- {tag: "develop", desc: "Development releases from Sonarr"}
- { tag: "latest", desc: "Stable releases from Sonarr (currently v4)" }
- { tag: "develop", desc: "Development releases from Sonarr (currently v4)" }
# container parameters
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
param_volumes:
- {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/data", desc: "Database and sonarr configs"}
- { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/data", desc: "Database and Sonarr configs" }
opt_param_usage_include_vols: true
opt_param_volumes:
- {vol_path: "/tv", vol_host_path: "/path/to/tvseries", desc: "Location of TV library on disk (See note in Application setup)"}
- {vol_path: "/downloads", vol_host_path: "/path/to/downloadclient-downloads", desc: "Location of download managers output directory (See note in Application setup)"}
- { vol_path: "/tv", vol_host_path: "/path/to/tv", desc: "Location of TV library on disk" }
- { vol_path: "/downloads", vol_host_path: "/path/to/download-client-downloads", desc: "Location of download managers output directory" }
param_usage_include_ports: true
param_ports:
- {external_port: "8989", internal_port: "8989", port_desc: "The port for the Sonarr web interface"}
- { external_port: "8989", internal_port: "8989", port_desc: "The port for the Sonarr web interface" }
readonly_supported: true
nonroot_supported: true
# application setup block
app_setup_block_enabled: true
app_setup_block: |
@ -43,78 +48,36 @@ app_setup_block: |
Use the optional paths if you don't understand, or don't want hardlinks/atomic moves.
The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/Docker_Guide#Consistent_and_well_planned_paths) on how to get started with this.
# init diagram
init_diagram: |
"sonarr:latest": {
docker-mods
base {
fix-attr +\nlegacy cont-init
}
docker-mods -> base
legacy-services
custom services
init-services -> legacy-services
init-services -> custom services
custom services -> legacy-services
legacy-services -> ci-service-check
init-migrations -> init-adduser
init-os-end -> init-config
init-config -> init-config-end
init-crontab-config -> init-config-end
init-sonarr-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
base -> init-envfile
base -> init-migrations
init-config-end -> init-mods
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-adduser -> init-os-end
init-envfile -> init-os-end
init-custom-files -> init-services
init-config -> init-sonarr-config
init-services -> svc-cron
svc-cron -> legacy-services
init-services -> svc-sonarr
svc-sonarr -> legacy-services
}
Base Images: {
"baseimage-alpine:3.21"
}
"sonarr:latest" <- Base Images
# changelog
changelogs:
- {date: "09.01.25:", desc: "Fix rootless entrypoint."}
- {date: "23.12.24:", desc: "Rebase Alpine 3.21."}
- {date: "31.05.24:", desc: "Rebase Alpine 3.20."}
- {date: "12.01.24:", desc: "Update download url."}
- {date: "30.12.23:", desc: "Rebase master branch to Alpine 3.19."}
- {date: "15.02.23:", desc: "Rebase master branch to Jammy."}
- {date: "19.12.22:", desc: "Rebase develop branch Alpine 3.17."}
- {date: "24.11.22:", desc: "Bump develop branch to v4, rebase to Alpine 3.16."}
- {date: "03.08.22:", desc: "Deprecate armhf."}
- {date: "02.08.22:", desc: "Add armhf deprecation warning."}
- {date: "28.04.22:", desc: "Rebase master branch to mono 6.12 base (focal)."}
- {date: "20.02.22:", desc: "Rebase develop branch to Alpine, deprecate develop-alpine branch."}
- {date: "28.12.21:", desc: "Add develop-alpine branch."}
- {date: "11.05.21:", desc: "Make the paths clearer to the user."}
- {date: "10.03.21:", desc: "Upgrade to Sonarr v3. Existing users are highly recommended to make a backup prior to update."}
- {date: "18.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information."}
- {date: "05.04.20:", desc: "Move app to /app."}
- {date: "01.08.19:", desc: "Rebase to Linuxserver LTS mono version."}
- {date: "13.06.19:", desc: "Add env variable for setting umask."}
- {date: "10.05.19:", desc: "Rebase to Bionic."}
- {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."}
- {date: "01.02.19:", desc: "Multi arch images and pipeline build logic"}
- {date: "15.12.17:", desc: "Fix continuation lines."}
- {date: "12.07.17:", desc: "Add inspect commands to README, move to jenkins build and push."}
- {date: "17.04.17:", desc: "Switch to using inhouse mono baseimage, adds python also."}
- {date: "14.04.17:", desc: "Change to mount /etc/localtime in README, thanks cbgj."}
- {date: "13.04.17:", desc: "Switch to official mono repository."}
- {date: "30.09.16:", desc: "Fix umask"}
- {date: "23.09.16:", desc: "Add cd to /opt fixes redirects with althub (issue #25), make XDG config environment variable"}
- {date: "15.09.16:", desc: "Add libcurl3 package."}
- {date: "09.09.16:", desc: "Add layer badges to README."}
- {date: "27.08.16:", desc: "Add badges to README."}
- {date: "20.07.16:", desc: "Rebase to xenial."}
- {date: "31.08.15:", desc: "Cleanup, changed sources to fetch binarys from. also a new baseimage."}
- { date: "25.05.24:", desc: "Rebase to Alpine 3.20." }
- { date: "12.01.24:", desc: "Update download url." }
- { date: "30.12.23:", desc: "Rebase to Alpine 3.19." }
- { date: "30.05.23:", desc: "Rebase to Alpine 3.18." }
- { date: "19.12.22:", desc: "Rebase develop branch to Alpine 3.17." }
- { date: "24.11.22:", desc: "Bump develop branch to v4, rebase to Alpine." }
- { date: "03.08.22:", desc: "Deprecate armhf." }
- { date: "02.08.22:", desc: "Rebase develop branch to Ubuntu Focal due to dropping of mono support on Alpine." }
- { date: "20.02.22:", desc: "Rebase develop branch to Alpine." }
- { date: "13.12.21:", desc: "Switch strategy for mediainfo" }
- { date: "10.02.21:", desc: "Rebase to mono focal baseimage. Switch to v3 nightlies." }
- { date: "18.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information." }
- { date: "05.04.20:", desc: "Move app to /app." }
- { date: "01.08.19:", desc: "Rebase to Linuxserver LTS mono version." }
- { date: "13.06.19:", desc: "Add env variable for setting umask." }
- { date: "10.05.19:", desc: "Rebase to Bionic." }
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- { date: "01.02.19:", desc: "Multi arch images and pipeline build logic" }
- { date: "15.12.17:", desc: "Fix continuation lines." }
- { date: "12.07.17:", desc: "Add inspect commands to README, move to jenkins build and push." }
- { date: "17.04.17:", desc: "Switch to using inhouse mono baseimage, adds python also." }
- { date: "14.04.17:", desc: "Change to mount /etc/localtime in README, thanks cbgj." }
- { date: "13.04.17:", desc: "Switch to official mono repository." }
- { date: "30.09.16:", desc: "Fix umask" }
- { date: "23.09.16:", desc: "Add cd to /opt fixes redirects with althub (issue #25), make XDG config environment variable" }
- { date: "15.09.16:", desc: "Add libcurl3 package." }
- { date: "09.09.16:", desc: "Add layer badges to README." }
- { date: "27.08.16:", desc: "Add badges to README." }
- { date: "20.07.16:", desc: "Rebase to xenial." }
- { date: "31.08.15:", desc: "Cleanup, changed sources to fetch binarys from. also a new baseimage." }

View file

@ -3,8 +3,7 @@
mkdir -p /run/sonarr-temp
if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
lsiown -R abc:abc \
/config \
/run/sonarr-temp
fi
# permissions
lsiown -R abc:abc \
/config \
/run/sonarr-temp

View file

@ -1,14 +1,7 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
exec \
s6-notifyoncheck -d -n 300 -w 1000 \
cd /app/sonarr/bin s6-setuidgid abc /app/sonarr/bin/Sonarr \
-nobrowser -data=/config
else
exec \
s6-notifyoncheck -d -n 300 -w 1000 \
cd /app/sonarr/bin /app/sonarr/bin/Sonarr \
-nobrowser -data=/config
fi
exec \
s6-notifyoncheck -d -n 300 -w 1000 \
cd /app/sonarr/bin s6-setuidgid abc /app/sonarr/bin/Sonarr \
-nobrowser -data=/config