Compare commits

..

320 commits
edge ... master

Author SHA1 Message Date
Viktor Varland 458f79ca4b
ci: fuckin push to the right image
All checks were successful
build / build (push) Successful in 32s
2025-04-14 21:14:51 +02:00
Viktor Varland 6ea8b43b0d
docs: update readme
All checks were successful
build / build (push) Successful in 32s
2025-04-14 18:19:18 +02:00
Viktor Varland 113e0bf43b
ci: main => master
Some checks failed
build / build (push) Failing after 32s
2025-04-14 18:15:48 +02:00
Viktor Varland 6a6256acd4
ci: convert to meatbag 2025-04-14 18:13:03 +02:00
LinuxServer-CI ac17141dc8
Bot Updating Package Versions 2025-04-09 22:08:50 +00:00
Adam 2c1f03e3a7
Merge pull request #258 from linuxserver/master-usermod 2025-04-09 23:05:59 +01:00
thespad 4775b97056
Switch abc home to avoid chown penalty 2025-04-08 20:39:33 +01:00
LinuxServer-CI d9e9c8a664
Bot Updating Package Versions 2025-03-29 13:33:30 +00:00
LinuxServer-CI ec8542f160
Bot Updating Package Versions 2025-03-22 13:32:16 +00:00
LinuxServer-CI e1e80e60c0
Bot Updating Package Versions 2025-02-15 13:34:00 +00:00
LinuxServer-CI 59c62f1ae7
Bot Updating Templated Files 2025-02-15 13:29:35 +00:00
LinuxServer-CI 081f3bf4a3
Bot Updating Package Versions 2025-02-08 13:33:09 +00:00
LinuxServer-CI a34a58bd62
Bot Updating Templated Files 2025-02-01 13:30:31 +00:00
LinuxServer-CI 64ecb6745f
Bot Updating Templated Files 2025-02-01 13:28:48 +00:00
Adam ba27487240
Merge pull request #254 from linuxserver/new-readme 2025-01-19 10:50:10 +00:00
LinuxServer-CI 5e393c25ff
Bot Updating Package Versions 2025-01-18 13:29:41 +00:00
thespad 5a3ccf4cf0
Phrasing 2025-01-17 19:36:07 +00:00
thespad d48d182f0f
Add support lifecycle note 2025-01-17 19:34:04 +00:00
thespad 8beeaeca45
Update readme with new style 2025-01-17 18:08:34 +00:00
LinuxServer-CI 12873dd927
Bot Updating Package Versions 2025-01-10 19:42:27 +00:00
LinuxServer-CI 1730537b24
Bot Updating Package Versions 2025-01-04 13:33:17 +00:00
LinuxServer-CI 7d602a73c4
Bot Updating Package Versions 2024-12-28 11:37:34 +00:00
LinuxServer-CI 2f5c0f11df
Bot Updating Package Versions 2024-12-15 18:37:51 +00:00
LinuxServer-CI 2411390177
Bot Updating Templated Files 2024-12-15 18:33:52 +00:00
LinuxServer-CI 7777d8828d
Bot Updating Templated Files 2024-12-15 18:30:46 +00:00
LinuxServer-CI 795d744a0f
Bot Updating Package Versions 2024-12-05 16:13:31 +00:00
Adam 5dfe7d15c6
Merge pull request #251 from linuxserver/3.21-initial 2024-12-05 16:07:23 +00:00
thespad ff812c0651
Run builder 2024-12-05 14:28:14 +00:00
thespad 70b76baa2f
Enable SBOM/Provenance 2024-12-05 14:24:00 +00:00
thespad 8f35e8139b
Remove contenv symlinks so we don't overwrite them 2024-11-15 13:52:12 +00:00
thespad 6bd31eb477
Initial 3.21 release 2024-11-15 11:38:48 +00:00
LinuxServer-CI 481825d48e
Bot Updating Package Versions 2024-09-28 13:36:15 +00:00
LinuxServer-CI 2926dbe73c
Bot Updating Templated Files 2024-09-28 13:34:09 +00:00
LinuxServer-CI c6b5263eb1
Bot Updating Templated Files 2024-09-28 13:32:49 +00:00
LinuxServer-CI f272148962
Bot Updating Templated Files 2024-09-28 13:31:28 +00:00
LinuxServer-CI bb5a7b16e2
Bot Updating Package Versions 2024-09-21 13:31:58 +00:00
LinuxServer-CI 1983fb36bb
Bot Updating Package Versions 2024-09-14 13:30:55 +00:00
LinuxServer-CI 85bd229846
Bot Updating Package Versions 2024-09-07 13:31:45 +00:00
LinuxServer-CI 94ccace81c
Bot Updating Package Versions 2024-08-31 13:29:57 +00:00
LinuxServer-CI 9ec43eb872
Bot Updating Templated Files 2024-08-24 13:30:04 +00:00
LinuxServer-CI c822962c7a Bot Updating Templated Files 2024-08-24 13:28:45 +00:00
LinuxServer-CI a2b17e520a Bot Updating Package Versions 2024-07-27 13:28:58 +00:00
LinuxServer-CI 6567cde19c Bot Updating Package Versions 2024-07-13 13:31:42 +00:00
LinuxServer-CI 719f49cb0a Bot Updating Templated Files 2024-07-13 13:29:39 +00:00
LinuxServer-CI 5b1eb38ce6 Bot Updating Templated Files 2024-07-13 13:27:43 +00:00
Adam 34006fe7e7
Merge pull request #248 from linuxserver/3.20-ro
RO support hooks (3.20)
2024-07-02 15:31:58 +01:00
LinuxServer-CI af2c6f228e Bot Updating Package Versions 2024-06-29 13:28:00 +00:00
thespad b48c87eb2f
Linting 2024-06-26 23:09:02 +01:00
thespad ef81cb3b33
RO support hooks 2024-06-26 21:07:41 +01:00
LinuxServer-CI 56d8fbb73f Bot Updating Package Versions 2024-06-22 13:31:01 +00:00
LinuxServer-CI b9b51a1b93 Bot Updating Package Versions 2024-06-11 10:24:47 +00:00
Adam 46e3e8d74c
Merge pull request #242 from linuxserver/3.20-lsiown
Copy lsiown from repo (3.20)
2024-06-11 11:22:23 +01:00
thespad 4066c272d7
Copy lsiown from repo 2024-06-10 15:27:34 +01:00
LinuxServer-CI 28e54925ca Bot Updating Package Versions 2024-06-08 13:29:27 +00:00
LinuxServer-CI c4951e7021 Bot Updating Package Versions 2024-05-22 19:20:33 +00:00
LinuxServer-CI f2844953b3 Bot Updating Templated Files 2024-05-22 19:18:30 +00:00
Adam 552137dbb1
Merge pull request #238 from linuxserver/3.20-initial
Bump to 3.20
2024-05-22 20:16:26 +01:00
thespad 3ae6c4fd66
Remove errant indent 2024-05-22 20:09:34 +01:00
thespad cb6b200afc
Remove build_version 2024-05-22 20:07:10 +01:00
thespad 458334e3c1
Add build_version output on init where supported. 2024-05-22 19:05:19 +01:00
thespad d69c527089
Bump to 3.20 2024-05-16 22:32:59 +01:00
Roxedus 3d21020c64
Merge pull request #234 from linuxserver/3.19-remove-arm-warning 2024-05-14 14:25:38 +02:00
thespad 145020adaa
Remove armhf warning 2024-05-12 15:04:33 +01:00
LinuxServer-CI ed4057339b Bot Updating Package Versions 2024-05-08 18:51:54 +00:00
Roxedus 9268218a5f
Merge pull request #232 from linuxserver/master-catatonit 2024-05-08 20:49:30 +02:00
Roxedus cd796b3370
Add Catatonit 2024-05-06 19:54:32 +02:00
LinuxServer-CI 0b5f271f0e Bot Updating Templated Files 2024-05-04 13:27:48 +00:00
LinuxServer-CI 7cd7e1401c Bot Updating Package Versions 2024-04-17 13:47:46 +00:00
aptalca eb3cf22d0d
Merge pull request #227 from linuxserver/3.19-find
3.19: add gnu find
2024-04-17 09:45:26 -04:00
aptalca f47b402a1a
add gnu find 2024-04-13 16:03:18 -04:00
LinuxServer-CI 05763edeb2 Bot Updating Package Versions 2024-04-13 13:26:20 +00:00
LinuxServer-CI f023763fe6 Bot Updating Package Versions 2024-04-06 13:27:59 +00:00
LinuxServer-CI 402e4abbc3 Bot Updating Package Versions 2024-03-30 13:27:25 +00:00
LinuxServer-CI ff87e3bd5a Bot Updating Package Versions 2024-03-23 13:26:34 +00:00
LinuxServer-CI a0702347af Bot Updating Templated Files 2024-03-16 13:25:54 +00:00
LinuxServer-CI 6cfbdd72c6 Bot Updating Package Versions 2024-03-02 13:25:09 +00:00
LinuxServer-CI 2263515ffb Bot Updating Templated Files 2024-02-24 13:29:52 +00:00
LinuxServer-CI 9626561aea Bot Updating Templated Files 2024-02-24 13:27:27 +00:00
LinuxServer-CI 725df02e95 Bot Updating Package Versions 2024-02-03 13:27:13 +00:00
LinuxServer-CI bd4c1887c2 Bot Updating Package Versions 2024-01-27 13:25:17 +00:00
LinuxServer-CI f7a30b5942 Bot Updating Package Versions 2024-01-20 13:29:58 +00:00
LinuxServer-CI e971d0872f Bot Updating Package Versions 2024-01-12 10:21:03 +00:00
LinuxServer-CI a03942aac4 Bot Updating Templated Files 2024-01-12 10:15:59 +00:00
LinuxServer-CI 1bfc5cb7a7 Bot Updating Package Versions 2023-12-30 13:26:51 +00:00
LinuxServer-CI d2d759f136 Bot Updating Package Versions 2023-12-16 13:28:23 +00:00
LinuxServer-CI 443aa44015 Bot Updating Package Versions 2023-12-08 14:53:16 +00:00
Adam 36bfc31d62
Merge pull request #220 from linuxserver/3.19-initial
Release 3.19 to master
2023-12-08 14:50:21 +00:00
TheSpad 0e7a9b6fbd
Release 3.19 to master 2023-12-07 11:35:05 +00:00
LinuxServer-CI 07c4bf4594 Bot Updating Package Versions 2023-12-02 13:28:07 +00:00
Eric Nemchik 3a67103736
Merge pull request #218 from linuxserver/3.18-cron-user-file
Add cron user file
2023-11-20 11:58:06 -06:00
Eric Nemchik 330012ef01
Merge pull request #211 from linuxserver/3.18-etc-cron
Import crontabs from etc
2023-11-20 11:55:53 -06:00
Eric Nemchik 9b393a8668
Add cron user file
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-20 11:04:54 -06:00
Eric Nemchik dbd643f8c3
Import crontabs from etc
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-19 14:34:27 -06:00
Eric Nemchik bef0f4cee2
Merge pull request #208 from linuxserver/3.18-silent-cron
silent cron
2023-11-11 16:05:54 -06:00
Adam 2b1fc3f6c8
Merge pull request #198 from linuxserver/3.18-secrets
Warn about newlines in secrets (3.18)
2023-11-11 21:32:20 +00:00
TheSpad 09726961fd
!0 instead of 1 2023-11-11 20:02:44 +00:00
Eric Nemchik 937caa6f19
silent cron
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-11 11:10:40 -06:00
LinuxServer-CI 3256bb4eeb Bot Updating Package Versions 2023-11-11 13:26:34 +00:00
TheSpad 6be18c0df7
Warn rather than sanitize 2023-11-11 10:35:47 +00:00
Eric Nemchik 89ebe1cc22
Merge pull request #201 from linuxserver/3.18-cron-redirect-stderr
Redirect stderr from cron
2023-11-02 16:12:05 -05:00
Eric Nemchik 8b9dbd0bed
Redirect stderr from cron
Signed-off-by: GitHub <noreply@github.com>
2023-11-02 17:09:46 +00:00
TheSpad 1b98fd9bc7
Fix env enumeration 2023-11-02 16:45:08 +00:00
TheSpad 7c6601c83a
Remove redundant if 2023-11-02 16:41:21 +00:00
Eric Nemchik cf5896ce7c
Merge pull request #191 from linuxserver/standard-cron
standard cron 3.18
2023-11-02 10:53:50 -05:00
TheSpad 6bb5231d17
Default to sanitizing newlines in secrets 2023-10-31 16:54:52 +00:00
LinuxServer-CI 00db510002 Bot Updating Package Versions 2023-10-28 13:29:48 +00:00
LinuxServer-CI 5543e3dd0f Bot Updating Package Versions 2023-10-14 13:27:41 +00:00
LinuxServer-CI a54b440055 Bot Updating Templated Files 2023-10-14 13:25:43 +00:00
LinuxServer-CI d971cf0873 Bot Updating Package Versions 2023-10-07 13:31:36 +00:00
LinuxServer-CI a8bbd50370 Bot Updating Templated Files 2023-10-07 13:28:15 +00:00
LinuxServer-CI 5461255904 Bot Updating Templated Files 2023-10-07 13:26:50 +00:00
LinuxServer-CI c060e20690 Bot Updating Package Versions 2023-09-30 13:26:54 +00:00
LinuxServer-CI fe39d670b7 Bot Updating Package Versions 2023-09-23 13:30:49 +00:00
LinuxServer-CI 1e9e41836b Bot Updating Package Versions 2023-09-02 13:27:12 +00:00
Eric Nemchik ed066bdae3
cron in base
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-08-18 23:29:57 -05:00
Eric Nemchik 0166b15838
Revert "cron in base"
This reverts commit b8c0295890.
2023-08-18 23:24:36 -05:00
LinuxServer-CI ab9e158526 Bot Updating Package Versions 2023-08-19 04:15:54 +00:00
Eric Nemchik b8c0295890
cron in base
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-08-18 23:06:17 -05:00
LinuxServer-CI 5e374ee43a Bot Updating Package Versions 2023-08-12 13:25:42 +00:00
LinuxServer-CI 816d25fbf7 Bot Updating Package Versions 2023-08-05 13:27:30 +00:00
LinuxServer-CI 96984e3854 Bot Updating Package Versions 2023-07-29 13:26:27 +00:00
LinuxServer-CI 8cf7e20755 Bot Updating Package Versions 2023-07-22 13:28:28 +00:00
LinuxServer-CI aa9b7f4b95 Bot Updating Package Versions 2023-07-15 13:32:07 +00:00
LinuxServer-CI 7d5f74364e Bot Updating Package Versions 2023-07-08 13:32:10 +00:00
LinuxServer-CI 4fe4220a7e Bot Updating Templated Files 2023-07-01 13:31:32 +00:00
LinuxServer-CI e434ab3fe3 Bot Updating Package Versions 2023-06-17 13:28:35 +00:00
LinuxServer-CI 1adb03aef0 Bot Updating Package Versions 2023-06-03 13:28:14 +00:00
LinuxServer-CI a0d322b305 Bot Updating Package Versions 2023-05-27 13:29:32 +00:00
LinuxServer-CI d2b85ed256 Bot Updating Templated Files 2023-05-27 13:27:37 +00:00
LinuxServer-CI 07df980344 Bot Updating Package Versions 2023-05-20 13:27:06 +00:00
Adam 466a927f40
Merge pull request #188 from linuxserver/3.18-package-install 2023-05-16 16:22:40 +01:00
TheSpad 15496c0fca
Externalise package check 2023-05-16 10:49:38 +01:00
aptalca 39642821ec
use venv in init mods package install 2023-05-15 16:38:33 -04:00
Adam 643409d275
Merge pull request #187 from linuxserver/3.18-pyvenv 2023-05-15 20:58:42 +01:00
TheSpad 8b124808ef
Create lsiopy venv folder and envs 2023-05-15 18:12:51 +01:00
LinuxServer-CI d36f2ddbf4 Bot Updating Package Versions 2023-05-13 13:26:39 +00:00
LinuxServer-CI 76c8c4fd58 Bot Updating Package Versions 2023-05-10 19:52:10 +00:00
Adam 7fc5da5f71
Merge pull request #183 from linuxserver/3.18-initial 2023-05-10 20:50:12 +01:00
TheSpad 91044234a7
Initial release 2023-05-10 15:24:43 +01:00
LinuxServer-CI eb4b14ce3c Bot Updating Package Versions 2023-05-06 13:28:10 +00:00
LinuxServer-CI a7ba2053f0 Bot Updating Templated Files 2023-04-29 13:29:16 +00:00
LinuxServer-CI a8465643b1 Bot Updating Templated Files 2023-04-29 13:27:36 +00:00
LinuxServer-CI 5d733ee571 Bot Updating Package Versions 2023-04-22 08:29:54 -05:00
LinuxServer-CI 08e780a773 Bot Updating Package Versions 2023-04-15 15:29:36 +02:00
Adam a9ef2ccf6c
Merge pull request #178 from linuxserver/master-armhf-notice 2023-04-12 22:45:44 +01:00
TheSpad eb6d5d5c12
Add armhf deprecation notice 2023-04-12 21:20:26 +01:00
LinuxServer-CI 370967709c Bot Updating Package Versions 2023-04-04 06:35:22 +00:00
LinuxServer-CI 72281a0cf8 Bot Updating Templated Files 2023-04-04 06:33:10 +00:00
LinuxServer-CI c54869a7bd Bot Updating Templated Files 2023-04-04 06:30:48 +00:00
LinuxServer-CI 64afadbace Bot Updating Templated Files 2023-04-04 08:27:26 +02:00
LinuxServer-CI a7ed4de8d4 Bot Updating Package Versions 2023-03-28 08:29:05 +02:00
LinuxServer-CI 31ef1b0d0a Bot Updating Package Versions 2023-03-21 01:28:57 -05:00
LinuxServer-CI 527b37252f Bot Updating Package Versions 2023-03-01 14:15:19 -06:00
LinuxServer-CI fbb9785cd6 Bot Updating Templated Files 2023-03-01 14:13:11 -06:00
Adam eea14b996e
Merge pull request #173 from linuxserver/3.17-branding 2023-03-01 20:11:31 +00:00
TheSpad d2c30740b3
Restore procps 2023-03-01 19:53:11 +00:00
TheSpad 8f6304defe
Fix permissions 2023-03-01 11:22:26 +00:00
TheSpad e128cf0cda
Add netcat-openbsd 2023-03-01 11:20:37 +00:00
TheSpad bb923d4917
Custom branding 2023-03-01 11:16:10 +00:00
TheSpad 292e1ef85f
Remove copied contenv, source from mods now 2023-03-01 11:13:43 +00:00
TheSpad 062b99c30f
Rename CI check 2023-03-01 11:13:27 +00:00
TheSpad 62ae1165ed
Remove legacy /run symlink hack 2023-03-01 11:13:07 +00:00
LinuxServer-CI b11a5ca283 Bot Updating Package Versions 2023-02-21 07:32:15 +01:00
LinuxServer-CI c675e2f545 Bot Updating Package Versions 2023-02-14 06:40:34 +00:00
LinuxServer-CI 00f7a6794e Bot Updating Templated Files 2023-02-14 00:37:47 -06:00
LinuxServer-CI 67cd47254a Bot Updating Templated Files 2023-02-14 07:35:22 +01:00
LinuxServer-CI 1a6f120c44 Bot Updating Package Versions 2023-01-17 07:30:20 +01:00
LinuxServer-CI 659bf29597 Bot Updating Package Versions 2023-01-10 00:32:04 -06:00
Adam 91a498c9e2
Merge pull request #165 from linuxserver/3.17-legacy-scripts
Remove legacy scripts check
2023-01-02 16:58:01 +00:00
LinuxServer-CI 82bb8aa307 Bot Updating Package Versions 2022-12-27 00:30:35 -06:00
LinuxServer-CI 2180f0d64d Bot Updating Package Versions 2022-12-20 07:31:47 +01:00
TheSpad 8736a368e5
Remove legacy custom file handlers 2022-12-10 18:24:54 +00:00
TheSpad f72ffa6ad9
Remove legacy scripts check 2022-12-10 17:05:15 +00:00
TheSpad 9fcf5d8681
Minor Dockerfile optimisations 2022-12-10 17:05:05 +00:00
LinuxServer-CI a7991dea60 Bot Updating Package Versions 2022-12-06 07:31:28 +01:00
LinuxServer-CI 7b446f095d Bot Updating Templated Files 2022-11-29 06:39:20 +00:00
LinuxServer-CI 87dfb43832 Bot Updating Templated Files 2022-11-29 07:35:58 +01:00
LinuxServer-CI 5d59580279 Bot Updating Templated Files 2022-11-29 07:33:41 +01:00
LinuxServer-CI df09f6d68c Bot Updating Package Versions 2022-11-25 11:12:36 -06:00
Adam ad924e72a7
Merge pull request #162 from linuxserver/alpine-release 2022-11-25 17:10:21 +00:00
TheSpad 7596410d7f
Spaces 2022-11-25 15:37:19 +00:00
TheSpad 078343fa8c
Add alpine-release package 2022-11-25 15:27:22 +00:00
LinuxServer-CI 305e9a2c7e Bot Updating Package Versions 2022-11-23 16:29:34 -06:00
Adam 92bd611edb
Merge pull request #161 from linuxserver/3.17-initial 2022-11-23 22:27:18 +00:00
TheSpad 1009478827
Initial 3.17 release 2022-11-23 22:00:25 +00:00
Adam 4659d1bb57
Merge pull request #159 from linuxserver/buildkit-master 2022-11-23 21:46:06 +00:00
TheSpad fb53f2e1bc
Remove separate chmod 2022-11-23 19:23:27 +00:00
TheSpad c1e8211ef7
chmod docker-mods script on ADD 2022-11-23 19:22:27 +00:00
LinuxServer-CI a7218a6ab4 Bot Updating Package Versions 2022-11-15 07:34:01 +01:00
LinuxServer-CI 15f2972106 Bot Updating Package Versions 2022-11-08 00:38:38 -06:00
LinuxServer-CI cd5e96dc7f Bot Updating Package Versions 2022-10-30 18:59:39 +01:00
Eric Nemchik 672802cf04
Merge pull request #155 from linuxserver/fix-migrations
Fix migrations
2022-10-30 12:56:52 -05:00
Eric Nemchik de94dc1911 Fix migrations 2022-10-28 16:18:25 -05:00
LinuxServer-CI 93731cdb69 Bot Updating Package Versions 2022-10-05 17:32:09 +00:00
Adam 855ddee102
Merge pull request #152 from linuxserver/mods-n-things-3.16 2022-10-05 18:29:59 +01:00
TheSpad dff708b8b7
Fix indentation on qemu curl 2022-10-05 18:08:38 +01:00
TheSpad 505eaafb77
Pull docker-mods from repo, install jq 2022-10-05 18:03:45 +01:00
Adam 0fa7d8bbf2
Merge pull request #103 from linuxserver/s6-rc-3.16 2022-09-23 15:56:51 +01:00
TheSpad 4b88885e86
CI oneshot should depend on legacy-services 2022-09-22 21:04:17 +01:00
TheSpad c82b92c605
Merge branch 'master' into s6-rc-3.16 2022-09-22 17:34:37 +01:00
LinuxServer-CI ca4a42df4a Bot Updating Templated Files 2022-09-20 02:00:12 -05:00
TheSpad 19b9b4baef
Regen jenkinsfile 2022-09-16 20:14:15 +01:00
Eric Nemchik 5aefb6cd61
Merge pull request #148 from linuxserver/custom-svc-clean-3.16
Fix custom svc removal, cleanup readme issues
2022-09-13 07:01:55 -05:00
TheSpad 4deecce65a
Fix custom svc removal, cleanup readme issues 2022-09-13 11:29:41 +01:00
TheSpad 12948902a1
Add user bundle removal to legacy block too 2022-09-13 11:19:04 +01:00
TheSpad 81ae7dfe9b
Fix errors if custom dir is mounted but empty 2022-09-13 11:12:42 +01:00
TheSpad 914b1f16a4
Remove custom svc from user bundle 2022-09-13 11:00:35 +01:00
LinuxServer-CI 84b302cd60 Bot Updating Package Versions 2022-09-13 02:05:37 -05:00
TheSpad 0cd410af3d
Don't write custom svc warning txt file 2022-09-11 16:13:19 +01:00
TheSpad 3e928ed92f
Fix package reads 2022-09-10 16:33:05 +01:00
TheSpad 0f6c8bd028
Remove duplicate shellcheck directive 2022-09-10 16:28:06 +01:00
TheSpad 255b2a1b11
Merge branch 'master' into s6-rc-3.16 2022-09-10 16:27:21 +01:00
Adam 428152474d
Merge pull request #141 from linuxserver/3.16-custom-rework 2022-09-10 10:59:25 +01:00
TheSpad 4e412a5fdc
Use DIR vars for folder check 2022-09-09 19:47:02 +01:00
TheSpad 2ee8af10f9
Move var declaration to top of script for clarity 2022-09-09 16:31:49 +01:00
TheSpad 34300133f6
Remove the *old* scripts dir, not the new one 2022-09-09 16:27:14 +01:00
TheSpad 1bc2cd870f
Remove *old* scripts dir, not new 2022-09-09 16:24:06 +01:00
TheSpad 256cbbff64
Fix missing output prefix 2022-09-06 15:48:18 +01:00
TheSpad c773341cea
Standardise output 2022-09-06 15:45:01 +01:00
TheSpad f4f76d6918
Fix package install logic 2022-09-06 11:05:50 +01:00
TheSpad fe11b1ded7
Fix package install logic 2022-09-06 09:44:57 +01:00
TheSpad 12eda7a831
Fix pip args 2022-09-05 22:32:03 +01:00
TheSpad fd0e34c1f5
Allow word splitting 2022-09-05 21:55:22 +01:00
TheSpad 261c0b7c50
Add note if no custom services found 2022-09-05 17:14:17 +01:00
TheSpad 14ba912cf0
Add note if no custom services found 2022-09-05 17:13:53 +01:00
TheSpad 82d4508817
Rework legacy custom file handling 2022-09-05 17:07:57 +01:00
TheSpad ea2e584fde
Delete legacy scripts folder if it's empty 2022-09-05 16:50:09 +01:00
TheSpad d7bdc2a516
Clarify tamper wording 2022-09-05 16:40:25 +01:00
TheSpad 55cff18284
Rework legacy custom file handling 2022-09-05 16:36:37 +01:00
TheSpad 61b7bb68e5
Merge branch 'master' into s6-rc-3.16 2022-09-03 16:14:47 +01:00
aptalca a507fbf537
Merge pull request #137 from linuxserver/custom-user-bundle-3.16
Add custom services to user bundle
2022-09-03 08:38:02 -04:00
TheSpad 696a16f01b
Set noninteractive for apt 2022-09-03 13:32:38 +01:00
TheSpad 6e7eb8a8d3
Add custom services to user bundle 2022-09-03 11:14:44 +01:00
TheSpad 91f450f06c
Remove vscode's trailling spaces 2022-09-03 11:09:41 +01:00
TheSpad 00a0bd1d2c
Add custom services to user bundle 2022-09-03 11:07:21 +01:00
LinuxServer-CI 110ea527e9 Bot Updating Package Versions 2022-09-02 16:11:10 +02:00
Adam 2f02d2559c
Merge pull request #134 from linuxserver/fix-custom-svc-3.16 2022-09-02 15:08:43 +01:00
TheSpad d1d84fac4c
Fix custom svc logic 2022-09-02 11:07:44 +01:00
TheSpad ef5ebc65e4
Fix custom service logic 2022-09-02 11:03:21 +01:00
TheSpad 0e55439386
Bump s6 to 3.1.2.1 to fix regression 2022-08-29 23:06:06 +01:00
TheSpad 75b3115d75
Fix custom script banner tee 2022-08-28 23:17:13 +01:00
Eric Nemchik e1f14ef6e1
Merge pull request #126 from linuxserver/new-custom-files-3.16
Support new custom files locations
2022-08-28 16:26:04 -05:00
TheSpad 1f816f0fd2
Support new custom files locations 2022-08-28 21:30:35 +01:00
TheSpad 5eb25b8357
Fix tamper check for custom files 2022-08-28 20:30:30 +01:00
TheSpad 7f8d142552
Fix script check exit code 2022-08-28 20:20:28 +01:00
TheSpad 10d77113b5
Simplify if logic 2022-08-28 18:37:38 +01:00
TheSpad ea7f9dddff
Standardise logic so it works cross-distro 2022-08-28 18:12:20 +01:00
TheSpad 7b8515c27e
Add link to script check banner 2022-08-28 17:51:23 +01:00
TheSpad 00cc255a45
Fix trigger logic 2022-08-28 17:48:09 +01:00
TheSpad 9c126e46cc
Use user2 bundle instead of top hack for ci-check 2022-08-28 16:24:18 +01:00
TheSpad e0fd8cb964
Expand tamper check and enable custom files warning 2022-08-28 16:07:23 +01:00
TheSpad 4f4d988211
Fix incorrect S6 version 2022-08-28 13:02:55 +01:00
TheSpad ec2e9b7ac0
Bump s6 to 3.1.2.0, replace patch with STAGE2_HOOK, reduce logging level 2022-08-28 12:57:13 +01:00
TheSpad 7519dd8f97
Integrate changes from Edge PR #123 2022-08-28 12:55:22 +01:00
TheSpad 595c036d6d
Merge branch 'master' into s6-rc-3.16 2022-08-27 21:04:56 +01:00
TheSpad 9b753d0667
Fix migrations 2022-08-27 20:35:37 +01:00
Eric Nemchik eabdf1cf32
Merge pull request #122 from linuxserver/nemchik-patch-2
Update 01-migrations
2022-08-27 10:12:47 -05:00
LinuxServer-CI d8547ab363 Bot Updating Package Versions 2022-08-23 08:42:30 +02:00
Eric Nemchik 2de8130702
Update 01-migrations
Fix broken bash syntax
2022-08-22 09:16:25 -05:00
LinuxServer-CI 2edf79aab1 Bot Updating Package Versions 2022-08-16 01:34:42 -05:00
LinuxServer-CI b0a2852692 Bot Updating Package Versions 2022-08-09 01:36:56 -05:00
TheSpad 34eee09951
Fix apk path 2022-08-03 13:45:52 +01:00
LinuxServer-CI 6ba2997eeb Bot Updating Package Versions 2022-08-02 08:34:58 +02:00
LinuxServer-CI 42825ece45 Bot Updating Package Versions 2022-07-31 12:54:36 +02:00
Adam 35e90d8ef5
Merge pull request #119 from linuxserver/mod-package-3.16 2022-07-31 11:52:46 +01:00
TheSpad 201227b220
Support universal package install 2022-07-29 18:00:22 +01:00
TheSpad b7b477c8d6
Support universal mod package install 2022-07-29 17:05:19 +01:00
aptalca 34f4a4681c
Merge pull request #112 from linuxserver/mod-init-3.16
Add mod-init
2022-07-26 12:37:05 -04:00
LinuxServer-CI 29c0ee219d Bot Updating Package Versions 2022-07-26 14:17:22 +02:00
TheSpad 4af8d4292f
Add init-services anchor 2022-07-23 12:56:30 +01:00
Adam 549772f05c
Merge branch 'master' into s6-rc-3.16 2022-07-22 22:02:27 +01:00
TheSpad a51ad09b7b
Add mod-init 2022-07-22 20:55:34 +01:00
Adam 2f97067d7e
Merge pull request #108 from linuxserver/hybrid-mods-3.16 2022-07-22 20:07:30 +01:00
TheSpad bd084de07d
Support hybrid mods 2022-07-22 15:46:30 +01:00
TheSpad 4d28a9cdc6
Move custom files to post-mods, add init-services anchor 2022-07-22 14:57:59 +01:00
TheSpad 3c7ccbd583
Disable custom script check for now 2022-07-21 17:14:28 +01:00
TheSpad 273f624f3a
Add "success" message to mods 2022-07-21 17:14:17 +01:00
LinuxServer-CI 90d9d04a66 Bot Updating Package Versions 2022-07-19 08:34:46 +02:00
TheSpad e696236d42
Copy rather than moving mod files to avoid overwrite issues 2022-07-16 14:11:00 +01:00
TheSpad 0e016f977e
Trailing newline 2022-07-15 21:16:15 +01:00
TheSpad dd40de00b6
Set s6 service max timeout to 0 2022-07-15 21:13:39 +01:00
TheSpad 74a4516271
Fix UMASK handling 2022-07-15 21:12:39 +01:00
TheSpad b5f9bf1093
Handle dual-mode mods 2022-07-15 21:07:38 +01:00
TheSpad bb2ab4ccdf
Change message wording to be more accurate 2022-07-14 22:20:23 +01:00
TheSpad e890f470b6
Fix old path handling, touch deps 2022-07-14 22:20:10 +01:00
TheSpad 4f51cb2f4f
Rework init order again 2022-07-14 22:19:49 +01:00
LinuxServer-CI 5f3a505a50 Bot Updating Package Versions 2022-07-12 01:36:02 -05:00
LinuxServer-CI 97f69b8423 Bot Updating Package Versions 2022-07-05 08:34:46 +02:00
TheSpad 92595b45d8 Fix umask handling for v3 2022-06-20 20:04:08 -04:00
j0nnymoe c758822c55
Merge pull request #98 from linuxserver/3.16-timeout
Set s6 service max timeout to 0
2022-06-17 07:13:59 +01:00
TheSpad d69c94cc2f
Set s6 service max timeout to 0 2022-06-14 16:05:51 +01:00
LinuxServer-CI 1d9f2f3862 Bot Updating Package Versions 2022-06-14 08:34:23 +02:00
TheSpad d7ac0a9a4e
Reorder so custom services aren't dependent on mods 2022-06-10 23:38:29 +01:00
TheSpad 3e69697264
Still chown old services folder if it exists 2022-06-10 16:34:16 +01:00
TheSpad c285069d03
Fix service file types 2022-06-10 16:31:30 +01:00
TheSpad 1dabda8b62
Split tamper check between files/services 2022-06-10 16:29:36 +01:00
TheSpad 36c3f7ffb5
Trailing newline 2022-06-10 16:19:53 +01:00
TheSpad 1f81e9ac8a
Add custom service handling 2022-06-10 16:16:25 +01:00
TheSpad 92a97355b4
Remove custom service handling 2022-06-10 16:16:17 +01:00
TheSpad ec6eed279d
Chown legacy custom locations if they exist 2022-06-09 11:51:13 +01:00
TheSpad 32e37c440b
Add tamper check until legacy custom files location removed 2022-06-09 11:51:02 +01:00
TheSpad 6ac3a53809
Add base to init-base so downstream init doesn't run too early 2022-06-08 17:55:24 +01:00
TheSpad 2c28aeb4c8
Trailing newline 2022-06-08 15:32:49 +01:00
TheSpad f6f2804792
Initial s6-rc commit 2022-06-08 15:31:58 +01:00
LinuxServer-CI 45b3854870 Bot Updating Package Versions 2022-06-07 01:33:26 -05:00
LinuxServer-CI 7383c0982b Bot Updating Package Versions 2022-06-06 07:56:38 -05:00
Adam 6f9c4d3d01
Merge pull request #97 from linuxserver/s6-3.1.0.1-3.16 2022-06-06 13:54:14 +01:00
TheSpad 73de4c6c4c
Trailing newline 2022-06-03 17:33:52 +01:00
TheSpad ca43caabd3
Add compatibility shim for v2 scandir 2022-06-03 14:38:02 +01:00
Eric Nemchik 43abf13ebd Update s6-overlay to v3.1.0.1 for 3.15 2022-06-02 11:01:05 -05:00
LinuxServer-CI 35065baace Bot Updating Package Versions 2022-05-31 16:49:40 +02:00
thelamer a374f6d565 switch master to 3.16 2022-05-31 10:47:06 -04:00
LinuxServer-CI b8061f5abf Bot Updating Package Versions 2022-05-17 08:35:12 +02:00
LinuxServer-CI 75cacb5446 Bot Updating Package Versions 2022-05-03 08:33:59 +02:00
aptalca 50056b0de7
Merge pull request #88 from linuxserver/modcurl
add retry to mod curls
2022-04-21 15:33:05 -04:00
aptalca dd6cea607a add retry to mod curls 2022-04-19 15:29:41 -04:00
LinuxServer-CI a6b4c3a750 Bot Updating Package Versions 2022-04-12 08:33:19 +02:00
LinuxServer-CI 94c906d4cb Bot Updating Package Versions 2022-04-05 08:33:20 +02:00
LinuxServer-CI caa7a49b09 Bot Updating Package Versions 2022-03-29 01:32:55 -05:00
LinuxServer-CI bfe8091ed5 Bot Updating Package Versions 2022-03-22 07:31:54 +01:00
24 changed files with 127 additions and 657 deletions

View file

@ -0,0 +1,15 @@
name: build
run-name: ${{ gitea.actor }} is building baseimage-alpine
on:
push:
branches:
- 'master'
jobs:
build:
runs-on: podman
steps:
- uses: actions/checkout@v3
- run: podman login --username registry --password ${{ secrets.MEATBAG_REGISTRY_TOKEN }} registry.meatbag.se
- run: podman build -t meatbag/baseimage-alpine:latest .
- run: podman push meatbag/baseimage-alpine registry.meatbag.se/meatbag/baseimage-alpine

View file

@ -1,123 +0,0 @@
# Contributing to baseimage-alpine
## Gotchas
* While contributing make sure to make all your changes before creating a Pull Request, as our pipeline builds each commit after the PR is open.
* 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)
## Common files
| File | Use case |
| :----: | --- |
| `Dockerfile` | Dockerfile used to build amd64 images |
| `Dockerfile.aarch64` | Dockerfile used to build 64bit ARM architectures |
| `Dockerfile.armhf` | Dockerfile used to build 32bit ARM architectures |
| `Jenkinsfile` | This file is a product of our builder and should not be edited directly. This is used to build the image |
| `jenkins-vars.yml` | This file is used to generate the `Jenkinsfile` mentioned above, it only affects the build-process |
| `package_versions.txt` | This file is generated as a part of the build-process and should not be edited directly. It lists all the installed packages and their versions |
| `README.md` | This file is a product of our builder and should not be edited directly. This displays the readme for the repository and image registries |
| `readme-vars.yml` | This file is used to generate the `README.md` |
## 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-baseimage-alpine/edit/edge/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)
### Fixing typos or clarify the text in the readme
There are variables for multiple parts of the readme, the most common ones are:
| Variable | Description |
| :----: | --- |
| `project_blurb` | This is the short excerpt shown above the project logo. |
| `app_setup_block` | This is the text that shows up under "Application Setup" if enabled |
### Parameters
The compose and run examples are also generated from these variables.
We have a [reference file](https://github.com/linuxserver/docker-jenkins-builder/blob/master/vars/_container-vars-blank) in our Jenkins Builder.
These are prefixed with `param_` for required parameters, or `opt_param` for optional parameters, except for `cap_add`.
Remember to enable param, if currently disabled. This differs between parameters, and can be seen in the reference file.
Devices, environment variables, ports and volumes expects its variables in a certain way.
### Devices
```yml
param_devices:
- { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "For hardware transcoding" }
opt_param_devices:
- { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "For hardware transcoding" }
```
### Environment variables
```yml
param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." }
opt_param_env_vars:
- { env_var: "VERSION", env_value: "latest", desc: "Supported values are LATEST, PLEXPASS or a specific version number." }
```
### Ports
```yml
param_ports:
- { external_port: "80", internal_port: "80", port_desc: "Application WebUI" }
opt_param_ports:
- { external_port: "80", internal_port: "80", port_desc: "Application WebUI" }
```
### Volumes
```yml
param_volumes:
- { vol_path: "/config", vol_host_path: "</path/to/appdata/config>", desc: "Configuration files." }
opt_param_volumes:
- { vol_path: "/config", vol_host_path: "</path/to/appdata/config>", desc: "Configuration files." }
```
### Testing template changes
After you make any changes to the templates, you can use our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) to have the files updated from the modified templates. Please use the command found under `Running Locally` [on this page](https://github.com/linuxserver/docker-jenkins-builder/blob/master/README.md) to generate them prior to submitting a PR.
## Dockerfiles
We use multiple Dockerfiles in our repos, this is because sometimes some CPU architectures needs different packages to work.
If you are proposing additional packages to be added, ensure that you added the packages to all the Dockerfiles in alphabetical order.
### Testing your changes
```bash
git clone https://github.com/linuxserver/docker-baseimage-alpine.git
cd docker-baseimage-alpine
docker build \
--no-cache \
--pull \
-t linuxserver/baseimage-alpine:latest .
```
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash
docker run --rm --privileged lscr.io/linuxserver/qemu-static --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-baseimage-alpine/tree/edge/root), add an entry to the changelog
```yml
changelogs:
- { date: "DD.MM.YY:", desc: "Added some love to templates" }
```

2
.github/FUNDING.yml vendored
View file

@ -1,2 +0,0 @@
github: linuxserver
open_collective: linuxserver

View file

@ -1,13 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: Discord chat support
url: https://linuxserver.io/discord
about: Realtime support / chat with the community and the team.
- name: Discourse discussion forum
url: https://discourse.linuxserver.io
about: Post on our community forum.
- name: Documentation
url: https://docs.linuxserver.io
about: Documentation - information about all of our containers.

View file

@ -1,68 +0,0 @@
# Based on the issue template
name: Bug report
description: Create a report to help us improve
title: "[BUG] <title>"
labels: [Bug]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: Tell us what happens instead of the expected behavior.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Tell us what should happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: true
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **How docker service was installed**: distro's packagemanager
value: |
- OS:
- How docker service was installed:
render: markdown
validations:
required: false
- type: textarea
attributes:
label: Docker creation
description: |
Command used to create docker container
Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
render: bash
validations:
required: true
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs baseimage-alpine"
label: Container logs
placeholder: |
Output of `docker logs baseimage-alpine`
render: bash
validations:
required: true

View file

@ -1,31 +0,0 @@
# Based on the issue template
name: Feature request
description: Suggest an idea for this project
title: "[FEAT] <title>"
labels: [enhancement]
body:
- type: checkboxes
attributes:
label: Is this a new feature request?
description: Please search to see if a feature request already exists.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Wanted change
description: Tell us what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Reason for change
description: Justify your request, why do you want it, what is the benefit.
validations:
required: true
- type: textarea
attributes:
label: Proposed code change
description: Do you have a potential code change in mind?
validations:
required: false

View file

@ -1,43 +0,0 @@
<!--- Provide a general summary of your changes in the Title above -->
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- Before submitting a pull request please check the following -->
<!--- 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 -->
<!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message -->
<!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->
<!--- We maintain a changelog of major revisions to the container at the end of readme-vars.yml in the root of this repository, please add your changes there if appropriate -->
<!--- Coding guidelines: -->
<!--- 1. Installed packages in the Dockerfiles should be in alphabetical order -->
<!--- 2. Changes to Dockerfile should be replicated in Dockerfile.armhf and Dockerfile.aarch64 if applicable -->
<!--- 3. Indentation style (tabs vs 4 spaces vs 1 space) should match the rest of the document -->
<!--- 4. Readme is auto generated from readme-vars.yml, make your changes there -->
------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-baseimage-alpine/blob/edge/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------
<!--- We welcome all PRs though this doesnt guarantee it will be accepted. -->
## Description:
<!--- Describe your changes in detail -->
## Benefits of this PR and context:
<!--- Please explain why we should accept this PR. If this fixes an outstanding bug, please reference the issue # -->
## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->
## Source / References:
<!--- Please include any forum posts/github links relevant to the PR -->

View file

@ -1,16 +0,0 @@
name: Issue & PR Tracker
on:
issues:
types: [opened,reopened,labeled,unlabeled,closed]
pull_request_target:
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
pull_request_review:
types: [submitted,edited,dismissed]
jobs:
manage-project:
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
secrets: inherit

View file

@ -1,13 +0,0 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: '9 11 * * *'
workflow_dispatch:
jobs:
stale:
permissions:
issues: write
pull-requests: write
uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1
secrets: inherit

View file

@ -1,25 +0,0 @@
name: External Trigger Main
on:
workflow_dispatch:
jobs:
external-trigger-edge:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: External Trigger
if: github.ref == 'refs/heads/edge'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
printf "# External trigger for docker-baseimage-alpine\n\n" >> $GITHUB_STEP_SUMMARY
echo "Type is \`os\`" >> $GITHUB_STEP_SUMMARY
echo "No external release, exiting" >> $GITHUB_STEP_SUMMARY
exit 0
if grep -q "^baseimage-alpine_edge_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi

View file

@ -1,45 +0,0 @@
name: External Trigger Scheduler
on:
schedule:
- cron: '20 * * * *'
workflow_dispatch:
jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'
- name: External Trigger Scheduler
run: |
printf "# External trigger scheduler for docker-baseimage-alpine\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)
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
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine/${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
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
echo "Triggering external trigger workflow for branch." >> $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-baseimage-alpine/actions/workflows/external_trigger.yml/dispatches
else
echo "Skipping branch 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
fi
done

View file

@ -1,13 +0,0 @@
name: Greetings
on: [pull_request_target, issues]
jobs:
greeting:
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-baseimage-alpine/blob/edge/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,100 +0,0 @@
name: Package Trigger Scheduler
on:
schedule:
- cron: '15 13 * * 6'
workflow_dispatch:
jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'
- name: Package Trigger Scheduler
env:
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
run: |
printf "# Package trigger scheduler for docker-baseimage-alpine\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)
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-baseimage-alpine/${br}/jenkins-vars.yml)
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine/${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-baseimage-alpine/${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 "^baseimage-alpine_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`baseimage-alpine_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-alpine/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 \`baseimage-alpine_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} "
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-alpine/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
fi
else
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-baseimage-alpine/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 baseimage-alpine** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi

View file

@ -1,12 +0,0 @@
name: Permission check
on:
pull_request_target:
paths:
- '**/run'
- '**/finish'
- '**/check'
- 'root/migrations/*'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1

View file

@ -1,10 +1,10 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM alpine:3 AS rootfs-stage FROM alpine:3.20 AS rootfs-stage
# environment # environment
ENV ROOTFS=/root-out ENV ROOTFS=/root-out
ENV REL=edge ENV REL=v3.21
ENV ARCH=x86_64 ENV ARCH=x86_64
ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine
ENV PACKAGES=alpine-baselayout,\ ENV PACKAGES=alpine-baselayout,\
@ -75,6 +75,7 @@ ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \
RUN \ RUN \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache \ apk add --no-cache \
alpine-release \
bash \ bash \
ca-certificates \ ca-certificates \
catatonit \ catatonit \

View file

@ -1,10 +1,10 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM alpine:3 AS rootfs-stage FROM alpine:3.20 AS rootfs-stage
# environment # environment
ENV ROOTFS=/root-out ENV ROOTFS=/root-out
ENV REL=edge ENV REL=v3.21
ENV ARCH=aarch64 ENV ARCH=aarch64
ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine
ENV PACKAGES=alpine-baselayout,\ ENV PACKAGES=alpine-baselayout,\
@ -75,6 +75,7 @@ ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \
RUN \ RUN \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache \ apk add --no-cache \
alpine-release \
bash \ bash \
ca-certificates \ ca-certificates \
catatonit \ catatonit \
@ -95,11 +96,6 @@ RUN \
/config \ /config \
/defaults \ /defaults \
/lsiopy && \ /lsiopy && \
echo "**** add qemu ****" && \
curl -o \
/usr/bin/qemu-aarch64-static -L \
"https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static" && \
chmod +x /usr/bin/qemu-aarch64-static && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
rm -rf \ rm -rf \
/tmp/* /tmp/*

102
Jenkinsfile vendored
View file

@ -76,7 +76,7 @@ pipeline {
script{ script{
env.EXIT_STATUS = '' env.EXIT_STATUS = ''
env.LS_RELEASE = sh( env.LS_RELEASE = sh(
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:edge 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}:3.21 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim() returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh( 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' ''', 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' ''',
@ -105,7 +105,7 @@ pipeline {
script{ script{
env.LS_TAG_NUMBER = sh( env.LS_TAG_NUMBER = sh(
script: '''#! /bin/bash script: '''#! /bin/bash
tagsha=$(git rev-list -n 1 edge-${LS_RELEASE} 2>/dev/null) tagsha=$(git rev-list -n 1 3.21-${LS_RELEASE} 2>/dev/null)
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
echo ${LS_RELEASE_NUMBER} echo ${LS_RELEASE_NUMBER}
elif [ -z "${GIT_COMMIT}" ]; then elif [ -z "${GIT_COMMIT}" ]; then
@ -181,10 +181,10 @@ pipeline {
} }
} }
} }
// If this is a edge build use live docker endpoints // If this is a master build use live docker endpoints
stage("Set ENV live build"){ stage("Set ENV live build"){
when { when {
branch "edge" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
} }
steps { steps {
@ -194,13 +194,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-edge-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-edge-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = 'amd64-3.21-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-3.21-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else { } else {
env.CI_TAGS = 'edge-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = '3.21-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.META_TAG = 'edge-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.META_TAG = '3.21-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'edge-version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = '3.21-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.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'
} }
} }
@ -208,7 +208,7 @@ pipeline {
// If this is a dev build use dev docker endpoints // If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){ stage("Set ENV dev build"){
when { when {
not {branch "edge"} not {branch "master"}
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
} }
steps { steps {
@ -218,13 +218,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-edge-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-edge-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = 'amd64-3.21-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-3.21-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else { } else {
env.CI_TAGS = 'edge-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = '3.21-' + 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.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.META_TAG = 'edge-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.META_TAG = '3.21-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'edge-version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = '3.21-version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' env.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'
} }
@ -242,13 +242,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-edge-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-edge-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST env.CI_TAGS = 'amd64-3.21-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-3.21-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} else { } else {
env.CI_TAGS = 'edge-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST env.CI_TAGS = '3.21-' + 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.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.META_TAG = 'edge-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST env.META_TAG = '3.21-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'edge-version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = '3.21-version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST 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.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' env.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'
@ -286,7 +286,7 @@ pipeline {
// Use helper containers to render templated files // Use helper containers to render templated files
stage('Update-Templates') { stage('Update-Templates') {
when { when {
branch "edge" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
expression { expression {
env.CONTAINER_NAME != null env.CONTAINER_NAME != null
@ -298,24 +298,24 @@ pipeline {
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest docker pull ghcr.io/linuxserver/jenkins-builder:latest
# Cloned repo paths for templating: # Cloned repo paths for templating:
# ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch edge of ${LS_USER}/${LS_REPO} for running the jenkins builder on # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch master of ${LS_USER}/${LS_REPO} for running the jenkins builder on
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch edge of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github # ${TEMPDIR}/repo/${LS_REPO}: Cloned branch master 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}/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/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 # ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
git clone --branch edge --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME} git clone --branch master --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 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" echo "Starting Stage 1 - Jenkinsfile update"
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f edge git checkout -f master
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile git add Jenkinsfile
git commit -m 'Bot Updating Templated Files' git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git edge 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 edge git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit" echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR} rm -Rf ${TEMPDIR}
@ -334,13 +334,13 @@ pipeline {
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f edge git checkout -f master
for i in ${TEMPLATES_TO_DELETE}; do for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}" git rm "${i}"
done done
git commit -m 'Bot Updating Templated Files' git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git edge 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 edge git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit" echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR} rm -Rf ${TEMPDIR}
@ -356,7 +356,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f edge git checkout -f master
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
@ -369,8 +369,8 @@ pipeline {
fi fi
git add readme-vars.yml ${TEMPLATED_FILES} git add readme-vars.yml ${TEMPLATED_FILES}
git commit -m 'Bot Updating Templated Files' git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git edge 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 edge git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating templates and exiting build, new one will trigger based on commit" echo "Updating templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR} rm -Rf ${TEMPDIR}
@ -437,7 +437,7 @@ pipeline {
// Exit the build if the Templated files were just updated // Exit the build if the Templated files were just updated
stage('Template-exit') { stage('Template-exit') {
when { when {
branch "edge" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true' environment name: 'FILES_UPDATED', value: 'true'
expression { expression {
@ -450,10 +450,10 @@ pipeline {
} }
} }
} }
// If this is a edge build check the S6 service file perms // If this is a master build check the S6 service file perms
stage("Check S6 Service file Permissions"){ stage("Check S6 Service file Permissions"){
when { when {
branch "edge" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
@ -695,7 +695,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison // Take the image we just built and dump package versions for comparison
stage('Update-packages') { stage('Update-packages') {
when { when {
branch "edge" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
@ -718,14 +718,14 @@ pipeline {
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" 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 if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f edge git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/ cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/ cd ${TEMPDIR}/${LS_REPO}/
wait wait
git add package_versions.txt git add package_versions.txt
git commit -m 'Bot Updating Package Versions' git commit -m 'Bot Updating Package Versions'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git edge 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 edge git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
echo "Package tag updated, stopping build process" echo "Package tag updated, stopping build process"
else else
@ -743,7 +743,7 @@ pipeline {
// Exit the build if the package file was just updated // Exit the build if the package file was just updated
stage('PACKAGE-exit') { stage('PACKAGE-exit') {
when { when {
branch "edge" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true' environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
@ -757,7 +757,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push // Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') { stage('PACKAGECHECK-exit') {
when { when {
branch "edge" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false' environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
@ -811,7 +811,7 @@ pipeline {
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \ -e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \ -e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \ -e META_TAG=\"${META_TAG}\" \
-e RELEASE_TAG=\"edge\" \ -e RELEASE_TAG=\"3.21\" \
-e PORT=\"${CI_PORT}\" \ -e PORT=\"${CI_PORT}\" \
-e SSL=\"${CI_SSL}\" \ -e SSL=\"${CI_SSL}\" \
-e BASE=\"${DIST_IMAGE}\" \ -e BASE=\"${DIST_IMAGE}\" \
@ -848,7 +848,7 @@ pipeline {
CACHEIMAGE=${i} CACHEIMAGE=${i}
fi fi
done done
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:edge -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:3.21 -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
fi fi
@ -875,15 +875,15 @@ pipeline {
CACHEIMAGE=${i} CACHEIMAGE=${i}
fi fi
done done
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-edge -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-3.21 -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-edge -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-3.21 -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
if [ -n "${SEMVER}" ]; then 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}: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} docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
fi fi
done done
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker buildx imagetools create -t ${MANIFESTIMAGE}:edge ${MANIFESTIMAGE}:amd64-edge ${MANIFESTIMAGE}:arm64v8-edge docker buildx imagetools create -t ${MANIFESTIMAGE}:3.21 ${MANIFESTIMAGE}:amd64-3.21 ${MANIFESTIMAGE}:arm64v8-3.21
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} 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} docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
@ -898,7 +898,7 @@ pipeline {
// If this is a public release tag it in the LS Github // If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') { stage('Github-Tag-Push-Release') {
when { when {
branch "edge" branch "master"
expression { expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
@ -910,17 +910,17 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${META_TAG}'",\ -d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\ "object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to edge",\ "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
"type": "commit",\ "type": "commit",\
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' "tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag" echo "Pushing New release for Tag"
sh '''#! /bin/bash sh '''#! /bin/bash
echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\ echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "edge",\ "target_commitish": "master",\
"name": "'${META_TAG}'",\ "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 "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": true}' >> releasebody.json printf '","draft": false,"prerelease": false}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done 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''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
} }
@ -928,14 +928,14 @@ pipeline {
// Add protection to the release branch // Add protection to the release branch
stage('Github-Release-Branch-Protection') { stage('Github-Release-Branch-Protection') {
when { when {
branch "edge" branch "master"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
steps { steps {
echo "Setting up protection for release branch edge" echo "Setting up protection for release branch master"
sh '''#! /bin/bash sh '''#! /bin/bash
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/edge/protection \ curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/master/protection \
-d $(jq -c . << EOF -d $(jq -c . << EOF
{ {
"required_status_checks": null, "required_status_checks": null,

View file

@ -1,29 +1 @@
<!-- DO NOT EDIT THIS FILE MANUALLY --> A custom base image built with [Alpine Linux](https://alpinelinux.org) and [s6-overlay](https://github.com/just-containers/s6-overlay).
<!-- Please read https://github.com/linuxserver/docker-baseimage-alpine/blob/edge/.github/CONTRIBUTING.md -->
[linuxserverurl]: https://linuxserver.io
[forumurl]: https://forum.linuxserver.io
[ircurl]: https://mibbit.com/?server=irc.libera.chat&channel=%23linuxserver.io
[appurl]: https://alpinelinux.org
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png?v=4&s=4000)][linuxserverurl]
## Contact information:-
| Type | Address/Details |
| :---: | --- |
| Discord | [Discord](https://discord.gg/YWrKVTn) |
| IRC | libera at `#linuxserver.io` more information at:- [IRC][ircurl]
| Forum | [LinuxServer.io forum][forumurl] |
&nbsp;
&nbsp;
[![](https://images.microbadger.com/badges/image/lsiobase/alpine.svg)](https://microbadger.com/images/lsiobase/alpine "Get your own image badge on microbadger.com")
[![](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/Dockerfile-Link-green.png)](https://github.com/linuxserver/docker-baseimage-alpine/blob/master/Dockerfile)
A custom base image built with [Alpine linux][appurl] and [S6 overlay](https://github.com/just-containers/s6-overlay)..
The following line is only in this repo for loop testing:
- { date: "01.01.50:", desc: "I am the release message for this internal repo." }

View file

@ -3,9 +3,11 @@
# jenkins variables # jenkins variables
project_name: docker-baseimage-alpine project_name: docker-baseimage-alpine
external_type: os external_type: os
release_type: prerelease release_type: stable
release_tag: edge release_tag: "3.21"
ls_branch: edge ls_branch: master
image_sbom: true
image_provenance: true
repo_vars: repo_vars:
- BUILD_VERSION_ARG = 'OS' - BUILD_VERSION_ARG = 'OS'
- LS_USER = 'linuxserver' - LS_USER = 'linuxserver'

View file

@ -1,51 +1,51 @@
NAME VERSION TYPE NAME VERSION TYPE
acl-libs 2.3.2-r1 apk acl-libs 2.3.2-r1 apk
alpine-baselayout 3.7.0-r0 apk alpine-baselayout 3.6.8-r1 apk
alpine-baselayout-data 3.7.0-r0 apk alpine-baselayout-data 3.6.8-r1 apk
alpine-keys 2.5-r0 apk alpine-keys 2.5-r0 apk
apk-tools 2.14.9-r1 apk alpine-release 3.21.3-r0 apk
apk-tools 2.14.6-r3 apk
bash 5.2.37-r0 apk bash 5.2.37-r0 apk
brotli-libs 1.1.0-r2 apk brotli-libs 1.1.0-r2 apk
busybox 1.37.0-r16 apk busybox 1.37.0-r12 apk
busybox-binsh 1.37.0-r16 apk busybox-binsh 1.37.0-r12 apk
c-ares 1.34.5-r0 apk c-ares 1.34.5-r0 apk
ca-certificates 20241121-r2 apk ca-certificates 20241121-r1 apk
ca-certificates-bundle 20241121-r2 apk ca-certificates-bundle 20241121-r1 apk
catatonit 0.2.1-r0 apk catatonit 0.2.0-r0 apk
coreutils 9.6-r2 apk coreutils 9.5-r2 apk
coreutils-env 9.6-r2 apk coreutils-env 9.5-r2 apk
coreutils-fmt 9.6-r2 apk coreutils-fmt 9.5-r2 apk
coreutils-sha512sum 9.6-r2 apk coreutils-sha512sum 9.5-r2 apk
curl 8.13.0-r0 apk curl 8.12.1-r1 apk
findutils 4.10.0-r0 apk findutils 4.10.0-r0 apk
jq 1.7.1-r0 apk jq 1.7.1-r0 apk
libapk2 2.14.9-r1 apk
libattr 2.5.2-r2 apk libattr 2.5.2-r2 apk
libbsd 0.12.2-r0 apk libbsd 0.12.2-r0 apk
libcrypto3 3.5.0-r0 apk libcrypto3 3.3.3-r0 apk
libcurl 8.13.0-r0 apk libcurl 8.12.1-r1 apk
libidn2 2.3.7-r0 apk libidn2 2.3.7-r0 apk
libintl 0.24-r0 apk libintl 0.22.5-r0 apk
libmd 1.1.0-r0 apk libmd 1.1.0-r0 apk
libncursesw 6.5_p20250216-r0 apk libncursesw 6.5_p20241006-r3 apk
libproc2 4.0.4-r2 apk libproc2 4.0.4-r2 apk
libpsl 0.21.5-r3 apk libpsl 0.21.5-r3 apk
libssl3 3.5.0-r0 apk libssl3 3.3.3-r0 apk
libunistring 1.3-r0 apk libunistring 1.2-r0 apk
linux-pam 1.7.0-r2 apk linux-pam 1.6.1-r1 apk
musl 1.2.5-r10 apk musl 1.2.5-r9 apk
musl-utils 1.2.5-r10 apk musl-utils 1.2.5-r9 apk
ncurses-terminfo-base 6.5_p20250216-r0 apk ncurses-terminfo-base 6.5_p20241006-r3 apk
netcat-openbsd 1.228.1-r0 apk netcat-openbsd 1.226.1.1-r0 apk
nghttp2-libs 1.65.0-r0 apk nghttp2-libs 1.64.0-r0 apk
oniguruma 6.9.10-r0 apk oniguruma 6.9.9-r0 apk
procps-ng 4.0.4-r2 apk procps-ng 4.0.4-r2 apk
readline 8.2.13-r0 apk readline 8.2.13-r0 apk
scanelf 1.3.8-r1 apk scanelf 1.3.8-r1 apk
shadow 4.17.3-r0 apk shadow 4.16.0-r1 apk
skalibs-libs 2.14.3.0-r0 apk skalibs-libs 2.14.3.0-r0 apk
ssl_client 1.37.0-r16 apk ssl_client 1.37.0-r12 apk
tzdata 2025b-r0 apk tzdata 2025b-r0 apk
utmps-libs 0.1.2.3-r2 apk utmps-libs 0.1.2.3-r2 apk
zlib 1.3.1-r2 apk zlib 1.3.1-r2 apk
zstd-libs 1.5.7-r0 apk zstd-libs 1.5.6-r2 apk

View file

@ -4,29 +4,22 @@
project_name: baseimage-alpine project_name: baseimage-alpine
full_custom_readme: | full_custom_readme: |
{% raw -%} {% raw -%}
[linuxserverurl]: https://linuxserver.io [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[forumurl]: https://forum.linuxserver.io
[ircurl]: https://mibbit.com/?server=irc.libera.chat&channel=%23linuxserver.io
[appurl]: https://alpinelinux.org
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png?v=4&s=4000)][linuxserverurl]
## Contact information:- ## Contact information:-
| Type | Address/Details | | Type | Address/Details |
| :---: | --- | | :---: | --- |
| Discord | [Discord](https://discord.gg/YWrKVTn) | | Discord | [Discord](https://linuxserver.io/discord) |
| IRC | libera at `#linuxserver.io` more information at:- [IRC][ircurl] | IRC | `#linuxserver.io` on irc.libera.chat |
| Forum | [LinuxServer.io forum][forumurl] | | Forum | [Discourse](https://discourse.linuxserver.io/) |
&nbsp; A custom base image built with [Alpine Linux](https://alpinelinux.org) and [s6-overlay](https://github.com/just-containers/s6-overlay).
&nbsp;
[![](https://images.microbadger.com/badges/image/lsiobase/alpine.svg)](https://microbadger.com/images/lsiobase/alpine "Get your own image badge on microbadger.com") - Support for using our base images in your own projects is provided on a Reasonable Endeavours basis, please see our [Support Policy](https://www.linuxserver.io/supportpolicy) for details.
- There is no `latest` tag for any of our base images, by design. We often make breaking changes between versions, and we don't publish release notes like we do for the downstream images.
[![](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/Dockerfile-Link-green.png)](https://github.com/linuxserver/docker-baseimage-alpine/blob/master/Dockerfile) - If you're intending to distribute an image using one of our bases, please read our [docs on container branding](https://docs.linuxserver.io/general/container-branding/) first.
- Alpine releases are supported for 2 years, after which we will stop building new base images for that version.
A custom base image built with [Alpine linux][appurl] and [S6 overlay](https://github.com/just-containers/s6-overlay)..
The following line is only in this repo for loop testing: The following line is only in this repo for loop testing:

View file

@ -1,12 +1,3 @@
─────────────────────────────────────── ───────
_____ __ __ _____ _____ _____ _____ meatbag
| | | | __|_ _| | | ───────
| --| | |__ | | | | | | | | |
|_____|_____|_____| |_| |_____|_|_|_|
_____ __ __ _ __ ____
| __ | | | | | | \
| __ -| | | | |__| | |
|_____|_____|_|_____|____/
Based on images from linuxserver.io
───────────────────────────────────────

View file

@ -5,8 +5,13 @@ PUID=${PUID:-911}
PGID=${PGID:-911} PGID=${PGID:-911}
if [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; then if [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; then
groupmod -o -g "$PGID" abc USERHOME=$(grep abc /etc/passwd | cut -d ":" -f6)
usermod -o -u "$PUID" abc usermod -d "/root" abc
groupmod -o -g "${PGID}" abc
usermod -o -u "${PUID}" abc
usermod -d "${USERHOME}" abc
fi fi
if { [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; } || [[ ! ${LSIO_FIRST_PARTY} = "true" ]]; then if { [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; } || [[ ! ${LSIO_FIRST_PARTY} = "true" ]]; then

View file

@ -18,7 +18,6 @@ for MIGRATION in $(find ${MIGRATIONS_DIR}/* | sort -n); do
continue continue
fi fi
echo "[migrations] ${NAME}: executing..." echo "[migrations] ${NAME}: executing..."
chmod +x "${MIGRATION}"
# Execute migration script in a subshell to prevent it from modifying the current environment # Execute migration script in a subshell to prevent it from modifying the current environment
("${MIGRATION}") ("${MIGRATION}")
EXIT_CODE=$? EXIT_CODE=$?