Improved the Build subcommand to support the building of Docker images (#11)

This PR contains the work done to support the building of Docker images in the `Build` subcommand in the executable target. So, for this purpose, the following task have been done:

- added a basic boilerplate of the `docker-compose.yml` file;
- fixed some issues found in the boilerplate of the `Dockerfile` file;
- defined the `Randomable` protocol;
- defined the `Artifact` enumeration;
- updated the `BuildProjectTask` task to support building Docker images if required;
- renamed the `BuildProjectTask` task as `BuildArtifactTask`.

Reviewed-on: #11
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
This commit was merged in pull request #11.
This commit is contained in:
2025-02-22 00:33:52 +00:00
committed by Javier Cicchelli
parent 888d00c1e8
commit f8a14e46ed
15 changed files with 181 additions and 81 deletions
@@ -20,9 +20,9 @@ extension Colibri {
mutating func run() async throws {
let terminalService = TerminalService()
let buildProject = BuildProjectTask(terminalService: terminalService)
let buildArtifact = BuildArtifactTask(terminalService: terminalService)
try await buildProject(at: options.locationURL)
try await buildArtifact(options.artifact, at: options.locationURL)
}
}
@@ -3,4 +3,5 @@ import ColibriLibrary
// MARK: - ExpressibleByArgument
extension Artifact: ExpressibleByArgument {}
extension IDE: ExpressibleByArgument {}
@@ -6,6 +6,9 @@ extension Colibri.Build {
// MARK: Properties
@Option(name: .shortAndLong)
var artifact: Artifact = .executable
@Option(name: .shortAndLong)
var location: String?