Socket
Book a DemoInstallSign in
Socket

easy-workflow-manager

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

easy-workflow-manager

Tools to support a straightforward branch/qa/merge/release process

0.0.14
pipPyPI
Maintainers
1

Install

Install with pip

::

% pip3 install easy-workflow-manager

After running for the first time, the default settings file is copied to ~/.config/easy-workflow-manager/settings.ini

::

[default] QA_BRANCHES = qa, qa2, qa3, qa4 IGNORE_BRANCHES = master, develop, release, uat LOCAL_BRANCH = mylocalprep SOURCE_BRANCH = master

Understanding

To understand how you might make use of this project, check out some of the test helper functions and test code, then the scripts

  • tests/__init__.py overrwites some settings for QA_BRANCHES and SOURCE_BRANCH and defines several functions that execute git commands, with the help of bg_helper.run

    • make_file to create a file using echo and output redirection

    • append_to_file to append to a file using echo and output redirection

    • change_file_line to change a line of a file using sed

    • init_clone_cd_repo to create a git repo at remote_path, clone it to local_path, and cd to local_path

      • also creates a file, commits it, and pushes to origin
    • checkout_branch to checkout an existing branch

    • add_commit_push to add modified files, commit, and push

    • deploy_merge_tag to deploy a branch to an open qa environment, merge back to source, then tag

      • this makes heavy use of some high-level easy_workflow_manager functions

        • get_empty_qa
        • get_remote_branches
        • deploy_to_qa
        • get_qa_env_branches
        • merge_qa_to_source
        • tag_release
        • get_tag_message
  • tests/conftest.py defines a single “fixture” that creates a new folder in /tmp to contain a new “remote git repository” and its “local clone” per defined test class

    • the fixture yields to let the methods of the test class run before deleting the temporary data

      • this would be a good place to drop a pytest.set_trace() if you want to inspect temporary repos and their commits
  • tests/test_stuff.py defines two test classes with some test methods

    • TestNewRepo.test_remote_branches to make sure the only remote branch is master, create 3 new branches, confirm that various invocations of ewm.get_remote_branches() return what you’d expect

    • TestNewRepo.test_local_branches to confirm that various invocations of ewm.get_local_branches() return what you’d expect

    • TestNewRepo.test_qa to confirm that no qa branches are in use and that ewm.get_empty_qa() returns the set of the overwritten QA_BRANCHES, then use the helper functions to append to a file, commit the changes, push to the remote

      • then check that ewm.deploy_to_qa() gets the specified branch(es) onto the specified qa branch
      • then check that ewm.clear_qa() clears the specified qa branch
    • TestNewRepo.test_change_commit_push() to update a file

      • then check that ewm.get_merged_remote_branches() does not include the branch that was just updated
    • TestNewRepo.test_tagging() to check that merging a branch to source and tagging it works

Commands / scripts

::

$ venv/bin/ewm-new-branch-from-source --help Usage: ewm-new-branch-from-source [OPTIONS] [NAME]

 Create a new branch from SOURCE_BRANCH on origin

Options: --help Show this message and exit.

$ venv/bin/ewm-deploy-to-qa --help Usage: ewm-deploy-to-qa [OPTIONS] [QA]

 Select remote branch(es) to deploy to specified QA branch

Options: -g, --grep TEXT case-insensitive grep pattern to filter branch names by --help Show this message and exit.

$ venv/bin/ewm-qa-to-source --help Usage: ewm-qa-to-source [OPTIONS] [QA]

 Merge the QA-verified code to SOURCE_BRANCH and delete merged branch(es)

Options: --help Show this message and exit.

$ venv/bin/ewm-show-qa --help Usage: ewm-show-qa [OPTIONS] [QA]

 Show what is in a specific (or all) qa branch(es)

Options: -a, --all Select all qa environments --help Show this message and exit.

$ venv/bin/ewm-clear-qa --help Usage: ewm-clear-qa [OPTIONS] [QA]

 Clear whatever is in a specific (or all) qa branch(es)

Options: -a, --all Select all qa environments --help Show this message and exit.

$ venv/bin/ewm-tag-release --help Usage: ewm-tag-release [OPTIONS]

 Select a recent remote commit on SOURCE_BRANCH to tag

Options: --help Show this message and exit.

Running Tests

Clone this repo then run the ./dev-setup.bash script to create a virtual environment that includes pytest

::

% ./dev-setup.bash

Run pytest with the -v an -s options to tests invoked as well as all the generated git commands and their output

::

% venv/bin/pytest -vs

Resources

  • https://git-scm.com/book/en/v2

Keywords

git

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.