Skip to content

Add Exit Code to HTML Output and Improve Configurability in .git-auto-deploy.yml #6

@mnofresno

Description

@mnofresno

Title: Add Exit Code to HTML Output and Improve Configurability in .git-auto-deploy.yml

Issue 1: Add Exit Code to HTML Output

After executing the .git-auto-deploy.yml scripts, the exit code is registered in the logs and is easily viewable for asynchronous/background users. However, for synchronous or web requests, this information is not exposed.

Proposed Solution:

  • Include the exit code in the HTML output for synchronous or web requests to ensure consistency and visibility across all user types.

Issue 2: Improve Configurability in .git-auto-deploy.yml

The current .git-auto-deploy.yml configuration lacks flexibility in handling command failures. Enhancements are needed to:

  • Introduce a fail_fast boolean option to allow users to specify whether the deployment should stop immediately upon encountering a command failure (fail_fast: true) or continue running all commands before failing (fail_fast: false).
  • Adjust the HTTP request status code for synchronous users based on the fail_fast configuration.

Proposed Solution:

  • Enhance the .git-auto-deploy.yml file to include a more flexible failure handling configuration using an enumerated type instead of a boolean. The proposed options are:
    • fail: fast - Stop deployment immediately upon command failure.
    • fail: on_finish_if_error - Continue running all commands and fail only after completion if any command has failed.
    • fail: never - Ignore command failures and complete the deployment process regardless of errors.

Discussion Points:

  • Should the fail_fast option be replaced entirely with the proposed fail enum for greater clarity and flexibility?
  • Are there any additional failure handling scenarios that should be considered?
  • How should the exit code and failure status be represented in the HTML output to provide the most value to synchronous users?

By addressing these issues separately, we can ensure a more robust and user-friendly deployment process.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions