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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file workflow_tools-0.6.0.tar.gz.

File metadata

  • Download URL: workflow_tools-0.6.0.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.44.1 CPython/3.7.6

File hashes

Hashes for workflow_tools-0.6.0.tar.gz
Algorithm Hash digest
SHA256 1378ef430a4a555ad545a3f8b0d5263154718e77f43dabbd6e4ba67954875ca8
MD5 7c877c55c7c939500cfc2fd7b53a8606
BLAKE2b-256 17f3cdd249ae95d65b6ddfdd439aead127b3fe33b617d33ce6694d95eea787b8

See more details on using hashes here.

File details

Details for the file workflow_tools-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: workflow_tools-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.44.1 CPython/3.7.6

File hashes

Hashes for workflow_tools-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ad3a2c4181634f0936510f04307ae548876f976cf88d83f4a34415e99324bb41
MD5 4e618eb33e92cbd31b4b8ed277dc2d48
BLAKE2b-256 50773f2a88f216b18d2277c2ed1c11ecde107e9754993ad17ed56faddaca2d56

See more details on using hashes here.

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