Compare commits

..

163 Commits

Author SHA1 Message Date
LinuxServer-CI
274349166b Bot Updating Templated Files 2024-12-06 18:44:22 +00:00
LinuxServer-CI
54548adcc7 Bot Updating Templated Files 2024-12-06 18:42:21 +00:00
LinuxServer-CI
e1470dc8ab Bot Updating Templated Files 2024-12-06 18:40:28 +00:00
LinuxServer-CI
413458f588 Bot Updating Package Versions 2024-11-29 18:41:01 +00:00
LinuxServer-CI
6b689fed34 Bot Updating Package Versions 2024-11-22 18:38:58 +00:00
LinuxServer-CI
5240552ed4 Bot Updating Templated Files 2024-11-15 18:39:32 +00:00
LinuxServer-CI
3f9edfc3cc Bot Updating Templated Files 2024-11-15 18:37:59 +00:00
LinuxServer-CI
a460662903 Bot Updating Package Versions 2024-11-01 18:36:43 +00:00
LinuxServer-CI
2b6f0b7927 Bot Updating Package Versions 2024-10-25 18:37:24 +00:00
LinuxServer-CI
9fb77214d3 Bot Updating Templated Files 2024-10-04 18:37:22 +00:00
LinuxServer-CI
fc112da970 Bot Updating Package Versions 2024-09-27 18:42:02 +00:00
LinuxServer-CI
b8432990ae Bot Updating Templated Files 2024-09-27 18:39:58 +00:00
LinuxServer-CI
698b56ae07 Bot Updating Templated Files 2024-09-27 18:38:40 +00:00
LinuxServer-CI
7c8281caba Bot Updating Templated Files 2024-09-27 18:37:12 +00:00
LinuxServer-CI
2374a19761 Bot Updating Package Versions 2024-09-20 18:36:33 +00:00
LinuxServer-CI
694a33a9c1 Bot Updating Package Versions 2024-09-13 18:38:02 +00:00
LinuxServer-CI
59959cbae7 Bot Updating Package Versions 2024-09-06 18:35:43 +00:00
LinuxServer-CI
def983ab25 Bot Updating Package Versions 2024-08-23 18:37:45 +00:00
LinuxServer-CI
95cdaf22af Bot Updating Templated Files 2024-08-23 18:35:34 +00:00
LinuxServer-CI
36e67b267e Bot Updating Templated Files 2024-08-23 18:34:00 +00:00
LinuxServer-CI
019bf21bf2 Bot Updating Package Versions 2024-08-16 18:34:50 +00:00
LinuxServer-CI
81a23c1ffe Bot Updating Package Versions 2024-08-09 18:36:21 +00:00
LinuxServer-CI
b601769e0f Bot Updating Package Versions 2024-08-02 18:35:10 +00:00
LinuxServer-CI
822a1e7bcd Bot Updating Package Versions 2024-07-26 18:32:46 +00:00
Eric Nemchik
a70321c371 Merge pull request #153 from linuxserver/delete-default-conf
Delete root/defaults/nginx/site-confs/default.conf.sample
2024-07-19 16:35:59 -05:00
LinuxServer-CI
f399491bf6 Bot Updating Package Versions 2024-07-19 18:33:47 +00:00
Eric Nemchik
493b46774c Delete root/defaults/nginx/site-confs/default.conf.sample
redundant to base
2024-07-16 20:44:11 -05:00
LinuxServer-CI
bf821250ce Bot Updating Package Versions 2024-07-12 18:39:29 +00:00
LinuxServer-CI
2c7e8e2347 Bot Updating Templated Files 2024-07-12 18:37:23 +00:00
LinuxServer-CI
0a811d8ff0 Bot Updating Templated Files 2024-07-12 18:35:17 +00:00
LinuxServer-CI
a2b5099589 Bot Updating Package Versions 2024-07-05 18:34:20 +00:00
LinuxServer-CI
d1de807dbd Bot Updating Package Versions 2024-06-28 09:08:39 +00:00
Roxedus
2d0a689cfa Merge pull request #152 from linuxserver/master-3.20 2024-06-28 11:04:07 +02:00
thespad
32482621b1 Rebase to 3.20 2024-06-27 16:33:46 +01:00
LinuxServer-CI
ae11a9757a Bot Updating Package Versions 2024-06-21 18:34:08 +00:00
LinuxServer-CI
438ca48450 Bot Updating Package Versions 2024-06-14 18:34:10 +00:00
LinuxServer-CI
f4d5ee4d4b Bot Updating Package Versions 2024-05-24 18:36:32 +00:00
LinuxServer-CI
50b7879b20 Bot Updating Templated Files 2024-05-24 18:34:18 +00:00
LinuxServer-CI
3a54e1e8a4 Bot Updating Templated Files 2024-05-24 18:32:03 +00:00
LinuxServer-CI
0fa6c3b178 Bot Updating Package Versions 2024-05-17 18:34:23 +00:00
LinuxServer-CI
5f8befb76f Bot Updating Package Versions 2024-05-10 18:34:30 +00:00
LinuxServer-CI
b4c8ae5421 Bot Updating Templated Files 2024-05-10 18:30:46 +00:00
LinuxServer-CI
0457e2e6c9 Bot Updating Package Versions 2024-05-03 18:34:58 +00:00
LinuxServer-CI
f2adb642db Bot Updating Templated Files 2024-05-03 18:30:46 +00:00
LinuxServer-CI
d7534720d4 Bot Updating Package Versions 2024-04-26 18:31:53 +00:00
LinuxServer-CI
44ed891b5b Bot Updating Package Versions 2024-04-19 18:30:03 +00:00
LinuxServer-CI
c4bfc70a35 Bot Updating Package Versions 2024-04-12 18:27:59 +00:00
LinuxServer-CI
810384ffc8 Bot Updating Package Versions 2024-04-05 18:29:54 +00:00
LinuxServer-CI
3980f54fb1 Bot Updating Package Versions 2024-03-29 18:29:08 +00:00
LinuxServer-CI
e1970defc6 Bot Updating Package Versions 2024-03-22 18:30:26 +00:00
LinuxServer-CI
0654cc0288 Bot Updating Package Versions 2024-03-15 18:35:44 +00:00
LinuxServer-CI
7cf45e7130 Bot Updating Templated Files 2024-03-15 18:30:00 +00:00
LinuxServer-CI
696994332b Bot Updating Package Versions 2024-03-07 13:54:12 +00:00
LinuxServer-CI
bbcf5f8d5a Bot Updating Templated Files 2024-03-07 13:51:18 +00:00
Andrew Berry
1aedaec411 Enable the PHP opcache and disable revalidation (#149)
* Enable the PHP opcache and disable revalidation

* Add opcache update to changelog
2024-03-07 08:49:31 -05:00
LinuxServer-CI
dee7bdbd92 Bot Updating Templated Files 2024-03-06 17:56:36 +00:00
Eric Nemchik
a721071117 Cleanup default site conf (#142)
* Cleanup default site conf

Signed-off-by: Eric Nemchik <eric@nemchik.com>

* update dates

---------

Signed-off-by: Eric Nemchik <eric@nemchik.com>
Co-authored-by: aptalca <541623+aptalca@users.noreply.github.com>
2024-03-06 12:52:31 -05:00
LinuxServer-CI
2e5e686e36 Bot Updating Package Versions 2024-03-01 18:31:19 +00:00
LinuxServer-CI
86fa1c70a3 Bot Updating Templated Files 2024-02-23 18:31:22 +00:00
LinuxServer-CI
2b2f8dfd6d Bot Updating Templated Files 2024-02-23 18:29:36 +00:00
LinuxServer-CI
46eacc80b8 Bot Updating Package Versions 2024-02-18 21:49:23 +00:00
LinuxServer-CI
0f3c2b0401 Bot Updating Package Versions 2024-02-17 15:45:10 +00:00
Adam
837c5942db Merge pull request #145 from linuxserver/feature/add_dom_php_extension
Add DOM php extension
2024-02-17 14:35:30 +00:00
Chris Hunt
879e81fb6b Add DOM php extension 2024-02-17 08:29:57 +00:00
LinuxServer-CI
c5500f1c10 Bot Updating Package Versions 2024-02-16 18:29:23 +00:00
LinuxServer-CI
0830b88bd6 Bot Updating Package Versions 2024-02-09 18:29:01 +00:00
LinuxServer-CI
27f3745f2a Bot Updating Package Versions 2024-02-02 18:30:25 +00:00
LinuxServer-CI
bbecc0b09a Bot Updating Package Versions 2024-01-26 16:43:37 +00:00
LinuxServer-CI
dad5208309 Bot Updating Templated Files 2024-01-26 16:39:55 +00:00
Eric Nemchik
d999bb49de Merge pull request #140 from linuxserver/3.19
Rebase to Alpine 3.19
2024-01-26 10:37:50 -06:00
LinuxServer-CI
6b588ea844 Bot Updating Package Versions 2024-01-19 18:31:46 +00:00
LinuxServer-CI
d893aac03f Bot Updating Package Versions 2024-01-12 18:35:54 +00:00
LinuxServer-CI
6432966c54 Bot Updating Templated Files 2024-01-12 18:32:20 +00:00
LinuxServer-CI
4ea20437ae Bot Updating Templated Files 2024-01-12 18:30:36 +00:00
LinuxServer-CI
883863471c Bot Updating Package Versions 2024-01-05 18:32:08 +00:00
Eric Nemchik
ca4da80275 Rebase to Alpine 3.19
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-23 18:12:50 -06:00
LinuxServer-CI
578be1f1f3 Bot Updating Package Versions 2023-12-22 18:31:05 +00:00
LinuxServer-CI
4cb619e62d Bot Updating Package Versions 2023-12-15 18:32:01 +00:00
LinuxServer-CI
c5eeeea25f Bot Updating Package Versions 2023-12-08 18:32:04 +00:00
LinuxServer-CI
7d6fadb7a0 Bot Updating Package Versions 2023-12-01 18:31:59 +00:00
Eric Nemchik
6208bee94a Merge pull request #138 from linuxserver/quiet-migration
only run migration if conf exists
2023-11-29 08:30:57 -06:00
Eric Nemchik
5a13df03c2 only run migration if conf exists
redirect stderr to /dev/null

Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-25 10:42:57 -06:00
LinuxServer-CI
95b5c12980 Bot Updating Package Versions 2023-11-24 18:30:13 +00:00
LinuxServer-CI
1930594564 Bot Updating Package Versions 2023-11-17 18:34:44 +00:00
LinuxServer-CI
ab062598dd Bot Updating Templated Files 2023-11-17 18:31:28 +00:00
LinuxServer-CI
6e67e9639f Bot Updating Package Versions 2023-11-10 18:29:51 +00:00
LinuxServer-CI
08c8690c05 Bot Updating Package Versions 2023-10-27 18:30:40 +00:00
LinuxServer-CI
10c24c4e6c Bot Updating Package Versions 2023-10-20 18:30:04 +00:00
LinuxServer-CI
9f3e2d5e25 Bot Updating Package Versions 2023-10-13 18:32:34 +00:00
LinuxServer-CI
7f2ed151a8 Bot Updating Templated Files 2023-10-07 00:23:35 +00:00
LinuxServer-CI
edf366cafc Bot Updating Package Versions 2023-10-06 18:37:37 +00:00
LinuxServer-CI
56cfd5e4f9 Bot Updating Templated Files 2023-10-06 18:32:40 +00:00
LinuxServer-CI
ec44060cd9 Bot Updating Templated Files 2023-10-06 18:30:08 +00:00
LinuxServer-CI
9c3398a642 Bot Updating Package Versions 2023-09-29 18:30:40 +00:00
LinuxServer-CI
8ae8376b0e Bot Updating Package Versions 2023-09-22 18:31:02 +00:00
LinuxServer-CI
171f7a06ba Bot Updating Package Versions 2023-09-08 18:29:10 +00:00
LinuxServer-CI
ea77b698e9 Bot Updating Package Versions 2023-09-01 18:28:10 +00:00
LinuxServer-CI
72e0b2429d Bot Updating Package Versions 2023-08-18 18:29:16 +00:00
LinuxServer-CI
cd14d065fb Bot Updating Package Versions 2023-08-11 18:28:08 +00:00
LinuxServer-CI
5ec148867c Bot Updating Package Versions 2023-08-04 18:29:09 +00:00
LinuxServer-CI
bc67105b9f Bot Updating Package Versions 2023-07-28 18:27:45 +00:00
LinuxServer-CI
78ce2e7888 Bot Updating Package Versions 2023-07-21 18:31:34 +00:00
LinuxServer-CI
a3d7d6b52d Bot Updating Package Versions 2023-07-14 18:33:24 +00:00
LinuxServer-CI
73abea2a2a Bot Updating Package Versions 2023-07-07 18:35:16 +00:00
LinuxServer-CI
2ee1aac893 Bot Updating Templated Files 2023-07-07 18:33:06 +00:00
LinuxServer-CI
ca1aad4eef Bot Updating Package Versions 2023-06-23 18:33:17 +00:00
LinuxServer-CI
4b1ebc551b Bot Updating Package Versions 2023-06-16 18:30:20 +00:00
LinuxServer-CI
405811c812 Bot Updating Package Versions 2023-06-09 18:29:18 +00:00
LinuxServer-CI
72febc8128 Bot Updating Package Versions 2023-06-02 18:30:09 +00:00
LinuxServer-CI
79cc6e9958 Bot Updating Package Versions 2023-05-31 17:35:27 +00:00
Eric Nemchik
106be7d4c8 Merge pull request #130 from linuxserver/3.18
Rebase to Alpine 3.18, deprecate armhf
2023-05-31 12:31:46 -05:00
Eric Nemchik
ef39ae4b09 Merge remote-tracking branch 'origin/master' into 3.18
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-05-29 17:29:04 -05:00
Eric Nemchik
d631acbc2b Rebase to Alpine 3.18, deprecate armhf 2023-05-27 16:51:39 -05:00
LinuxServer-CI
1d14a698e9 Bot Updating Package Versions 2023-05-26 18:32:01 +00:00
LinuxServer-CI
a39cf6077e Bot Updating Templated Files 2023-05-26 18:28:15 +00:00
LinuxServer-CI
913d0ae731 Bot Updating Package Versions 2023-05-19 18:28:38 +00:00
LinuxServer-CI
f4373faaf7 Bot Updating Package Versions 2023-05-12 18:28:26 +00:00
LinuxServer-CI
6337038936 Bot Updating Package Versions 2023-04-28 18:32:32 +00:00
LinuxServer-CI
b4d0dd10ed Bot Updating Templated Files 2023-04-28 18:29:38 +00:00
LinuxServer-CI
0cd62d2600 Bot Updating Templated Files 2023-04-28 18:28:39 +00:00
LinuxServer-CI
7a416945f8 Bot Updating Package Versions 2023-04-21 18:30:09 +00:00
LinuxServer-CI
3a461589ae Bot Updating Package Versions 2023-04-18 09:13:38 -05:00
Eric Nemchik
7423abbba3 Merge pull request #125 from linuxserver/move-ssl-include
Move ssl.conf include to default.conf
2023-04-18 09:08:13 -05:00
LinuxServer-CI
dc90782e9b Bot Updating Package Versions 2023-04-14 13:30:32 -05:00
Eric Nemchik
4bc9c1c0a8 Move ssl.conf include to default.conf 2023-04-13 11:05:47 -05:00
LinuxServer-CI
c1e8f4aff6 Bot Updating Package Versions 2023-04-07 13:35:44 -05:00
LinuxServer-CI
ed2a01883e Bot Updating Package Versions 2023-04-02 03:03:28 -05:00
LinuxServer-CI
d4a94d2b22 Bot Updating Templated Files 2023-04-02 03:01:08 -05:00
LinuxServer-CI
268c0bd387 Bot Updating Templated Files 2023-04-02 02:59:33 -05:00
LinuxServer-CI
270e7fe693 Bot Updating Templated Files 2023-04-02 02:58:01 -05:00
LinuxServer-CI
12b0376ef0 Bot Updating Package Versions 2023-03-26 02:58:20 -05:00
LinuxServer-CI
279e8aff58 Bot Updating Package Versions 2023-03-09 17:53:32 +01:00
LinuxServer-CI
ff2790ec89 Bot Updating Package Versions 2023-03-05 09:00:27 +01:00
LinuxServer-CI
94c5031806 Bot Updating Templated Files 2023-03-05 08:57:50 +01:00
LinuxServer-CI
201ead3860 Bot Updating Package Versions 2023-02-26 01:59:11 -06:00
LinuxServer-CI
2a933c71f5 Bot Updating Package Versions 2023-02-19 08:58:54 +01:00
LinuxServer-CI
2579fdf1d5 Bot Updating Package Versions 2023-02-12 02:01:32 -06:00
LinuxServer-CI
9da5735d04 Bot Updating Templated Files 2023-02-12 01:59:02 -06:00
LinuxServer-CI
75a85e47d0 Bot Updating Templated Files 2023-02-12 01:57:45 -06:00
LinuxServer-CI
21da59c4d2 Bot Updating Package Versions 2023-02-05 01:58:11 -06:00
LinuxServer-CI
46f6a30e9d Bot Updating Package Versions 2023-01-27 04:20:22 -06:00
Eric Nemchik
86be90bf2e Merge pull request #120 from linuxserver/3.17
Rebase to alpine 3.17 with php8.1 (master)
2023-01-27 04:17:38 -06:00
Eric Nemchik
de8ba1b570 Fix perm check 2023-01-25 19:33:19 -06:00
Eric Nemchik
96d2cfabc4 Adjust for overlayfs chown bug 2023-01-25 19:19:23 -06:00
Eric Nemchik
fb74b689ec Adjust file ownership 2023-01-23 20:46:38 -06:00
Eric Nemchik
59fd8f30c9 Only set folder permissions when symlinking 2023-01-23 20:08:33 -06:00
Eric Nemchik
b9940034b8 Move install back to Dockerfile 2023-01-23 19:50:44 -06:00
Eric Nemchik
0a47a08cc0 Rebase to alpine 3.17 with php8.1 2023-01-22 16:28:25 -06:00
LinuxServer-CI
4ed42cde3a Bot Updating Package Versions 2023-01-22 01:58:06 -06:00
Eric Nemchik
c4f48e26a5 Merge pull request #119 from linuxserver/format
Format shell scripts
2023-01-18 06:02:56 -06:00
Eric Nemchik
a7e8da1751 Format shell scripts 2023-01-15 09:48:49 -06:00
LinuxServer-CI
fed915b7c7 Bot Updating Package Versions 2022-12-25 08:57:52 +01:00
LinuxServer-CI
89d886bf9b Bot Updating Templated Files 2022-12-04 02:00:50 -06:00
LinuxServer-CI
311858e691 Bot Updating Templated Files 2022-12-04 08:59:21 +01:00
LinuxServer-CI
c8907dc91d Bot Updating Templated Files 2022-12-04 01:58:04 -06:00
Eric Nemchik
a7e89cd97c Merge pull request #112 from linuxserver/fix-permissions
Reorder init to fix permissions
2022-11-25 11:20:32 -06:00
TheSpad
56f29b5e96 Symlink before permissions 2022-11-25 16:27:53 +00:00
TheSpad
9279d33966 Reorder init to fix permissions 2022-11-25 16:26:58 +00:00
KodeStar
e1be906c7a Merge pull request #111 from linuxserver/master-logs
Remove logrotate and symlink logs
2022-11-25 15:10:38 +00:00
Eric Nemchik
40f301e5f9 Spacing 2022-11-25 01:04:24 +00:00
Eric Nemchik
b4403d7c37 Remove logrotate and symlink logs 2022-11-24 23:11:37 +00:00
LinuxServer-CI
2d84657f1c Bot Updating Package Versions 2022-11-24 00:08:34 +01:00
Eric Nemchik
09350f3a5c Merge pull request #79 from linuxserver/standard-base
Standard base
2022-11-23 17:06:49 -06:00
13 changed files with 192 additions and 248 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-heimdall/edit/development/readme-vars.yml).
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-heimdall/edit/master/readme-vars.yml).
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-heimdall)
@@ -115,7 +115,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Update the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-heimdall/tree/development/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-heimdall/tree/master/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-heimdall/blob/development/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-heimdall/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------

View File

@@ -4,39 +4,31 @@ on:
workflow_dispatch:
jobs:
external-trigger-development:
external-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: External Trigger
if: github.ref == 'refs/heads/development'
if: github.ref == 'refs/heads/master'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
printf "# External trigger for docker-heimdall\n\n" >> $GITHUB_STEP_SUMMARY
if grep -q "^heimdall_development_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`heimdall_development_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^heimdall_development" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
if grep -q "^heimdall_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`heimdall_development\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`heimdall_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of development branch. To disable this trigger, add \`heimdall_development\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of master branch. To disable this trigger, add \`heimdall_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 -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" | jq -r '. | .sha' | cut -c1-8)
echo "Type is \`github_commit\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^heimdall_development_${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
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | jq -r '. | .tag_name')
echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY
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 heimdall branch development"
FAILURE_REASON="Can't retrieve external version for heimdall branch master"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-heimdall/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"}],
@@ -47,7 +39,7 @@ jobs:
echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
image="linuxserver/heimdall"
tag="development"
tag="latest"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fheimdall%3Apull" \
| jq -r '.token')
@@ -56,30 +48,13 @@ jobs:
--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 \
--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
multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}")
digest=$(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}" \
| jq -r '.config.digest')
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}")
@@ -93,7 +68,7 @@ jobs:
if [ -z "${IMAGE_VERSION}" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve last pushed version for heimdall tag development"
FAILURE_REASON="Can't retrieve last pushed version for heimdall tag latest"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
@@ -103,25 +78,25 @@ jobs:
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
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-heimdall/job/development/lastBuild/api/json | jq -r '.building') == "true" ]; then
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/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
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 heimdall tag development is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
FAILURE_REASON="New version ${EXT_RELEASE} for heimdall 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
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-heimdall/job/development/buildWithParameters?PACKAGE_CHECK=false \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/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
@@ -136,7 +111,7 @@ jobs:
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for heimdall tag development. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
TRIGGER_REASON="A version change was detected for heimdall 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 }}

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-heimdall/blob/development/.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-heimdall/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -27,18 +27,9 @@ jobs:
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-heimdall/${br}/jenkins-vars.yml)
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-heimdall/${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
if [[ "${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-heimdall/${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
if [[ $(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} "
@@ -46,7 +37,7 @@ jobs:
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`heimdall_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/${br}/lastBuild/api/json | jq -r '.building') == "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} "
@@ -58,11 +49,6 @@ jobs:
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/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
@@ -70,14 +56,11 @@ jobs:
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 \
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"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Unable to change the Jenkins job description."
fi
--data-urlencode "Submit=Submit"
sleep 20
fi
else

View File

@@ -14,10 +14,10 @@ RUN \
apk add --no-cache \
php83-dom \
php83-intl \
php83-opcache \
php83-pdo_mysql \
php83-pdo_pgsql \
php83-pdo_sqlite \
php83-pdo_mysql \
php83-opcache \
php83-tokenizer && \
echo "**** configure nginx ****" && \
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
@@ -31,8 +31,8 @@ RUN \
mkdir -p \
/heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/heimdall.tar.gz -L \

View File

@@ -14,10 +14,10 @@ RUN \
apk add --no-cache \
php83-dom \
php83-intl \
php83-opcache \
php83-pdo_mysql \
php83-pdo_pgsql \
php83-pdo_sqlite \
php83-pdo_mysql \
php83-opcache \
php83-tokenizer && \
echo "**** configure nginx ****" && \
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
@@ -31,8 +31,8 @@ RUN \
mkdir -p \
/heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/heimdall.tar.gz -L \

179
Jenkinsfile vendored
View File

@@ -59,25 +59,15 @@ pipeline {
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 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}:development 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}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh(
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
@@ -106,7 +96,7 @@ pipeline {
script{
env.LS_TAG_NUMBER = sh(
script: '''#! /bin/bash
tagsha=$(git rev-list -n 1 development-${LS_RELEASE} 2>/dev/null)
tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null)
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
echo ${LS_RELEASE_NUMBER}
elif [ -z "${GIT_COMMIT}" ]; then
@@ -139,21 +129,21 @@ pipeline {
/* ########################
External Release Tagging
######################## */
// If this is a github commit trigger determine the current commit at head
stage("Set ENV github_commit"){
// If this is a stable github release use the latest endpoint from github to determine the ext tag
stage("Set ENV github_stable"){
steps{
script{
env.EXT_RELEASE = sh(
script: '''curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/commits/${EXT_GIT_BRANCH} | jq -r '. | .sha' | cut -c1-8 ''',
script: '''curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. | .tag_name' ''',
returnStdout: true).trim()
}
}
}
// If this is a github commit trigger Set the external release link
stage("Set ENV commit_link"){
// If this is a stable or devel github release generate the link for the build message
stage("Set ENV github_link"){
steps{
script{
env.RELEASE_LINK = 'https://github.com/' + env.EXT_USER + '/' + env.EXT_REPO + '/commit/' + env.EXT_RELEASE
env.RELEASE_LINK = 'https://github.com/' + env.EXT_USER + '/' + env.EXT_REPO + '/releases/tag/' + env.EXT_RELEASE
}
}
}
@@ -191,10 +181,10 @@ pipeline {
}
}
}
// If this is a development build use live docker endpoints
// If this is a master build use live docker endpoints
stage("Set ENV live build"){
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -204,13 +194,13 @@ 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-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.META_TAG = 'development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'development-version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
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'
}
}
@@ -218,7 +208,7 @@ pipeline {
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
not {branch "development"}
not {branch "master"}
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -228,13 +218,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else {
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.META_TAG = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'development-version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
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'
}
@@ -252,13 +242,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-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
} else {
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-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 = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'development-version-' + env.EXT_RELEASE_CLEAN
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.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'
@@ -296,7 +286,7 @@ pipeline {
// Use helper containers to render templated files
stage('Update-Templates') {
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
@@ -308,24 +298,24 @@ pipeline {
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
# Cloned repo paths for templating:
# ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch development of ${LS_USER}/${LS_REPO} for running the jenkins builder on
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch development of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
# ${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}/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 development --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
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 development
git checkout -f master
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 development
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
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 Jenkinsfile and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@@ -344,13 +334,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 development
git checkout -f master
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 development
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
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 "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@@ -365,20 +355,20 @@ pipeline {
sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml
fi
mkdir -p ${TEMPDIR}/d2
docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:development
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}-development.d2\\")" readme-vars.yml
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 development
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 development
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
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}
@@ -395,7 +385,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 development
git checkout -f master
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
@@ -408,8 +398,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 development
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
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}
@@ -510,7 +500,7 @@ pipeline {
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
@@ -523,10 +513,10 @@ pipeline {
}
}
}
// If this is a development 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"){
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@@ -595,7 +585,7 @@ pipeline {
--label \"org.opencontainers.image.title=Heimdall\" \
--label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--provenance=true --sbom=true --builder=container --load \
--provenance=false --sbom=false --builder=container --load \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh '''#! /bin/bash
set -e
@@ -624,9 +614,7 @@ pipeline {
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
wait
fi
'''
}
@@ -661,7 +649,7 @@ pipeline {
--label \"org.opencontainers.image.title=Heimdall\" \
--label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--provenance=true --sbom=true --builder=container --load \
--provenance=false --sbom=false --builder=container --load \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh '''#! /bin/bash
set -e
@@ -690,9 +678,7 @@ pipeline {
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
wait
fi
'''
}
@@ -720,7 +706,7 @@ pipeline {
--label \"org.opencontainers.image.title=Heimdall\" \
--label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \
--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 --builder=container --load \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh '''#! /bin/bash
set -e
@@ -749,9 +735,7 @@ pipeline {
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
wait
fi
'''
}
@@ -770,7 +754,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@@ -793,14 +777,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 development
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
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 development
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
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/packages-${COMMIT_SHA}-${BUILD_NUMBER}
echo "Package tag updated, stopping build process"
else
@@ -818,7 +802,7 @@ pipeline {
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: ''
@@ -832,7 +816,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') {
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
@@ -886,7 +870,7 @@ pipeline {
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \
-e RELEASE_TAG=\"development\" \
-e RELEASE_TAG=\"latest\" \
-e PORT=\"${CI_PORT}\" \
-e SSL=\"${CI_SSL}\" \
-e BASE=\"${DIST_IMAGE}\" \
@@ -923,7 +907,7 @@ pipeline {
CACHEIMAGE=${i}
fi
done
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:development -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
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
@@ -950,15 +934,15 @@ pipeline {
CACHEIMAGE=${i}
fi
done
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-development -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-development -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
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}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm64v8-development
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}
@@ -973,7 +957,7 @@ pipeline {
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
branch "development"
branch "master"
expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
@@ -985,17 +969,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 development",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
"type": "commit",\
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/commits/${EXT_RELEASE_CLEAN} | jq '.commit.message' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "development",\
"target_commitish": "master",\
"name": "'${META_TAG}'",\
"body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": true}' >> releasebody.json
"body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": false}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
}
@@ -1003,14 +987,14 @@ pipeline {
// Add protection to the release branch
stage('Github-Release-Branch-Protection') {
when {
branch "development"
branch "master"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
echo "Setting up protection for release branch development"
echo "Setting up protection for release branch master"
sh '''#! /bin/bash
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/development/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
{
"required_status_checks": null,
@@ -1172,21 +1156,12 @@ EOF
}
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 system prune -af --volumes || :
'''
cleanWs()
}

View File

@@ -1,9 +1,9 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-heimdall/blob/development/.github/CONTRIBUTING.md -->
<!-- Please read https://github.com/linuxserver/docker-heimdall/blob/master/.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,8 +36,8 @@ 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/heimdall)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall)
[![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-heimdall%2Fjob%2Fdevelopment%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/development/)
[![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%2Fheimdall%2Fdevelopment%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/heimdall/development/index.html)
[![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-heimdall%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/master/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fheimdall%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/heimdall/latest/index.html)
[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way.
@@ -51,7 +51,7 @@ Why not use it as your browser start page? It even has the ability to include a
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/heimdall:development` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/heimdall:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
@@ -91,7 +91,7 @@ To help you get started creating a container from this image you can either use
---
services:
heimdall:
image: lscr.io/linuxserver/heimdall:development
image: lscr.io/linuxserver/heimdall:latest
container_name: heimdall
environment:
- PUID=1000
@@ -117,7 +117,7 @@ docker run -d \
-p 443:443 \
-v /path/to/heimdall/config:/config \
--restart unless-stopped \
lscr.io/linuxserver/heimdall:development
lscr.io/linuxserver/heimdall:latest
```
## Parameters
@@ -197,7 +197,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/heimdall:development
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/heimdall:latest
```
## Updating Info
@@ -245,7 +245,7 @@ Below are the instructions for updating containers:
* Update the image:
```bash
docker pull lscr.io/linuxserver/heimdall:development
docker pull lscr.io/linuxserver/heimdall:latest
```
* Stop the running container:
@@ -282,7 +282,7 @@ cd docker-heimdall
docker build \
--no-cache \
--pull \
-t lscr.io/linuxserver/heimdall:development .
-t lscr.io/linuxserver/heimdall:latest .
```
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
@@ -303,17 +303,23 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
* **13.04.23:** - Move ssl.conf include to default.conf.
* **20.01.23:** - Rebase to alpine 3.17 with php8.1.
* **14.11.22:** - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)).
* **04.11.22:** - Build commits to upstream branch 2.x.
* **04.11.22:** - Build commits to upstream branch 2.x for the `development` tag.
* **13.03.21:** - Make searchproviders.yaml user configurable.
* **11.03.21:** - Rebase to alpine 3.14.
* **10.02.21:** - Revert to alpine 3.12 as php 7.4 broke laravel.
* **10.02.21:** - Rebasing to alpine 3.13.
* **17.08.20:** - Add php7-curl.
* **01.06.20:** - Rebasing to alpine 3.12.
* **17.01.20:** - Use nginx from baseimage.
* **19.12.19:** - Rebasing to alpine 3.11.
* **15.07.19:** - Save laravel.log to /config, install heimdall during first start.
* **16.07.19:** - Save laravel.log to /config/log/heimdall.
* **28.06.19:** - Rebasing to alpine 3.10.
* **01.04.19:** - Fix permission detect logic.
* **26.03.19:** - Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown.
* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
* **15.03.19:** - Clarify docker image tags in readme.
* **22.02.19:** - Rebasing to alpine 3.9.
* **16.01.18:** - Generate random app key in .env for new installs.
* **20.11.18:** - Upgrade baseimage packages during build.
* **04.11.18:** - Add php7-zip.
* **31.10.18:** - Add queue service.
* **17.10.18:** - Symlink avatars folder.

View File

@@ -2,10 +2,10 @@
# jenkins variables
project_name: docker-heimdall
external_type: github_commit
release_type: prerelease
release_tag: development
ls_branch: development
external_type: github_stable
release_type: stable
release_tag: latest
ls_branch: master
repo_vars:
- EXT_GIT_BRANCH = '2.x'
- EXT_USER = 'linuxserver'

View File

@@ -3,9 +3,9 @@ Hidden Input 1, 0, 0, 0 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.5-r0 apk
alpine-release 3.20.3-r0 apk
apache2-utils 2.4.62-r0 apk
apk-tools 2.14.4-r1 apk
apk-tools 2.14.4-r0 apk
apr 1.7.5-r0 apk
apr-util 1.6.3-r1 apk
argon2-libs 20190702-r5 apk
@@ -19,19 +19,19 @@ brotli-libs 1.1.0-r2 apk
busybox 1.36.1-r29 apk
busybox-binsh 1.36.1-r29 apk
c-ares 1.33.1-r0 apk
ca-certificates 20241121-r1 apk
ca-certificates-bundle 20241121-r1 apk
ca-certificates 20240705-r0 apk
ca-certificates-bundle 20240705-r0 apk
carbonphp/carbon-doctrine-types 2.1.0 php-composer
catatonit 0.2.0-r0 apk
clue/stream-filter v1.7.0 php-composer
composer 2.8.5 binary
composer 2.8.3 binary
composer/class-map-generator 1.1.0 php-composer
composer/pcre 3.1.1 php-composer
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.11.1-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.9.1-r2 apk
dflydev/dot-access-data v3.0.2 php-composer
doctrine/cache 2.2.0 php-composer
doctrine/dbal 3.8.2 php-composer
@@ -46,9 +46,8 @@ fakerphp/faker v1.23.1 php-composer
filp/whoops 2.15.4 php-composer
findutils 4.9.0-r5 apk
fruitcake/php-cors v1.3.0 php-composer
git 2.45.3-r0 apk
git-init-template 2.45.3-r0 apk
gmp 6.3.0-r1 apk
git 2.45.2-r0 apk
git-init-template 2.45.2-r0 apk
graham-campbell/bounded-cache v2.2.0 php-composer
graham-campbell/github v12.4.0 php-composer
graham-campbell/manager v5.1.0 php-composer
@@ -80,14 +79,14 @@ libattr 2.5.2-r0 apk
libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk
libcrypto3 3.3.2-r1 apk
libcurl 8.11.1-r0 apk
libcurl 8.9.1-r2 apk
libedit 20240517.3.1-r0 apk
libexpat 2.6.4-r0 apk
libgcc 13.2.1_git20240309-r0 apk
libidn2 2.3.7-r0 apk
libintl 0.22.5-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.4_p20240420-r2 apk
libncursesw 6.4_p20240420-r1 apk
libpq 16.6-r0 apk
libproc2 4.0.4-r0 apk
libpsl 0.21.5-r1 apk
@@ -106,7 +105,7 @@ musl 1.2.5-r0 apk
musl-utils 1.2.5-r0 apk
myclabs/deep-copy 1.11.1 php-composer
nano 8.0-r0 apk
ncurses-terminfo-base 6.4_p20240420-r2 apk
ncurses-terminfo-base 6.4_p20240420-r1 apk
nesbot/carbon 2.72.3 php-composer
netcat-openbsd 1.226-r0 apk
nette/schema v1.3.0 php-composer
@@ -130,30 +129,30 @@ php-http/message 1.16.0 php-composer
php-http/message-factory 1.1.0 php-composer
php-http/multipart-stream-builder 1.3.0 php-composer
php-http/promise 1.3.0 php-composer
php83 8.3.15-r0 apk
php83-common 8.3.15-r0 apk
php83-ctype 8.3.15-r0 apk
php83-curl 8.3.15-r0 apk
php83-dom 8.3.15-r0 apk
php83-fileinfo 8.3.15-r0 apk
php83-fpm 8.3.15-r0 apk
php83-iconv 8.3.15-r0 apk
php83-intl 8.3.15-r0 apk
php83-mbstring 8.3.15-r0 apk
php83-mysqlnd 8.3.15-r0 apk
php83-opcache 8.3.15-r0 apk
php83-openssl 8.3.15-r0 apk
php83-pdo 8.3.15-r0 apk
php83-pdo_mysql 8.3.15-r0 apk
php83-pdo_pgsql 8.3.15-r0 apk
php83-pdo_sqlite 8.3.15-r0 apk
php83-phar 8.3.15-r0 apk
php83-session 8.3.15-r0 apk
php83-simplexml 8.3.15-r0 apk
php83-tokenizer 8.3.15-r0 apk
php83-xml 8.3.15-r0 apk
php83-xmlwriter 8.3.15-r0 apk
php83-zip 8.3.15-r0 apk
php83 8.3.14-r0 apk
php83-common 8.3.14-r0 apk
php83-ctype 8.3.14-r0 apk
php83-curl 8.3.14-r0 apk
php83-dom 8.3.14-r0 apk
php83-fileinfo 8.3.14-r0 apk
php83-fpm 8.3.14-r0 apk
php83-iconv 8.3.14-r0 apk
php83-intl 8.3.14-r0 apk
php83-mbstring 8.3.14-r0 apk
php83-mysqlnd 8.3.14-r0 apk
php83-opcache 8.3.14-r0 apk
php83-openssl 8.3.14-r0 apk
php83-pdo 8.3.14-r0 apk
php83-pdo_mysql 8.3.14-r0 apk
php83-pdo_pgsql 8.3.14-r0 apk
php83-pdo_sqlite 8.3.14-r0 apk
php83-phar 8.3.14-r0 apk
php83-session 8.3.14-r0 apk
php83-simplexml 8.3.14-r0 apk
php83-tokenizer 8.3.14-r0 apk
php83-xml 8.3.14-r0 apk
php83-xmlwriter 8.3.14-r0 apk
php83-zip 8.3.14-r0 apk
phpdocumentor/reflection-common 2.2.0 php-composer
phpdocumentor/type-resolver 1.8.0 php-composer
phpoption/phpoption 1.9.2 php-composer

View File

@@ -40,7 +40,7 @@ app_setup_block: |
This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file `docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd <username>`. Replace <username> with a username of your choice and you will be asked to enter a password. Uncomment the `basic auth` lines in `/config/nginx/site-confs/default.conf` and restart the container.
# init diagram
init_diagram: |
"heimdall:development": {
"heimdall:latest": {
docker-mods
base {
fix-attr +\nlegacy cont-init
@@ -94,7 +94,7 @@ init_diagram: |
Base Images: {
"baseimage-alpine-nginx:3.20" <- "baseimage-alpine:3.20"
}
"heimdall:development" <- Base Images
"heimdall:latest" <- Base Images
# changelog
changelogs:
- {date: "27.06.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."}
@@ -105,17 +105,23 @@ changelogs:
- {date: "13.04.23:", desc: "Move ssl.conf include to default.conf."}
- {date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1."}
- {date: "14.11.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))."}
- {date: "04.11.22:", desc: "Build commits to upstream branch 2.x."}
- {date: "04.11.22:", desc: "Build commits to upstream branch 2.x for the `development` tag."}
- {date: "13.03.21:", desc: "Make searchproviders.yaml user configurable."}
- {date: "11.03.21:", desc: "Rebase to alpine 3.14."}
- {date: "10.02.21:", desc: "Revert to alpine 3.12 as php 7.4 broke laravel."}
- {date: "10.02.21:", desc: "Rebasing to alpine 3.13."}
- {date: "17.08.20:", desc: "Add php7-curl."}
- {date: "01.06.20:", desc: "Rebasing to alpine 3.12."}
- {date: "17.01.20:", desc: "Use nginx from baseimage."}
- {date: "19.12.19:", desc: "Rebasing to alpine 3.11."}
- {date: "15.07.19:", desc: "Save laravel.log to /config, install heimdall during first start."}
- {date: "16.07.19:", desc: "Save laravel.log to /config/log/heimdall."}
- {date: "28.06.19:", desc: "Rebasing to alpine 3.10."}
- {date: "01.04.19:", desc: "Fix permission detect logic."}
- {date: "26.03.19:", desc: "Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown."}
- {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."}
- {date: "15.03.19:", desc: "Clarify docker image tags in readme."}
- {date: "22.02.19:", desc: "Rebasing to alpine 3.9."}
- {date: "16.01.18:", desc: "Generate random app key in .env for new installs."}
- {date: "20.11.18:", desc: "Upgrade baseimage packages during build."}
- {date: "04.11.18:", desc: "Add php7-zip."}
- {date: "31.10.18:", desc: "Add queue service."}
- {date: "17.10.18:", desc: "Symlink avatars folder."}