90 lines
4.1 KiB
Markdown
90 lines
4.1 KiB
Markdown
# Deployment Capability
|
|||
|
|
|
||
|
|
## ADDED Requirements
|
||
|
|
|
||
|
|
### Requirement: FTPS Deployment Script SHALL be provided
|
||
|
|
The system SHALL provide an automated deployment script that uploads the built Hugo site to the production server via FTPS.
|
||
|
|
|
||
|
|
#### Scenario: User deploys site after building
|
||
|
|
**Given** the Hugo site has been built successfully (public/ directory exists)
|
||
|
|
**And** the user has set the FTPS_PASSWORD environment variable
|
||
|
|
**When** the user runs the deployment script
|
||
|
|
**Then** the script connects to www.markusgraf.ch via FTPS using the username "gurix"
|
||
|
|
**And** uploads all files from the public/ directory to the httpsdocs/ directory on the server
|
||
|
|
**And** displays upload progress and completion status
|
||
|
|
**And** exits with status code 0 on success
|
||
|
|
|
||
|
|
#### Scenario: Script fails when credentials are missing
|
||
|
|
**Given** the Hugo site has been built
|
||
|
|
**And** the FTPS_PASSWORD environment variable is not set
|
||
|
|
**When** the user runs the deployment script
|
||
|
|
**Then** the script displays an error message explaining the missing credential
|
||
|
|
**And** exits with a non-zero status code
|
||
|
|
**And** does not attempt to connect to the server
|
||
|
|
|
||
|
|
#### Scenario: Script handles connection failures gracefully
|
||
|
|
**Given** the FTPS_PASSWORD is set correctly
|
||
|
|
**And** the network connection to www.markusgraf.ch is unavailable or fails
|
||
|
|
**When** the user runs the deployment script
|
||
|
|
**Then** the script displays a clear error message about the connection failure
|
||
|
|
**And** exits with a non-zero status code
|
||
|
|
**And** does not leave the deployment in a partially completed state
|
||
|
|
|
||
|
|
### Requirement: Secure Credential Management SHALL be enforced
|
||
|
|
The deployment process SHALL handle credentials securely without exposing them in version control or script output.
|
||
|
|
|
||
|
|
#### Scenario: Credentials stored as environment variables
|
||
|
|
**Given** the user needs to deploy the site
|
||
|
|
**When** the user reviews the deployment documentation
|
||
|
|
**Then** the documentation instructs them to set FTPS_PASSWORD as an environment variable
|
||
|
|
**And** the deployment script reads credentials only from environment variables
|
||
|
|
**And** credentials are never hardcoded in scripts or configuration files
|
||
|
|
|
||
|
|
#### Scenario: Script does not expose credentials in output
|
||
|
|
**Given** the deployment script is running
|
||
|
|
**When** the script displays status messages or logs
|
||
|
|
**Then** the password is never displayed in plain text
|
||
|
|
**And** connection strings mask the password portion
|
||
|
|
**And** error messages do not reveal credential values
|
||
|
|
|
||
|
|
### Requirement: Deployment Status Feedback SHALL be provided
|
||
|
|
The deployment script SHALL provide clear feedback about the deployment process and outcome.
|
||
|
|
|
||
|
|
#### Scenario: User receives progress updates during deployment
|
||
|
|
**Given** the deployment script is uploading files
|
||
|
|
**When** the upload is in progress
|
||
|
|
**Then** the script displays which files or directories are being uploaded
|
||
|
|
**And** shows overall progress indicators
|
||
|
|
**And** provides estimated time or completion percentage when possible
|
||
|
|
|
||
|
|
#### Scenario: Successful deployment confirmation
|
||
|
|
**Given** all files have been uploaded successfully
|
||
|
|
**When** the deployment completes
|
||
|
|
**Then** the script displays a success message
|
||
|
|
**And** confirms the total number of files uploaded
|
||
|
|
**And** exits with status code 0
|
||
|
|
|
||
|
|
#### Scenario: Failed deployment with actionable error
|
||
|
|
**Given** an error occurs during deployment
|
||
|
|
**When** the deployment fails
|
||
|
|
**Then** the script displays the specific error encountered
|
||
|
|
**And** suggests possible remediation steps
|
||
|
|
**And** exits with a non-zero status code
|
||
|
|
|
||
|
|
### Requirement: Deployment Prerequisites SHALL be verified
|
||
|
|
The deployment script SHALL verify that prerequisites are met before attempting deployment.
|
||
|
|
|
||
|
|
#### Scenario: Script checks for built site
|
||
|
|
**Given** the user runs the deployment script
|
||
|
|
**When** the script starts
|
||
|
|
**Then** it verifies that the public/ directory exists
|
||
|
|
**And** contains files to deploy
|
||
|
|
**And** exits with an error if the directory is missing or empty
|
||
|
|
|
||
|
|
#### Scenario: Script checks for required tools
|
||
|
|
**Given** the deployment script starts
|
||
|
|
**When** it performs prerequisite checks
|
||
|
|
**Then** it verifies that lftp is installed and available
|
||
|
|
**And** displays an installation message if lftp is missing
|
||
|
|
**And** exits with an error if required tools are unavailable
|