Dockyard CLI

A command-line tool for build and deployment automation

View project on GitHub

๐Ÿ“ฆ Dockyard CLI

Dockyard CLI is a command-line tool built in Go to simplify and automate project build, deployment, and task execution. It helps you manage configurations across hundreds of repositories, saving you significant time and effort.

๐Ÿ”— Project Homepage: immarktube.github.io/dockyard-cli


๐Ÿš€ Features

  • Modular Command Structure: Organized via the cmd/ directory for easy extension and maintenance.
  • Configuration-Driven: Supports .dockyard.yaml for defining custom build and deployment pipelines.
  • Automated Task Execution: Built-in task runner for handling common project workflows.
  • CI/CD Friendly: Easily integrates into your existing automation pipelines.

๐Ÿ› ๏ธ Installation & Usage

Installation

Download the latest release from below link and place the executable alongside your local repositories:
https://github.com/immarktube/dockyard-cli/releases

/your-workspace/
โ”œโ”€โ”€ dockyard-cli         # Dockyard CLI ๅฏๆ‰ง่กŒๆ–‡ไปถ๏ผˆ้œ€ๆ”พๅœจๆญคๅค„๏ผ‰
โ”œโ”€โ”€ kubernetesDemo       # ไป“ๅบ“1
โ”œโ”€โ”€ careeranalyse-web    # ไป“ๅบ“2
โ”œโ”€โ”€ readList             # ไป“ๅบ“3

Usage

  1. Create a .dockyard.yaml file at your project root to define tasks.
  2. Run your tasks using:
dockyard --help

For detailed usage instructions, visit: Dockyard CLI Documentation


๐Ÿ“ Project Structure

dockyard-cli/
โ”œโ”€โ”€ cmd/             # Command definitions
โ”œโ”€โ”€ command/         # Command implementations
โ”œโ”€โ”€ config/          # Configuration parsing
โ”œโ”€โ”€ docs/            # Documentation
โ”œโ”€โ”€ executor/        # Task runner
โ”œโ”€โ”€ utils/           # Utility functions
โ”œโ”€โ”€ .dockyard.yaml   # Example config file
โ”œโ”€โ”€ .env             # Example config file
โ”œโ”€โ”€ main.go          # Entry point
โ””โ”€โ”€ build.sh         # Build script

๐Ÿ“„ Example .dockyard.yaml

global:
  owner: immarktube
  authToken: ${GITHUB_TOKEN}
  apiBaseURL: https://api.github.com
  gitBaseURL: https://github.com
  concurrency: 5
  noHook: true

repositories:
  - path: kubernetesDemo
    baseRef: fb6512a5b8a5b763e0b2e8634bad4cd713239c48
  - path: careeranalyse-web
    baseRef: 1.0.0
  - path: readList
    baseRef: master

hook:
  pre: echo "Running pre hook"
  post: echo "Running post hook"

๐Ÿ“„ Example .env

GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Note: you can also define the token in .dockyard.yaml, but this will appear your sensitive data in config file directly.


๐Ÿค Contributing

We welcome contributions, issue reports, and suggestions!

  1. Fork this repository.
  2. Create a new feature branch.
  3. Submit a Pull Request.

๐Ÿ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.