Commit Graph

31 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
577f46153f refactor: use helper go functions to handle extracting files from a repository
This standardizes the extraction code and makes it easier to reuse in future implementations of file extraction.

Additionally, this adds a way to extract folders from codebases.
2025-07-23 18:16:16 -04:00
Jose Diaz-Gonzalez
7e37f9dc79 fix: add missing trigger 2025-06-23 00:22:38 -04:00
Jose Diaz-Gonzalez
7cd077a79b debug: stream stdout/stderr 2025-06-19 21:19:24 -04:00
Jose Diaz-Gonzalez
2324cb888b refactor: check for extracted file and add logging message 2025-06-19 20:53:20 -04:00
Jose Diaz-Gonzalez
4ae9cca6f1 feat: implement app-json-is-valid plugin trigger 2025-06-19 02:20:02 -04:00
Jose Diaz-Gonzalez
73be6989ff fix: ensure invalid cron triggers fail a deploy 2025-06-10 23:55:06 -04:00
Jose Diaz-Gonzalez
c3a573229d refactor: execute one-off commands with DOKKU_APP_SHELL as the initial command
This commit changes the launched pod to use the configured DOKKU_APP_SHELL - default /bin/bash - to launch processes. Without this, if a non-interactive process was executed and did not immediately exit, it was possible for that process to launch twice - once when the pod started, and once when entering the pod. Ideally we know whether the process is interactive or not, but this isn't always possible when running under a tty (non-tty == non-interactive). As such, this also removes the ability to launch one-off containers that do not have a configured shell in the container, but this is better than attempting to run commands twice.
2024-11-04 14:29:34 -05:00
Jose Diaz-Gonzalez
104a5b4a93 refactor: execute the predeploy script during the pre-release-builder plugin trigger
This fixes an issue where the post-release-builder trigger inadvertently modifies the image. We take advantage of the fact that env vars are available at the `pre-release-builder` phase to ensure any image modifications occur as appropriate.
2024-04-04 02:34:09 -04:00
Jose Diaz-Gonzalez
ad5537c086 refactor: directly trigger pre-deploy hook from post-release-builder script
This removes the extra indirection in the deploy process for triggering the hooks.
2024-04-04 02:27:43 -04:00
Jose Diaz-Gonzalez
cdff4ae867 refactor: use CallPlugnTrigger instead of PlugnTriggerOutput
Refs #6422
2024-03-14 01:18:28 -04:00
Jose Diaz-Gonzalez
e61421b53b refactor: migrate the app deploy lock to the data directory
This removes it from the app path, hopefully making backups a bit easier to perform.
2024-02-09 14:34:32 -05:00
Jose Diaz-Gonzalez
b6425ab431 fix: ensure all copied files always have line endings converted to unix-style
Closes #6490
2024-01-24 23:54:10 -05:00
Jose Diaz-Gonzalez
4294694be3 feat: add support for exposing healthchecks in the AppJson struct 2024-01-18 19:05:14 -05:00
Jose Diaz-Gonzalez
26e9cc9b8c feat: add support for non-web healthchecks via app.json
This change converts existing CHECKS files into a healthchecks key that is understood by 'docker-container-healthchecker'. This tool supports a number of different types of container healthchecks - command, http, uptime - and can perform healthchecks against non-web processes.

The use of the old CHECKS file is now deprecated, and will be removed in the next minor version. Users can use the 'docker-container-healthchecker' to convert existing CHECKS files to the new format automatically.

Closes #2760
2023-08-06 17:23:13 -04:00
Jose Diaz-Gonzalez
87828515a1 fix: respect the build-dir in app-json extraction
Because the app-json extraction happens before the build-dir is set, it doesn't end up respecting the value, and thus the user might get the wrong app.json file.

This takes advantage of path.Join()'s default of ignoring empty paths.
2023-02-14 03:56:28 -05:00
Jose Diaz-Gonzalez
af84293c3e fix: ensure we migrate data for all golang plugins 2023-02-14 03:08:02 -05:00
Jose Diaz-Gonzalez
0066b09405 fix: remove duplicate func as a result of rebase 2023-02-14 03:08:02 -05:00
Jose Diaz-Gonzalez
e78fb84953 fix: ensure we create the app-json data directory for the app on app creation 2023-02-14 03:08:02 -05:00
Jose Diaz-Gonzalez
09eb0b2c8f refactor: move app.json extraction up to core-post-extract 2023-02-14 03:08:02 -05:00
Jose Diaz-Gonzalez
6cbe93c245 refactor: move all golang code for managing data directories to common plugin
Additionally, ensure the golang plugins handle setup/teardown of plugin and app-specific data directories during install, rename, and clone phases.
2023-01-08 23:36:12 -05:00
Jose Diaz-Gonzalez
fddf130abd fix: add missing clone/rename setup code for golang plugins 2021-10-09 23:49:46 -04:00
Jose Diaz-Gonzalez
55554ce9bd feat: add ability to increase the max parallelism when deploying a given process type 2021-10-09 22:44:03 -04:00
Jose Diaz-Gonzalez
f3f9d37d59 fix: reference correct plugin when setting up app-json plugin 2021-09-04 22:43:10 -04:00
Jose Diaz-Gonzalez
30a15aaa7a fix: respect pre-deploy task image manipulation
This requires a bc-incompatible break in terms of what triggers the pre-deploy hook (dokku internals vs schedulers).
2021-08-05 04:17:21 -04:00
Jose Diaz-Gonzalez
6d9520e599 feat: add support for formation key in app.json file
Still needs triggers for ps-can-scale and ps-scale-set.

Refs #4500
2021-07-31 20:54:14 -04:00
Jose Diaz-Gonzalez
f98e7702fb feat: implement heroku's postdeploy deployment task
This occurs during the postdeploy on the first deploy of an app, mimicking heroku. It currently happens _after_ the `postdeploy` and `release` deploy tasks.
2021-02-28 04:51:42 -05:00
Jose Diaz-Gonzalez
f7ef14d737 feat: add initial scheduled task implementation
This functionality enables users to manage a global crontab for the Dokku user that contains all scheduled tasks across all apps. Alternative schedulers can implement cron tasks as desired.
2021-01-20 14:49:48 -05:00
Jose Diaz-Gonzalez
b8b6d64f75 fix: correct stickler-ci errors and remove unused code 2020-08-31 18:44:00 -04:00
Jose Diaz-Gonzalez
617ca885f1 fix: run release during predeploy 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
1813317e86 fix: execute correct script 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
98bc513336 feat: implement getPhaseScript and scaffold out plugin triggers 2020-08-30 13:41:14 -04:00