All Projects → pterm → cli-template

pterm / cli-template

Licence: MIT license
⚗ The most advanced CLI template on earth! Featuring automatic releases, website generation and a custom CI-System out of the box.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to cli-template

Nevergreen
🐤 A build monitor with attitude
Stars: ✭ 170 (+295.35%)
Mutual labels:  ci, cd
Rocket
Automated software delivery as fast and easy as possible 🚀
Stars: ✭ 217 (+404.65%)
Mutual labels:  ci, cd
Pypyr
pypyr task-runner cli & api for automation pipelines. Automate anything by combining commands, different scripts in different languages & applications into one pipeline process.
Stars: ✭ 173 (+302.33%)
Mutual labels:  ci, cd
Action Docker Layer Caching
🐳 Enable Docker layer caching in GitHub Actions
Stars: ✭ 160 (+272.09%)
Mutual labels:  ci, cd
Opendevops
CODO是一款为用户提供企业多混合云、一站式DevOps、自动化运维、完全开源的云管理平台、自动化运维平台
Stars: ✭ 2,990 (+6853.49%)
Mutual labels:  ci, cd
Symfony Bootstrapped
⚡️ Symfony with tools
Stars: ✭ 160 (+272.09%)
Mutual labels:  ci, cd
Scripts
Scripts for use on Codeship Basic
Stars: ✭ 211 (+390.7%)
Mutual labels:  ci, cd
Kubectl
A Github action for kubectl, the Kubernetes CLI
Stars: ✭ 128 (+197.67%)
Mutual labels:  ci, cd
Ansible Role Awx
Ansible Role - AWX
Stars: ✭ 228 (+430.23%)
Mutual labels:  ci, cd
Flagsmith Api
Feature flagging and remote config service. Host yourself or use our hosted version at https://www.flagsmith.com/
Stars: ✭ 223 (+418.6%)
Mutual labels:  ci, cd
Goploy
Deploy, CI/CD, Xterm, APP monitor, Crontab Manager.
Stars: ✭ 147 (+241.86%)
Mutual labels:  ci, cd
Webhookd
A very simple webhook server launching shell scripts.
Stars: ✭ 250 (+481.4%)
Mutual labels:  ci, cd
Gitlab Ci Local
Tired of pushing to test your .gitlab-ci.yml?
Stars: ✭ 134 (+211.63%)
Mutual labels:  ci, cd
Solo Ci
A lightweight CI/CD tool powered by Golang
Stars: ✭ 168 (+290.7%)
Mutual labels:  ci, cd
Gradle Nexus Staging Plugin
Automatize releasing Gradle projects to Maven Central.
Stars: ✭ 132 (+206.98%)
Mutual labels:  ci, cd
Jenkins Rest
Java client, built on top of jclouds, for working with Jenkins REST API
Stars: ✭ 201 (+367.44%)
Mutual labels:  ci, cd
Flint
Fast and configurable filesystem (file and directory names) linter
Stars: ✭ 115 (+167.44%)
Mutual labels:  ci, cd
Lastbackend
System for containerized apps management. From build to scaling.
Stars: ✭ 1,536 (+3472.09%)
Mutual labels:  ci, cd
Opensa
资产管理、资产采集、灰度发布、反向代理、批量任务、任务编排、计划任务、日志审计、权限管理、角色管理、部门管理、运维自动化
Stars: ✭ 220 (+411.63%)
Mutual labels:  ci, cd
Rok8s Scripts
Opinionated scripts for managing application deployment lifecycle in Kubernetes
Stars: ✭ 248 (+476.74%)
Mutual labels:  ci, cd

cli-template

A template for beautiful, modern, cross-platform compatible CLI tools written with Go!

Screenshot


Getting Started | Wiki


This template features
Modern Style 💎
Build on top of cobra 🐍
Automatic Releases 🚀
Easy installation for your users (one command) 🐥
Automatic Website/Docs Generation 🌐
Automatic Deployment 🔝
Update Checking
Custom CI-System 🤖
Custom Libraries 🔬

Getting Started

You can find an in-depth tutorial in the Wiki here: Getting Started

  1. Click on Use this template on the top of the page.
  2. Enable GitHub Pages and set the path to /docs.
  3. Create a personal access token (with repo scope) and add it as a repository secret (name: REPO_ACCESS_TOKEN).
  4. Clone and open your repository to change the description of your CLI in ./cmd/root.go.
  5. After you have set up your programm you have to create the very first release manually (v0.0.1), to initialize the CI-System. (Don't worry if your CLI tool doesn't do anything yet. It's common that the v0.0.1 release is just the plain project setup)
  6. The setup is done and you can start to code!

This template uses spf13/cobra as CLI framework.
You can find their documentation here: cobra.dev

Features

Modern Style

PTerm Documentation Link

This template uses PTerm to provide colorful, cross-platform compatible output by default!
By using PTerm, you can output progressbars, colored text, charts and many more.

Build on top of cobra

Cobra Documentation Link

Cobra is a popular CLI framework for Go.

Automatic Releases

Documentation link

Our custom made CI system will detect when you change the version of your CLI and will automatically create a new GitHub release for you. You'll never have to deploy your CLI tools manually again!

Install Ready

Instl Documentation link

The automatic releases contain binaries, for the most common operating systems.
This binaries can be installed using instl.sh.

This means that your users, can install your CLI Tool with a single command!
The command will automatically be put into your README.md, after you click Use this template.

The commands will look like below, depending on the OS, your user has.

Windows

iwr instl.sh/username/reponame/windows | iex 

macOS

curl -sSL instl.sh/username/reponame/macos | bash   

Linux

curl -sSL instl.sh/username/reponame/linux | bash  

Automatic Website Generation

Documentation link

Every time you push a new commit, a GitHub Pages website is created/updated, which documents your whole CLI tool automatically. You don't need to document anything by yourself.

You only need to enable GitHub Pages by going to your repository settings (set the path to /docs).

Automatic Deployment

Goreleaser Documentation link

This template uses Goreleaser to build binaries of GitHub releases, for the most common operating systems.
Since we feature Automatic Releases, your whole deployment process is automated, when you increase the version of your CLI tool.

Update Checking

Your users will be notified if a new version of your tool is availble.

Custom CI-System

Documentation link

We wrote a custom CI-System, which will be included in your repository.
It sets up the template, creates/updates the website, writes docs for you and run your tests. (And much more!)

Custom Libraries

We use libraries, which were specially made for this template, to give you the best user experience without a ton of code.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].