Skip to main content

CLI tools for GitHub Actions

Project description

Build Black Formatter GitHub License

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:

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:

WORKFLOW_RUNNER_VERSION=ubuntu-18.04 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-18.04
    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:

pip install -U workflow-tools

Contributing

See CONTRIBUTING.rst.

Changelog

0.6.0 (2020-04-01)

  • Update readthedocs config (#8) by @pilosus

0.5.0 (2020-04-01)

  • Fix autodocs (#7) by @pilosus

  • Add check docs step in CI/CD (#7) by @pilosus

  • Add badges to README (#7) by @pilosus

0.4.0 (2020-04-01)

  • Extend CI/CD flow with package check (#5) by @pilosus

  • Fix bugs with setup.py long description by @pilosus

0.3.0 (2020-03-31)

  • Add documentation and ReadTheDocs integration (#3) by @pilosus

0.2.0 (2020-03-30)

  • Use GitHub Actions for the project (#2) by @pilosus

0.1.0 (2020-03-30)

  • Move internal ANNA project to open source (#1) by @pilosus

  • Originally developed by Vitaly Samigullin (@pilosus) as internal ANNA project

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

workflow_tools-0.6.0.tar.gz (12.4 kB view hashes)

Uploaded Source

Built Distribution

workflow_tools-0.6.0-py3-none-any.whl (12.6 kB view hashes)

Uploaded Python 3

Supported by

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