Compare commits

..

156 Commits

Author SHA1 Message Date
LinuxServer-CI 6f733cdbcf Bot Updating Package Versions 2025-01-21 17:38:04 +00:00
LinuxServer-CI 3aa977e671 Bot Updating Package Versions 2025-01-21 11:51:08 +00:00
LinuxServer-CI 09206a5e22 Bot Updating Package Versions 2025-01-16 18:44:30 +00:00
LinuxServer-CI 31bdc55111 Bot Updating Package Versions 2025-01-09 13:00:07 +00:00
quietsy 4c50f935e9 Merge pull request #481 from linuxserver/fix-large-files-develop
Fix uploading large files
2025-01-09 13:05:40 +02:00
quietsy 77f8176c20 Fix uploading large files 2025-01-09 12:43:08 +02:00
LinuxServer-CI 2e9473a1d6 Bot Updating Package Versions 2025-01-07 11:51:01 +00:00
LinuxServer-CI b80003caa4 Bot Updating Package Versions 2024-12-24 11:50:56 +00:00
LinuxServer-CI 447a77ebc7 Bot Updating Package Versions 2024-12-17 11:56:09 +00:00
LinuxServer-CI 04e96fdd76 Bot Updating Templated Files 2024-12-17 11:51:18 +00:00
LinuxServer-CI 95febfb1e8 Bot Updating Templated Files 2024-12-17 11:49:28 +00:00
LinuxServer-CI a90c6096ba Bot Updating Templated Files 2024-12-05 14:00:00 +00:00
LinuxServer-CI 4f5f890fdd Bot Updating Templated Files 2024-12-03 11:54:02 +00:00
LinuxServer-CI a6b2ac9b27 Bot Updating Templated Files 2024-12-03 11:52:21 +00:00
LinuxServer-CI 097f73a1e6 Bot Updating Templated Files 2024-12-03 11:48:38 +00:00
LinuxServer-CI 0aad6a0fe5 Bot Updating Package Versions 2024-11-26 11:50:40 +00:00
LinuxServer-CI b0182fbb72 Bot Updating Package Versions 2024-11-19 11:51:25 +00:00
LinuxServer-CI acf5cd8105 Bot Updating Templated Files 2024-11-12 11:50:24 +00:00
LinuxServer-CI 091f478f34 Bot Updating Templated Files 2024-11-12 11:48:30 +00:00
LinuxServer-CI ad7ade282f Bot Updating Package Versions 2024-11-05 11:49:49 +00:00
LinuxServer-CI 47e8542612 Bot Updating Package Versions 2024-10-31 16:45:01 +00:00
LinuxServer-CI 2e9430603a Bot Updating Package Versions 2024-10-29 11:50:16 +00:00
LinuxServer-CI ce4f4e0df1 Bot Updating Package Versions 2024-10-22 11:51:25 +00:00
LinuxServer-CI f09bc760ae Bot Updating Package Versions 2024-10-08 11:49:45 +00:00
LinuxServer-CI 7b8466802d Bot Updating Package Versions 2024-10-04 13:40:12 +00:00
LinuxServer-CI f1566c4926 Bot Updating Package Versions 2024-10-01 11:56:36 +00:00
LinuxServer-CI 5cd8bd9fdb Bot Updating Templated Files 2024-10-01 11:51:28 +00:00
LinuxServer-CI 2e23cd4063 Bot Updating Templated Files 2024-10-01 11:49:55 +00:00
LinuxServer-CI e6fe3252d1 Bot Updating Templated Files 2024-10-01 11:48:29 +00:00
LinuxServer-CI d19b41e55c Bot Updating Package Versions 2024-09-24 11:49:50 +00:00
LinuxServer-CI 0f73a9da0e Bot Updating Package Versions 2024-09-17 11:51:05 +00:00
Eric Nemchik 0545e001d4 Merge pull request #456 from linuxserver/ipv6-listen-develop
separate ipv6 listen in default site-conf [develop]
2024-09-14 09:04:24 -07:00
LinuxServer-CI 3e3b671d26 Bot Updating Package Versions 2024-09-12 19:33:12 +00:00
LinuxServer-CI f521d58c68 Bot Updating Package Versions 2024-09-10 11:50:57 +00:00
LinuxServer-CI ecf6ad56b4 Bot Updating Package Versions 2024-09-05 20:36:57 +00:00
LinuxServer-CI 875d8b435b Bot Updating Package Versions 2024-09-03 11:50:16 +00:00
LinuxServer-CI c0df3febbf Bot Updating Package Versions 2024-08-27 11:50:53 +00:00
LinuxServer-CI 7bd3ac412f Bot Updating Package Versions 2024-08-20 11:57:03 +00:00
LinuxServer-CI a74e879b57 Bot Updating Templated Files 2024-08-20 11:51:35 +00:00
LinuxServer-CI 931bb3580f Bot Updating Templated Files 2024-08-20 11:49:18 +00:00
LinuxServer-CI 95f63060e0 Bot Updating Package Versions 2024-08-14 18:40:37 +00:00
LinuxServer-CI a005ca269f Bot Updating Package Versions 2024-08-08 22:36:18 +00:00
LinuxServer-CI 2164d84c52 Bot Updating Package Versions 2024-08-06 16:41:13 +00:00
LinuxServer-CI 82ae5a23aa Bot Updating Package Versions 2024-08-06 11:49:49 +00:00
LinuxServer-CI a4fddd90ab Bot Updating Package Versions 2024-08-01 19:34:13 +00:00
LinuxServer-CI 6f99c81c7d Bot Updating Package Versions 2024-07-25 22:37:13 +00:00
LinuxServer-CI e59909addc Bot Updating Package Versions 2024-07-23 11:54:34 +00:00
Eric Nemchik 32c9f3ba1e separate ipv6 listen in default site-conf [develop] 2024-07-16 20:40:32 -05:00
LinuxServer-CI c690639528 Bot Updating Templated Files 2024-07-16 11:50:55 +00:00
LinuxServer-CI 5aebb77566 Bot Updating Templated Files 2024-07-16 11:48:24 +00:00
LinuxServer-CI 85e673015c Bot Updating Package Versions 2024-07-12 08:38:03 +00:00
LinuxServer-CI e372bf8c1f Bot Updating Package Versions 2024-07-09 11:53:27 +00:00
LinuxServer-CI 9888ec10bb Bot Updating Package Versions 2024-07-02 11:52:22 +00:00
LinuxServer-CI 746fc2314f Bot Updating Package Versions 2024-06-25 14:57:41 +00:00
Adam 2ebf64ed79 Merge pull request #445 from linuxserver/develop-3.20
Rebase to 3.20 (develop)
2024-06-25 15:50:18 +01:00
thespad 62d13eaf3b Rebase to 3.20 2024-06-24 20:36:45 +01:00
LinuxServer-CI 4adc904193 Bot Updating Package Versions 2024-06-21 14:36:12 +00:00
LinuxServer-CI dbe99cc569 Bot Updating Package Versions 2024-06-17 21:34:18 +00:00
LinuxServer-CI abba10c24c Bot Updating Package Versions 2024-06-11 11:50:49 +00:00
LinuxServer-CI 4513213b97 Bot Updating Package Versions 2024-06-04 11:50:59 +00:00
LinuxServer-CI e25462f5d6 Bot Updating Package Versions 2024-05-28 11:52:42 +00:00
LinuxServer-CI 93c0ad7d37 Bot Updating Templated Files 2024-05-21 11:51:56 +00:00
LinuxServer-CI c2921714b2 Bot Updating Templated Files 2024-05-21 11:49:39 +00:00
LinuxServer-CI e4147b179b Bot Updating Package Versions 2024-05-18 08:36:32 +00:00
LinuxServer-CI 6838676b53 Bot Updating Package Versions 2024-05-14 11:53:21 +00:00
LinuxServer-CI 2687e98212 Bot Updating Templated Files 2024-05-14 11:48:35 +00:00
LinuxServer-CI 419c882f73 Bot Updating Package Versions 2024-05-07 11:53:07 +00:00
LinuxServer-CI e5f9510fed Bot Updating Templated Files 2024-05-07 11:48:40 +00:00
LinuxServer-CI 222b58c99c Bot Updating Package Versions 2024-04-30 11:56:53 +00:00
LinuxServer-CI e355bcbe6a Bot Updating Templated Files 2024-04-30 11:48:41 +00:00
LinuxServer-CI 4f00b831d3 Bot Updating Package Versions 2024-04-23 11:50:13 +00:00
LinuxServer-CI 7a8248f3cd Bot Updating Package Versions 2024-04-16 11:50:06 +00:00
LinuxServer-CI 915ab07cd9 Bot Updating Package Versions 2024-04-08 13:35:02 +00:00
LinuxServer-CI afb828d4da Bot Updating Package Versions 2024-04-02 11:50:18 +00:00
LinuxServer-CI f7056138b6 Bot Updating Package Versions 2024-03-26 11:53:11 +00:00
LinuxServer-CI 70f6155bbf Bot Updating Package Versions 2024-03-21 21:33:06 +00:00
LinuxServer-CI b9cf966878 Bot Updating Package Versions 2024-03-19 11:52:47 +00:00
LinuxServer-CI dead6f366e Bot Updating Package Versions 2024-03-14 21:33:06 +00:00
LinuxServer-CI c2c4010ffb Bot Updating Templated Files 2024-03-12 20:31:37 +00:00
LinuxServer-CI 150c587dff Bot Updating Package Versions 2024-03-07 22:34:05 +00:00
LinuxServer-CI 671cf6fe6c Bot Updating Package Versions 2024-03-06 18:32:28 +00:00
LinuxServer-CI a7da03b8d8 Bot Updating Templated Files 2024-03-06 18:25:39 +00:00
Eric Nemchik 7c8251110c Rebase to Alpine 3.19 (#399)
* Rebase to Alpine 3.19

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

* update date and edge repo

---------

Signed-off-by: Eric Nemchik <eric@nemchik.com>
Co-authored-by: aptalca <541623+aptalca@users.noreply.github.com>
2024-03-06 13:24:01 -05:00
LinuxServer-CI 11824dbfe3 Bot Updating Package Versions 2024-03-05 11:50:19 +00:00
LinuxServer-CI 0004b51af8 Bot Updating Package Versions 2024-02-27 11:57:52 +00:00
LinuxServer-CI 9706c0481a Bot Updating Templated Files 2024-02-27 11:50:16 +00:00
LinuxServer-CI bcf04398d0 Bot Updating Templated Files 2024-02-27 11:48:43 +00:00
LinuxServer-CI 48667a56dd Bot Updating Package Versions 2024-02-16 14:34:20 +00:00
LinuxServer-CI b906641f24 Bot Updating Package Versions 2024-02-13 11:52:12 +00:00
LinuxServer-CI 9e83ba52fc Bot Updating Package Versions 2024-02-06 11:49:42 +00:00
LinuxServer-CI 0dfd84df5c Bot Updating Package Versions 2024-01-29 15:37:30 +00:00
LinuxServer-CI 231f432f80 Bot Updating Package Versions 2024-01-23 10:40:44 +00:00
LinuxServer-CI c15658c110 Bot Updating Package Versions 2024-01-18 17:36:47 +00:00
LinuxServer-CI 388fc6d47a Bot Updating Package Versions 2024-01-16 11:56:53 +00:00
LinuxServer-CI 2fe50c2f12 Bot Updating Templated Files 2024-01-16 11:50:34 +00:00
LinuxServer-CI 21dde133fd Bot Updating Templated Files 2024-01-16 11:48:58 +00:00
LinuxServer-CI 7bed73efff Bot Updating Package Versions 2024-01-09 11:50:08 +00:00
driz aede8706ae Merge pull request #406 from linuxserver/dev-mime-fix
Merge pull request #405 from linuxserver/conf-fix-test
2024-01-03 20:55:16 -05:00
Eric Nemchik ccb0036a96 Merge pull request #405 from linuxserver/conf-fix-test
maybe fix nextcloud?
2024-01-03 23:48:00 +00:00
LinuxServer-CI 6675775f5c Bot Updating Templated Files 2024-01-02 16:12:23 +00:00
Eric Nemchik 9d7ea19a71 Merge pull request #404 from linuxserver/cleanup-nginx-develop
Cleanup default site conf
2024-01-02 10:10:21 -06:00
Eric Nemchik 7a4dc0aa13 Update readme date
Signed-off-by: GitHub <noreply@github.com>
2024-01-02 16:07:05 +00:00
Eric Nemchik 56461a34b3 Cleanup default site conf
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2024-01-02 16:05:58 +00:00
LinuxServer-CI f131871e4c Bot Updating Package Versions 2024-01-02 11:49:44 +00:00
Adam aae9593ea7 Merge pull request #396 from linuxserver/develop-mime
Avoid duplicate mime definition
2023-12-22 22:39:46 +00:00
TheSpad 4178035a55 Consistent formatting 2023-12-22 17:16:22 +00:00
TheSpad 0ad8c52d56 Use text/javascript as per rfc9239 2023-12-22 17:15:18 +00:00
TheSpad 37eb7522e1 Prefer application/javascript 2023-12-22 17:08:14 +00:00
TheSpad 794f71483a Avoid duplicate mime definition 2023-12-22 17:01:35 +00:00
LinuxServer-CI b22dc7887a Bot Updating Package Versions 2023-12-22 16:33:56 +00:00
Adam 408d92a2ec Merge pull request #393 from linuxserver/develop-conf-mjs
sync with upstream nextcloud docs
2023-12-22 16:28:28 +00:00
TheSpad c3c64ae5d5 sync with upstream nextcloud docs 2023-12-22 16:03:20 +00:00
LinuxServer-CI bf1947d7ad Bot Updating Package Versions 2023-12-12 11:50:00 +00:00
LinuxServer-CI 94fd873ece Bot Updating Package Versions 2023-12-07 21:34:08 +00:00
LinuxServer-CI 61f34bacdc Bot Updating Package Versions 2023-12-05 11:50:04 +00:00
LinuxServer-CI 21f2fc0840 Bot Updating Package Versions 2023-11-30 21:34:34 +00:00
Eric Nemchik 2bdf249bf1 Merge pull request #383 from linuxserver/quiet-migration-develop
only run migration if conf exists
2023-11-29 08:30:52 -06:00
LinuxServer-CI e2d34baa3f Bot Updating Package Versions 2023-11-28 11:52:19 +00:00
Eric Nemchik be9ffb890e only run migration if conf exists
redirect stderr to /dev/null

Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-25 10:49:42 -06:00
LinuxServer-CI f62cc3b9e8 Bot Updating Package Versions 2023-11-21 11:49:54 +00:00
Eric Nemchik 45d68d0508 Merge pull request #357 from linuxserver/standard-cron-develop
standard cron develop
2023-11-18 19:09:15 -06:00
LinuxServer-CI ba1ac62fd9 Bot Updating Package Versions 2023-11-16 21:36:06 +00:00
LinuxServer-CI ca6afd353a Bot Updating Templated Files 2023-11-16 21:31:08 +00:00
LinuxServer-CI acb431bc9c Bot Updating Package Versions 2023-11-14 23:32:43 +00:00
LinuxServer-CI 2639cc28cd Bot Updating Package Versions 2023-11-14 11:49:59 +00:00
LinuxServer-CI 35919306ae Bot Updating Package Versions 2023-11-10 14:35:17 +00:00
LinuxServer-CI 355c1b33c1 Bot Updating Package Versions 2023-11-02 16:40:23 +00:00
LinuxServer-CI 5bb6b49068 Bot Updating Package Versions 2023-10-28 19:59:43 +00:00
LinuxServer-CI 96ae53f2fc Bot Updating Templated Files 2023-10-28 19:54:46 +00:00
Eric Nemchik 9755ecbbc5 Merge pull request #376 from linuxserver/disable-web-upgrade-develop
Disable web upgrades using occ during init develop
2023-10-28 14:53:12 -05:00
Eric Nemchik e07f1ae896 Disable web upgrades using occ during init
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-10-28 14:25:07 -05:00
LinuxServer-CI a810a8f45f Bot Updating Package Versions 2023-10-24 11:52:50 +00:00
LinuxServer-CI 4f772f8a0e Bot Updating Package Versions 2023-10-17 11:50:15 +00:00
LinuxServer-CI eb988dcf54 Bot Updating Package Versions 2023-10-12 21:34:51 +00:00
LinuxServer-CI c8441d7681 Bot Updating Package Versions 2023-10-10 11:54:28 +00:00
LinuxServer-CI 3caf64eb7e Bot Updating Templated Files 2023-10-10 11:50:24 +00:00
LinuxServer-CI 49474850dc Bot Updating Templated Files 2023-10-10 11:48:50 +00:00
LinuxServer-CI 373ee2efc0 Bot Updating Package Versions 2023-09-29 00:41:10 +00:00
Eric Nemchik 56ae57320b Merge pull request #359 from linuxserver/develop-updatenotification-app
Re-add updatenotification app
2023-09-28 19:36:15 -05:00
LinuxServer-CI 26c0913d86 Bot Updating Package Versions 2023-09-28 14:38:09 +00:00
LinuxServer-CI 525efaa99a Bot Updating Package Versions 2023-09-26 11:50:04 +00:00
quietsy 50c57a68f9 Merge pull request #365 from linuxserver/fix-lsiown-develop
Fix lsiown -R order
2023-09-18 16:57:26 +03:00
quietsy a1a8f070f1 Fix lsiown -R order 2023-09-18 16:39:12 +03:00
LinuxServer-CI 9f953af7ad Bot Updating Package Versions 2023-09-14 18:33:10 +00:00
LinuxServer-CI 4d74174b8c Bot Updating Package Versions 2023-09-12 09:35:12 +00:00
LinuxServer-CI db66b6a2cc Bot Updating Package Versions 2023-09-07 14:33:34 +00:00
LinuxServer-CI 92378267ac Bot Updating Package Versions 2023-09-05 11:50:04 +00:00
LinuxServer-CI 7f08b006fe Bot Updating Package Versions 2023-08-31 15:33:10 +00:00
Eric Nemchik cea5b826cc Re-add updatenotification app
Closes https://github.com/linuxserver/docker-nextcloud/issues/356

Signed-off-by: GitHub <noreply@github.com>
2023-08-31 14:00:49 +00:00
LinuxServer-CI e7cdf18d23 Bot Updating Package Versions 2023-08-29 11:51:13 +00:00
Eric Nemchik 74f9122ab6 Merge branch 'standard-cron' into standard-cron-develop 2023-08-26 09:59:51 -05:00
LinuxServer-CI d935187cb3 Bot Updating Package Versions 2023-08-22 11:50:11 +00:00
LinuxServer-CI 24cb0878c4 Bot Updating Package Versions 2023-08-15 11:57:10 +00:00
LinuxServer-CI d641ed8dba Bot Updating Package Versions 2023-08-15 11:52:53 +00:00
quietsy 9651cce68c Merge pull request #352 from linuxserver/initial-develop
Add develop branch
2023-08-15 09:27:38 +03:00
quietsy a7f9b4c842 Add develop branch 2023-08-15 08:52:29 +03:00
25 changed files with 639 additions and 966 deletions
Regular → Executable
View File
Regular → Executable
+3 -3
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-nextcloud/edit/master/readme-vars.yml).
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-nextcloud/edit/develop/readme-vars.yml).
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-nextcloud)
@@ -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-nextcloud/tree/master/root), add an entry to the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-nextcloud/tree/develop/root), add an entry to the changelog
```yml
changelogs:
Regular → Executable
View File
+1 -1
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
View File
+1 -1
View File
@@ -21,7 +21,7 @@
------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-nextcloud/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-nextcloud/blob/develop/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------
-3
View File
@@ -8,9 +8,6 @@ on:
pull_request_review:
types: [submitted,edited,dismissed]
permissions:
contents: read
jobs:
manage-project:
permissions:
-3
View File
@@ -4,9 +4,6 @@ on:
- cron: '35 2 * * *'
workflow_dispatch:
permissions:
contents: read
jobs:
stale:
permissions:
+18 -29
View File
@@ -3,54 +3,43 @@ name: External Trigger Main
on:
workflow_dispatch:
permissions:
contents: read
jobs:
external-trigger-master:
external-trigger-develop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: External Trigger
if: github.ref == 'refs/heads/master'
if: github.ref == 'refs/heads/develop'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
printf "# External trigger for docker-nextcloud\n\n" >> $GITHUB_STEP_SUMMARY
if grep -q "^nextcloud_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`nextcloud_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^nextcloud_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
if grep -q "^nextcloud_develop" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`nextcloud_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`nextcloud_develop\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of master branch. To disable this trigger, add \`nextcloud_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of develop branch. To disable this trigger, add \`nextcloud_develop\` 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/nextcloud/server/releases | jq -r '.[] | select(.prerelease != true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1)
EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease == true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1)
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^nextcloud_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
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 nextcloud branch master"
FAILURE_REASON="Can't retrieve external version for nextcloud branch develop"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-nextcloud/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"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
image="linuxserver/nextcloud"
tag="latest"
tag="develop"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fnextcloud%3Apull" \
| jq -r '.token')
@@ -96,35 +85,35 @@ 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 nextcloud tag latest"
FAILURE_REASON="Can't retrieve last pushed version for nextcloud tag develop"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
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-nextcloud/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/develop/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $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 nextcloud tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
FAILURE_REASON="New version ${EXT_RELEASE} for nextcloud tag develop 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 sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if [[ "${artifacts_found}" == "true" ]]; then
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
fi
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/buildWithParameters?PACKAGE_CHECK=false \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/develop/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
@@ -139,7 +128,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 nextcloud tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
TRIGGER_REASON="A version change was detected for nextcloud tag develop. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
-3
View File
@@ -5,9 +5,6 @@ on:
- cron: '27 * * * *'
workflow_dispatch:
permissions:
contents: read
jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
Regular → Executable
+1 -7
View File
@@ -2,18 +2,12 @@ name: Greetings
on: [pull_request_target, issues]
permissions:
contents: read
jobs:
greeting:
permissions:
issues: write
pull-requests: write
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-nextcloud/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-nextcloud/blob/develop/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}
-3
View File
@@ -5,9 +5,6 @@ on:
- cron: '42 11 * * 2'
workflow_dispatch:
permissions:
contents: read
jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
View File
+36 -39
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.22
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.20
# set version label
ARG BUILD_DATE
@@ -18,48 +18,45 @@ RUN \
ffmpeg \
gnu-libiconv \
imagemagick \
imagemagick-heic \
imagemagick-pdf \
imagemagick-svg \
libxml2 \
php84-apcu \
php84-bcmath \
php84-bz2 \
php84-dom \
php84-exif \
php84-ftp \
php84-gd \
php84-gmp \
php84-imap \
php84-intl \
php84-ldap \
php84-opcache \
php84-pcntl \
php84-pdo_mysql \
php84-pdo_pgsql \
php84-pdo_sqlite \
php84-pecl-imagick \
php84-pecl-memcached \
php84-pecl-smbclient \
php84-pgsql \
php84-posix \
php84-redis \
php84-sodium \
php84-sqlite3 \
php84-sysvsem \
php84-xmlreader \
php83-apcu \
php83-bcmath \
php83-bz2 \
php83-dom \
php83-exif \
php83-ftp \
php83-gd \
php83-gmp \
php83-imap \
php83-intl \
php83-ldap \
php83-opcache \
php83-pcntl \
php83-pdo_mysql \
php83-pdo_pgsql \
php83-pdo_sqlite \
php83-pecl-imagick \
php83-pecl-mcrypt \
php83-pecl-memcached \
php83-pecl-smbclient \
php83-pgsql \
php83-posix \
php83-redis \
php83-sodium \
php83-sqlite3 \
php83-sysvsem \
php83-xmlreader \
rsync \
samba-client \
util-linux \
sudo && \
echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php83/php-fpm.d/www.conf && \
grep -qxF 'clear_env = no' /etc/php83/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php83/php-fpm.d/www.conf && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php83/php-fpm.conf && \
echo "**** configure php for nextcloud ****" && \
{ \
echo 'apc.enable_cli=1'; \
} >> /etc/php84/conf.d/apcu.ini && \
} >> /etc/php83/conf.d/apcu.ini && \
{ \
echo 'opcache.enable=1'; \
echo 'opcache.interned_strings_buffer=32'; \
@@ -69,7 +66,7 @@ RUN \
echo 'opcache.revalidate_freq=60'; \
echo 'opcache.jit=1255'; \
echo 'opcache.jit_buffer_size=128M'; \
} >> "/etc/php84/conf.d/00_opcache.ini" && \
} >> "/etc/php83/conf.d/00_opcache.ini" && \
{ \
echo 'memory_limit=-1'; \
echo 'upload_max_filesize=100G'; \
@@ -78,18 +75,18 @@ RUN \
echo 'max_execution_time=3600'; \
echo 'output_buffering=0'; \
echo 'always_populate_raw_post_data=-1'; \
} >> "/etc/php84/conf.d/nextcloud.ini" && \
} >> "/etc/php83/conf.d/nextcloud.ini" && \
echo "**** install nextcloud ****" && \
mkdir -p \
/app/www/src/ && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases \
| jq -r '.[] | select(.prerelease != true) | .tag_name' \
| jq -r '.[] | select(.prerelease == true) | .tag_name' \
| sed 's|^v||g' | sort -rV | head -1); \
fi && \
curl -o \
/tmp/nextcloud.tar.bz2 -L \
https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \
https://download.nextcloud.com/server/prereleases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \
tar xf /tmp/nextcloud.tar.bz2 -C \
/app/www/src --strip-components=1 && \
rm -rf /app/www/src/updater && \
+36 -39
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.22
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.20
# set version label
ARG BUILD_DATE
@@ -18,48 +18,45 @@ RUN \
ffmpeg \
gnu-libiconv \
imagemagick \
imagemagick-heic \
imagemagick-pdf \
imagemagick-svg \
libxml2 \
php84-apcu \
php84-bcmath \
php84-bz2 \
php84-dom \
php84-exif \
php84-ftp \
php84-gd \
php84-gmp \
php84-imap \
php84-intl \
php84-ldap \
php84-opcache \
php84-pcntl \
php84-pdo_mysql \
php84-pdo_pgsql \
php84-pdo_sqlite \
php84-pecl-imagick \
php84-pecl-memcached \
php84-pecl-smbclient \
php84-pgsql \
php84-posix \
php84-redis \
php84-sodium \
php84-sqlite3 \
php84-sysvsem \
php84-xmlreader \
php83-apcu \
php83-bcmath \
php83-bz2 \
php83-dom \
php83-exif \
php83-ftp \
php83-gd \
php83-gmp \
php83-imap \
php83-intl \
php83-ldap \
php83-opcache \
php83-pcntl \
php83-pdo_mysql \
php83-pdo_pgsql \
php83-pdo_sqlite \
php83-pecl-imagick \
php83-pecl-mcrypt \
php83-pecl-memcached \
php83-pecl-smbclient \
php83-pgsql \
php83-posix \
php83-redis \
php83-sodium \
php83-sqlite3 \
php83-sysvsem \
php83-xmlreader \
rsync \
samba-client \
util-linux \
sudo && \
echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php83/php-fpm.d/www.conf && \
grep -qxF 'clear_env = no' /etc/php83/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php83/php-fpm.d/www.conf && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php83/php-fpm.conf && \
echo "**** configure php for nextcloud ****" && \
{ \
echo 'apc.enable_cli=1'; \
} >> /etc/php84/conf.d/apcu.ini && \
} >> /etc/php83/conf.d/apcu.ini && \
{ \
echo 'opcache.enable=1'; \
echo 'opcache.interned_strings_buffer=32'; \
@@ -69,7 +66,7 @@ RUN \
echo 'opcache.revalidate_freq=60'; \
echo 'opcache.jit=1255'; \
echo 'opcache.jit_buffer_size=128M'; \
} >> "/etc/php84/conf.d/00_opcache.ini" && \
} >> "/etc/php83/conf.d/00_opcache.ini" && \
{ \
echo 'memory_limit=-1'; \
echo 'upload_max_filesize=100G'; \
@@ -78,18 +75,18 @@ RUN \
echo 'max_execution_time=3600'; \
echo 'output_buffering=0'; \
echo 'always_populate_raw_post_data=-1'; \
} >> "/etc/php84/conf.d/nextcloud.ini" && \
} >> "/etc/php83/conf.d/nextcloud.ini" && \
echo "**** install nextcloud ****" && \
mkdir -p \
/app/www/src/ && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases \
| jq -r '.[] | select(.prerelease != true) | .tag_name' \
| jq -r '.[] | select(.prerelease == true) | .tag_name' \
| sed 's|^v||g' | sort -rV | head -1); \
fi && \
curl -o \
/tmp/nextcloud.tar.bz2 -L \
https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \
https://download.nextcloud.com/server/prereleases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \
tar xf /tmp/nextcloud.tar.bz2 -C \
/app/www/src --strip-components=1 && \
rm -rf /app/www/src/updater && \
Vendored
+66 -94
View File
@@ -56,27 +56,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 image prune -af || :
'''
docker system prune -af --volumes || : '''
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:develop 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh(
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
@@ -94,11 +82,7 @@ pipeline {
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml'
if ( env.SYFT_IMAGE_TAG == null ) {
env.SYFT_IMAGE_TAG = 'latest'
}
}
echo "Using syft image tag ${SYFT_IMAGE_TAG}"
sh '''#! /bin/bash
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
script{
@@ -109,7 +93,7 @@ pipeline {
script{
env.LS_TAG_NUMBER = sh(
script: '''#! /bin/bash
tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null)
tagsha=$(git rev-list -n 1 develop-${LS_RELEASE} 2>/dev/null)
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
echo ${LS_RELEASE_NUMBER}
elif [ -z "${GIT_COMMIT}" ]; then
@@ -147,7 +131,7 @@ pipeline {
steps{
script{
env.EXT_RELEASE = sh(
script: ''' curl -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease != true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1 ''',
script: ''' curl -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease == true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1 ''',
returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command'
}
@@ -187,10 +171,10 @@ pipeline {
}
}
}
// If this is a master build use live docker endpoints
// If this is a develop build use live docker endpoints
stage("Set ENV live build"){
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -200,13 +184,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-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'develop-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'
}
}
@@ -214,7 +198,7 @@ pipeline {
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
not {branch "master"}
not {branch "develop"}
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -224,13 +208,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-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
}
@@ -248,13 +232,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-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
@@ -292,7 +276,7 @@ pipeline {
// Use helper containers to render templated files
stage('Update-Templates') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
@@ -304,24 +288,24 @@ pipeline {
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
# Cloned repo paths for templating:
# ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch master of ${LS_USER}/${LS_REPO} for running the jenkins builder on
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch master of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
# ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch develop of ${LS_USER}/${LS_REPO} for running the jenkins builder on
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch develop of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
# ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github
# ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
# ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
git clone --branch master --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
git clone --branch develop --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest
echo "Starting Stage 1 - Jenkinsfile update"
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
git checkout -f develop
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@@ -340,13 +324,13 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
git checkout -f develop
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done
git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@@ -361,20 +345,20 @@ pipeline {
sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml
fi
mkdir -p ${TEMPDIR}/d2
docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:latest
docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:develop
ls -al ${TEMPDIR}/d2
yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-latest.d2\\")" readme-vars.yml
yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-develop.d2\\")" readme-vars.yml
if [[ $(md5sum readme-vars.yml | cut -c1-8) != $(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | cut -c1-8) ]]; then
echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit."
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
git checkout -f develop
cp ${WORKSPACE}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml
git add readme-vars.yml
git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@@ -391,7 +375,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
git checkout -f develop
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
@@ -404,8 +388,8 @@ pipeline {
fi
git add readme-vars.yml ${TEMPLATED_FILES}
git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@@ -506,7 +490,7 @@ pipeline {
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
@@ -519,10 +503,10 @@ pipeline {
}
}
}
// If this is a master build check the S6 service file perms
// If this is a develop build check the S6 service file perms
stage("Check S6 Service file Permissions"){
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@@ -757,8 +741,7 @@ pipeline {
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -f --volumes || :
docker image prune -af || :
docker system prune -af --volumes || :
'''
}
}
@@ -767,7 +750,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@@ -784,20 +767,20 @@ pipeline {
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v ${TEMPDIR}:/tmp \
ghcr.io/anchore/syft:${SYFT_IMAGE_TAG} \
ghcr.io/anchore/syft:latest \
${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f develop
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/
wait
git add package_versions.txt
git commit -m 'Bot Updating Package Versions'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
echo "Package tag updated, stopping build process"
else
@@ -815,7 +798,7 @@ pipeline {
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: ''
@@ -829,7 +812,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
@@ -883,7 +866,7 @@ pipeline {
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \
-e RELEASE_TAG=\"latest\" \
-e RELEASE_TAG=\"develop\" \
-e PORT=\"${CI_PORT}\" \
-e SSL=\"${CI_SSL}\" \
-e BASE=\"${DIST_IMAGE}\" \
@@ -894,7 +877,6 @@ pipeline {
-e WEB_AUTH=\"${CI_AUTH}\" \
-e WEB_PATH=\"${CI_WEBPATH}\" \
-e NODE_NAME=\"${NODE_NAME}\" \
-e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \
-t ghcr.io/linuxserver/ci:latest \
python3 test_build.py'''
}
@@ -921,7 +903,7 @@ pipeline {
CACHEIMAGE=${i}
fi
done
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:develop -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
@@ -948,15 +930,15 @@ pipeline {
CACHEIMAGE=${i}
fi
done
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
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}
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-develop -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-develop -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
if [ -n "${SEMVER}" ]; then
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
fi
done
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
docker buildx imagetools create -t ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:amd64-develop ${MANIFESTIMAGE}:arm64v8-develop
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
@@ -971,7 +953,7 @@ pipeline {
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
branch "master"
branch "develop"
expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
@@ -983,17 +965,17 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to develop",\
"type": "commit",\
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "master",\
"target_commitish": "develop",\
"name": "'${META_TAG}'",\
"body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": false}' >> releasebody.json
printf '","draft": false,"prerelease": true}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
}
@@ -1001,14 +983,14 @@ pipeline {
// Add protection to the release branch
stage('Github-Release-Branch-Protection') {
when {
branch "master"
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
echo "Setting up protection for release branch master"
echo "Setting up protection for release branch develop"
sh '''#! /bin/bash
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/master/protection \
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/develop/protection \
-d $(jq -c . << EOF
{
"required_status_checks": null,
@@ -1170,22 +1152,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 image prune -af || :
docker system prune -af --volumes || :
'''
cleanWs()
}
Regular → Executable
View File
+14 -50
View File
@@ -1,10 +1,11 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-nextcloud/blob/master/.github/CONTRIBUTING.md -->
<!-- Please read https://github.com/linuxserver/docker-nextcloud/blob/develop/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
@@ -19,8 +20,9 @@ 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.
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
@@ -34,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/nextcloud)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud)
[![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-nextcloud%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/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%2Fnextcloud%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/nextcloud/latest/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-nextcloud%2Fjob%2Fdevelop%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/develop/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fnextcloud%2Fdevelop%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/nextcloud/develop/index.html)
[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are.
@@ -47,7 +49,7 @@ Where are your photos and documents? With Nextcloud you pick a server of your ch
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/nextcloud:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/nextcloud:develop` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
@@ -55,6 +57,7 @@ The architectures supported by this image are:
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ❌ | |
## Version Tags
@@ -64,14 +67,11 @@ This image provides various versions that are available via tags. Please read th
| :----: | :----: |--- |
| latest | ✅ | Stable Nextcloud releases |
| develop | ✅ | Beta Nextcloud pre-releases *only* |
| previous | ✅ | Nextcloud releases from the previous major version |
## Application Setup
Access the webui at `https://<your-ip>:443`, for more information check out [Nextcloud](https://nextcloud.com/).
Note: `occ` should be run without prepending with `sudo -u abc php` or `sudo -u www-data php` ie; `docker exec -it nextcloud occ maintenance:mode --off`
### Updating Nextcloud
Updating Nextcloud is done by pulling the new image, and recreating the container with it.
@@ -86,34 +86,6 @@ Nextcloud's built-in collaborative editing packages (Collabora/CODE and OnlyOffi
If (auto) installed, those built-in packages may cause instability and should be removed.
### HEIC Image Previews
In order to enable HEIC image preview generation you will need to add the following to your `config.php` file in your `config/www/nextcloud/config' directory;
```
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
'OC\Preview\PNG',
'OC\Preview\JPEG',
'OC\Preview\GIF',
'OC\Preview\BMP',
'OC\Preview\XBitmap',
'OC\Preview\MP3',
'OC\Preview\TXT',
'OC\Preview\MarkDown',
'OC\Preview\OpenDocument',
'OC\Preview\Krita',
'OC\Preview\HEIC',
),
```
You may need to log out and back in for the changes to come in to effect.
This fix was sourced from [Nextcloud Documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#enabledpreviewproviders)
Nextcloud state that HEIC preview is disabled by default due to performance or privacy concerns, so enable this at your own risk.
### Custom App Directories
If you are [using custom app directories](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories) you will need to make the custom folder(s) you are using available to the web server. The recommended way to do this with our container is to add a volume. Ex:
@@ -143,7 +115,7 @@ To help you get started creating a container from this image you can either use
---
services:
nextcloud:
image: lscr.io/linuxserver/nextcloud:latest
image: lscr.io/linuxserver/nextcloud:develop
container_name: nextcloud
environment:
- PUID=1000
@@ -169,7 +141,7 @@ docker run -d \
-v /path/to/nextcloud/config:/config \
-v /path/to/data:/data \
--restart unless-stopped \
lscr.io/linuxserver/nextcloud:latest
lscr.io/linuxserver/nextcloud:develop
```
## Parameters
@@ -249,7 +221,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/nextcloud:latest
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nextcloud:develop
```
## Updating Info
@@ -297,7 +269,7 @@ Below are the instructions for updating containers:
* Update the image:
```bash
docker pull lscr.io/linuxserver/nextcloud:latest
docker pull lscr.io/linuxserver/nextcloud:develop
```
* Stop the running container:
@@ -334,7 +306,7 @@ cd docker-nextcloud
docker build \
--no-cache \
--pull \
-t lscr.io/linuxserver/nextcloud:latest .
-t lscr.io/linuxserver/nextcloud:develop .
```
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
@@ -347,16 +319,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **10.07.25:** - Rebase to Alpine 3.22.
* **12.02.25:** - Rebase to Alpine 3.21.
* **09.01.25:** - Fix uploading large files. Existing users should update their nginx confs.
* **09.07.24:** - Add `previous` tag for n-1 releases.
* **24.06.24:** - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings.
* **19.05.24:** - Added util-linux package required for taskset.
* **10.04.24:** - Added imagemagick-pdf.
* **05.04.24:** - Added imagemagick-heic. Manual update to `config.php` required - see above.
* **02.04.24:** - Existing users should update: site-confs/default.conf - Add support for the Client Push (notify_push) plugin and the [new mod](https://github.com/linuxserver/docker-mods/tree/nextcloud-notify-push).
* **22.03.24:** - Add imagemagick-svg module.
* **06.03.24:** - Rebase to Alpine 3.19 with php 8.3.
* **02.01.24:** - Existing users should update: site-confs/default.conf - Cleanup default site conf.
* **22.12.23:** - Site default conf updating to include mime.types for js and mjs and update location to include more file types.
+4 -4
View File
@@ -3,10 +3,10 @@
# jenkins variables
project_name: docker-nextcloud
external_type: na
custom_version_command: "curl -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease != true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1"
release_type: stable
release_tag: latest
ls_branch: master
custom_version_command: "curl -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease == true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1"
release_type: prerelease
release_tag: develop
ls_branch: develop
repo_vars:
- BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE'
- LS_USER = 'linuxserver'
+426 -605
View File
File diff suppressed because it is too large Load Diff
+12 -51
View File
@@ -9,7 +9,6 @@ project_blurb: |
Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home.
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Cloud,Documents"
# supported architectures
available_architectures:
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
@@ -19,7 +18,6 @@ development_versions: true
development_versions_items:
- {tag: "latest", desc: "Stable Nextcloud releases"}
- {tag: "develop", desc: "Beta Nextcloud pre-releases *only*"}
- {tag: "previous", desc: "Nextcloud releases from the previous major version"}
# container parameters
common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}"
@@ -30,15 +28,11 @@ param_volumes:
param_usage_include_ports: true
param_ports:
- {external_port: "443", internal_port: "443", port_desc: "WebUI"}
readonly_supported: false
nonroot_supported: false
# application setup block
app_setup_block_enabled: true
app_setup_block: |
Access the webui at `https://<your-ip>:443`, for more information check out [Nextcloud]({{ project_url }}).
Note: `occ` should be run without prepending with `sudo -u abc php` or `sudo -u www-data php` ie; `docker exec -it nextcloud occ maintenance:mode --off`
### Updating Nextcloud
Updating Nextcloud is done by pulling the new image, and recreating the container with it.
@@ -53,34 +47,6 @@ app_setup_block: |
If (auto) installed, those built-in packages may cause instability and should be removed.
### HEIC Image Previews
In order to enable HEIC image preview generation you will need to add the following to your `config.php` file in your `config/www/nextcloud/config' directory;
```
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
'OC\Preview\PNG',
'OC\Preview\JPEG',
'OC\Preview\GIF',
'OC\Preview\BMP',
'OC\Preview\XBitmap',
'OC\Preview\MP3',
'OC\Preview\TXT',
'OC\Preview\MarkDown',
'OC\Preview\OpenDocument',
'OC\Preview\Krita',
'OC\Preview\HEIC',
),
```
You may need to log out and back in for the changes to come in to effect.
This fix was sourced from [Nextcloud Documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#enabledpreviewproviders)
Nextcloud state that HEIC preview is disabled by default due to performance or privacy concerns, so enable this at your own risk.
### Custom App Directories
If you are [using custom app directories](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories) you will need to make the custom folder(s) you are using available to the web server. The recommended way to do this with our container is to add a volume. Ex:
@@ -93,7 +59,7 @@ app_setup_block: |
Afterwards, you can set `"path" => OC::$SERVERROOT . "/your_custom_apps_folder",` in your `config.php` file, per the [official documentation](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories).
# init diagram
init_diagram: |
"nextcloud:latest": {
"nextcloud:develop": {
docker-mods
base {
fix-attr +\nlegacy cont-init
@@ -109,29 +75,32 @@ init_diagram: |
init-nginx-end -> init-config
init-os-end -> init-config
init-config -> init-config-end
init-crontab-config -> init-config-end
init-nextcloud-config -> init-config-end
init-config -> init-crontab-config
init-os-end -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile
init-os-end -> init-folders
init-php -> init-keygen
base -> init-migrations
base -> init-mods
init-config-end -> init-mods
init-version-checks -> init-mods
init-mods -> init-mods-end
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-nginx-end -> init-nextcloud-config
init-samples -> init-nginx
init-version-checks -> init-nginx-end
init-permissions -> init-nginx-end
base -> init-os-end
init-adduser -> init-os-end
init-device-perms -> init-os-end
init-envfile -> init-os-end
init-migrations -> init-os-end
init-keygen -> init-permissions
init-nginx -> init-php
init-folders -> init-samples
init-custom-files -> init-services
init-permissions -> init-version-checks
init-mods-end -> init-services
init-config-end -> init-version-checks
init-services -> svc-cron
svc-cron -> legacy-services
init-services -> svc-nginx
@@ -140,21 +109,13 @@ init_diagram: |
svc-php-fpm -> legacy-services
}
Base Images: {
"baseimage-alpine-nginx:3.22" <- "baseimage-alpine:3.22"
"baseimage-alpine-nginx:3.20" <- "baseimage-alpine:3.20"
}
"nextcloud:latest" <- Base Images
"nextcloud:develop" <- Base Images
# changelog
changelogs:
- {date: "10.07.25:", desc: "Rebase to Alpine 3.22."}
- {date: "12.02.25:", desc: "Rebase to Alpine 3.21."}
- {date: "09.01.25:", desc: "Fix uploading large files. Existing users should update their nginx confs."}
- {date: "09.07.24:", desc: "Add `previous` tag for n-1 releases."}
- {date: "24.06.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."}
- {date: "19.05.24:", desc: "Added util-linux package required for taskset."}
- {date: "10.04.24:", desc: "Added imagemagick-pdf."}
- {date: "05.04.24:", desc: "Added imagemagick-heic. Manual update to `config.php` required - see above."}
- {date: "02.04.24:", desc: "Existing users should update: site-confs/default.conf - Add support for the Client Push (notify_push) plugin and the [new mod](https://github.com/linuxserver/docker-mods/tree/nextcloud-notify-push)."}
- {date: "22.03.24:", desc: "Add imagemagick-svg module."}
- {date: "06.03.24:", desc: "Rebase to Alpine 3.19 with php 8.3."}
- {date: "02.01.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf."}
- {date: "22.12.23:", desc: "Site default conf updating to include mime.types for js and mjs and update location to include more file types."}
@@ -1,4 +1,4 @@
## Version 2025/07/10 - Changelog: https://github.com/linuxserver/docker-nextcloud/commits/master/root/defaults/nginx/site-confs/default.conf.sample
## Version 2024/07/16 - Changelog: https://github.com/linuxserver/docker-nextcloud/commits/master/root/defaults/nginx/site-confs/default.conf.sample
# Set the `immutable` cache control options only for assets with a cache busting `v` argument
map $arg_v $asset_immutable {
@@ -11,8 +11,6 @@ server {
listen [::]:80 default_server;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
listen 443 quic reuseport default_server;
listen [::]:443 quic reuseport default_server;
server_name _;
@@ -157,14 +155,6 @@ server {
return 301 /remote.php$request_uri;
}
# Support for the Client Push (notify_push) plugin, needs mod installed https://github.com/linuxserver/docker-mods/tree/nextcloud-notify-push
location ^~ /push/ {
proxy_pass http://127.0.0.1:7867/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
location / {
# enable for basic auth
#auth_basic "Restricted";
@@ -10,7 +10,7 @@ mkdir -p \
/data
# migrate legacy install (copy inside container)
if [[ -f /config/www/nextcloud/version.php ]]; then
if [ -f /config/www/nextcloud/version.php ]; then
echo "Migrating legacy install (this can take a while) ...)"
rsync -rlD --remove-source-files --exclude-from=/app/upgrade.exclude /config/www/nextcloud/ /app/www/public/
rm -rf /config/www/nextcloud/updater/
@@ -26,7 +26,7 @@ fi
# symlink config folders
for dir in apps config themes; do
if [[ "$(readlink /app/www/public/${dir})" != "/config/www/nextcloud/${dir}" ]]; then
if [ "$(readlink /app/www/public/${dir})" != "/config/www/nextcloud/${dir}" ]; then
rm -rf "/app/www/public/${dir}"
ln -s "/config/www/nextcloud/${dir}" "/app/www/public/${dir}"
lsiown abc:abc "/config/www/nextcloud/${dir}" "/app/www/public/${dir}"
@@ -34,9 +34,9 @@ for dir in apps config themes; do
done
# get versions
image_version=$(php -r "require '/app/www/src/version.php'; echo implode('.', \$OC_Version);" 2>/dev/null | xargs)
installed_version=$(php -r "require '/config/www/nextcloud/config/config.php'; echo \$CONFIG['version'];" 2>/dev/null | xargs)
if [[ "${installed_version}" = "" ]]; then
image_version=$(php -r "require '/app/www/src/version.php'; echo implode('.', \$OC_Version);" 2>/dev/null)
installed_version=$(php -r "require '/config/www/nextcloud/config/config.php'; echo \$CONFIG['version'];" 2>/dev/null)
if [ "${installed_version}" = "" ]; then
installed_version="0.0.0.0"
fi
image_major="${image_version%%.*}"
@@ -54,23 +54,23 @@ if vergt "${installed_version}" "${image_version}"; then
sleep infinity
fi
if [[ "${installed_version}" != "0.0.0.0" ]] && vergt "${image_major}" "${max_upgrade}"; then
if [ "${installed_version}" != "0.0.0.0" ] && vergt "${image_major}" "${max_upgrade}"; then
echo "Can't start Nextcloud because the version of the data (${installed_version}) is more than one major version behind the docker image version (${image_version}) and upgrading more than one major version is not supported. Please run an image tagged for the major version ${max_upgrade} first."
sleep infinity
fi
if [[ "${installed_version}" = "0.0.0.0" ]] || [[ ! -f /app/www/public/version.php ]] || [[ -z "$(ls -A /config/www/nextcloud/apps 2>/dev/null)" ]]; then
if [ "${installed_version}" = "0.0.0.0" ] || [ ! -f /app/www/public/version.php ] || [ -z "$(ls -A /config/www/nextcloud/apps 2>/dev/null)" ]; then
touch /tmp/needs_install
fi
if [[ "${installed_version}" != "0.0.0.0" ]] && vergt "${image_version}" "${installed_version}"; then
if [ "${installed_version}" != "0.0.0.0" ] && vergt "${image_version}" "${installed_version}"; then
touch /tmp/needs_upgrade
fi
# initialize nextcloud
if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_install ]] || [[ -f /tmp/needs_upgrade ]]; then
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_install ] || [ -f /tmp/needs_upgrade ]; then
echo "Initializing nextcloud ${image_version} (this can take a while) ..."
if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_upgrade ]]; then
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ]; then
echo "Upgrading nextcloud from ${installed_version} ..."
shippedApps=$(jq -r .shippedApps[] /app/www/src/core/shipped.json)
for app in ${shippedApps}; do
@@ -80,11 +80,11 @@ if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_ins
rsync -rlD --exclude-from=/app/upgrade.exclude /app/www/src/ /app/www/public/
for dir in apps config themes; do
if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_upgrade ]] || [[ -z "$(ls -A /app/www/public/${dir} 2>/dev/null)" ]]; then
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ] || [ -z "$(ls -A /app/www/public/${dir} 2>/dev/null)" ]; then
rsync -rlD --include "/${dir}" --exclude '/*' /app/www/src/ /config/www/nextcloud/
fi
done
if [[ -z "$(ls -A /data/ 2>/dev/null)" ]]; then
if [ -z "$(ls -A /data/ 2>/dev/null)" ]; then
rsync -rlD --include "/data" --exclude '/*' /app/www/src/ /
fi
@@ -94,11 +94,11 @@ if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_ins
/app/www/public \
/config/www/nextcloud
if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_upgrade ]]; then
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ]; then
# Upgrade
occ upgrade
else
if [[ "${installed_version}" = "0.0.0.0" ]]; then
if [ "${installed_version}" = "0.0.0.0" ]; then
# Install
echo "New nextcloud instance"
echo "Please run the web-based installer on first connect!"
@@ -148,14 +148,14 @@ for APP in richdocumentscode; do
echo "Removing ${APP}"
fi
APP_PATH=$(occ app:getpath "${APP}" 2>/dev/null)
if [[ -z "${APP_PATH}" ]] || [[ ! -d "${APP_PATH}" ]]; then
if [ -z "${APP_PATH}" ] || [ ! -d "${APP_PATH}" ]; then
APP_PATH="/app/www/public/apps/${APP}"
fi
if [[ -d "${APP_PATH}" ]]; then
if [ -d "${APP_PATH}" ]; then
occ app:disable "${APP}" >/dev/null 2>&1
fi
APP_STATUS="$(occ config:app:get "${APP}" enabled 2>/dev/null)"
if [[ "${APP_STATUS}" != "no" ]] && [[ -n "${APP_STATUS}" ]]; then
if [ "${APP_STATUS}" != "no" ] && [ -n "${APP_STATUS}" ]; then
occ config:app:set "${APP}" enabled --value="no" >/dev/null 2>&1
fi
occ app:remove "${APP}" >/dev/null 2>&1
@@ -163,14 +163,14 @@ for APP in richdocumentscode; do
done
# set data directory
if [[ ! -s /config/www/nextcloud/config/config.php ]]; then
if [ ! -s /config/www/nextcloud/config/config.php ]; then
echo -e "<?php\n\$CONFIG = array (\n 'datadirectory' => '/data',\n);" >/config/www/nextcloud/config/config.php
elif [[ -f /config/www/nextcloud/config/config.php ]]; then
elif [ -f /config/www/nextcloud/config/config.php ]; then
sed -i "s|/app/www/public/data|/data|g" /config/www/nextcloud/config/config.php
fi
#modify javascript mime type and add .mjs support
if [[ -s /etc/nginx/mime.types ]]; then
if [ -s /etc/nginx/mime.types ]; then
sed -i 's|\bjs;|js mjs;|g' /etc/nginx/mime.types
sed -i 's|\bapplication/javascript|text/javascript|g' /etc/nginx/mime.types
fi
View File