Skip to main content

simplest command line menu driven deployment tool. using git, tags, and branches to deploy

Project description

░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░ ░░░ ░░░░ ░░ ░░ ░░░░░░░░░░ ░░░ ░░ ░ ▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒ ▓▓ ▓▓▓ ▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓ ███████ ██ ████ █████ █████ ██████████████ ████ █████ ████████ ████ ██ ███ ████ ██ ██ ███████████████ ███ █████ ████ ████████████████████████████████████████████████████████████████████████████

Ship Git commands

Ship Git provides two main interactive commands that users can choose from within the menu:

  1. TAGGING: This command allows users to create a tag for a specific commit. The user is prompted to enter a search phrase to find commits, select the desired commit from a list, and then provide a tag name. The tag is then created and pushed to the remote repository.

  2. DEPLOYING: This command is used to deploy a specific tag to a branch. The user selects a tag from a list of the most recent tags and then chooses a branch to deploy to. If the branch does not exist, it is created. The selected tag is then merged into the chosen branch and pushed to the remote repository, effectively deploying the code.

These commands are part of an interactive menu that guides the user through the process, ensuring that the CI/CD workflow is followed and that the main branch and customer-specific branches are managed effectively.

Ship Git - CI/CD Philosophy and Workflow

Ship Git embraces a CI/CD philosophy that encourages developers to code on the main branch and commit changes daily. This approach keeps the main branch somewhat volatile but ensures that the codebase is always moving forward with incremental changes.

To manage this volatility and identify stable or QA-ready states, we use a tagging system. Tags are applied to commits on the main branch that represent good release candidates or versions that have passed certain quality assurance checks.

Once a commit is tagged, it can be pulled onto a new branch, which Ship Git does under the Deploy path. It is expected that action workflows are set up by someone else and when Ship Git pulls to that branch it's triggered. Depending on the branch, this could trigger updates to a production server tied to a specific URL, a UAT server, or any other environment as required.

In our CI/CD workflow, branches represent individual customers or important machines. Each customer branch receives a forced copy of the tag from the main branch. This ensures that each customer has a version of the software that has been certified and tagged as stable from the main development line.

The use of branches in this way allows for a clear separation of concerns. The main branch remains the hub of continuous integration and development, while branches serve as stable snapshots for deployment to customer-specific environments. This strategy allows for a flexible yet controlled deployment process, catering to the unique needs of each customer.

Remember, the success of this CI/CD approach relies on diligent and frequent integration, clear tagging of stable commits, and well-defined action workflows to handle the deployment process. Happy shipping!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shipgit-0.1.3.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shipgit-0.1.3-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file shipgit-0.1.3.tar.gz.

File metadata

  • Download URL: shipgit-0.1.3.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for shipgit-0.1.3.tar.gz
Algorithm Hash digest
SHA256 74edcee1dbcb5ecfd9911a9a708fd5788b4ad5bdaaceaaf4d0c705028a9a5a6a
MD5 50a827d9414e3238ebda20c3f53ae763
BLAKE2b-256 c9709688472bfd49bf8fa478a3cb257e88b5655b8ed29b1f3c1f1d7017803aa2

See more details on using hashes here.

File details

Details for the file shipgit-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: shipgit-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for shipgit-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cdc33ab16c52b1b126af82ce79d171389e35cf4c5e66967d1e7c615930479cde
MD5 17ba7ecba38158b4407c7dca49c94842
BLAKE2b-256 d56edd1d66db4df36d4d680d46c6a7b5504454f7f5a0cf7144122c4780324e5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page