Home
Softono

Workflow Tools

Open source Apache-2.0 Python
25
Stars
2
Forks
2
Issues
17
Watchers
6 months
Last Commit

 About Workflow Tools

CLI tools for GitHub Actions

Platforms

Web Self-hosted

Languages

Python

Need Help Installing Workflow Tools?

We provide expert installation service for this software. Our team will install, configure, and secure Workflow Tools on your server. plans start at just $30.

Workflow Tools

View on GitHub

workflow-tools

|Build| |Black| |License|

.. raw:: html

CLI tools for GitHub Actions.

  • Automate writing GitHub workflow configs with a generator tool
  • Automate setting GitHub secrets for repositories
  • Integrate the tools into your pipeline for setting up new microservices

Rationale

Microservice architecture may have dozens and dozens of lookalikes services that require similar CI/CD workflows. With infrastructure as code approach taken by the GitHub Actions_, why not using workflows generation? Setting up a new microservice repository may also be automated. This is where workflow-tools come in handy.

Examples

Let's set GitHub Secrets_ for a repository. First, get a personal access token_ in GitHub settings. Then set up a secret using workflow-tools:

.. code-block:: bash

workflow_secret --owner=anna-money --repo=workflow-tools
--token="YOUR-PERSONAL-ACCESS-TOKEN"
update --key=MY_SECRET_KEY --value=MY_VALUE

Now let's use a fragment of Jinja2_ template for a GitHub Actions workflow to generate resulting config:

.. code-block:: bash

WORKFLOW_RUNNER_VERSION=ubuntu-latest WORKFLOW_PYTHON27=2.7 WORKFLOW_PYTHON37=3.7
workflow_generator

Press Enter to start pasting Jinja2 workflow template into stdin

jobs: test: runs-on: [[ workflow.runner_version ]] strategy: matrix: python: - [[ workflow.python27 ]] - [[ workflow.python37 ]]

Press Ctrl+D to render resulting workflow

For real workflow templates use reading/writing from/to a file, load variables from envfile

jobs: test: runs-on: ubuntu-latest strategy: matrix: python: - 2.7 - 3.7

Help

See documentation_ for more details. Use --help flag for each tool in the package.

Installation

Just run:

.. code-block:: bash

pip install -U workflow-tools

Contributing

See CONTRIBUTING.rst_.

.. |Build| image:: https://github.com/anna-money/workflow-tools/workflows/master/badge.svg :target: https://github.com/anna-money/workflow-tools/actions?query=workflow%3Amaster .. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/python/black :alt: Black Formatter .. |License| image:: https://img.shields.io/github/license/anna-money/workflow-tools.svg :alt: GitHub License

.. _GitHub Actions: https://help.github.com/en/actions .. _GitHub Secrets: https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets .. _personal access token: https://github.com/settings/tokens .. _Jinja2: https://jinja.palletsprojects.com/ .. _documentation: https://workflow-tools.readthedocs.io/ .. _CONTRIBUTING.rst: https://github.com/anna-money/workflow-tools/tree/master/CONTRIBUTING.rst