Skip to main content

Tool for flattening include statements in GitHub actions workflow.yml files.

Project description

actions-includes

License GitHub issues PyPI PyPI - Python Version PyPI - Downloads

Allows including an action inside another action (by preprocessing the Yaml file).

Instead of using uses or run in your action step, use the keyword includes.

Once you are using the includes argument, the workflows can be expanded using the tool like follows;

# python -m actions_include <input-workflow-with-includes> <output-workflow-flattened>
python -m actions_includes ./.github/workflows-src/workflow-a.yml ./.github/workflows/workflow-a.yml

includes: step

steps:
- name: Other step
  run: |
    command

- includes: {action-name}
  with:
    {inputs}

- name: Other step
  run: |
    command

The {action-name} follows the same syntax as the standard GitHub action uses and the action referenced should look exactly like a GitHub "composite action" except runs.using should be includes.

For example;

  • {owner}/{repo}@{ref} - Public action in github.com/{owner}/{repo}
  • {owner}/{repo}/{path}@{ref} - Public action under {path} in github.com/{owner}/{repo}.
  • ./{path} - Local action under local {path}, IE ./.github/actions/{action-name}.

As it only makes sense to reference composite actions, the docker:// form isn't supported.

As you frequently want to include local actions, actions-includes extends the {action-name} syntax to also support;

  • /{name} - Local action under ./.github/actions/includes/{name}.

This is how composite actions should have worked.

includes-script: step

File: script.py

print('Hello world')

File: workflow.yml

steps:
- name: Other step
  run: |
    command

- name: Hello
  includes-script: script.py

- name: Other step
  run: |
    command

python -m actions_includes.py workflow.in.yml workflow.out.yml

File: oworkflow.out.yml

steps:
- name: Other step
  run: |
    command

- name: Hello
  shell: python
  run: |
    print('Hello world')

- name: Other step
  run: |
    command

The shell parameter is deduced from the file extension, but it is possible to use a custom shell by setting the shell parameter manually.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

actions-includes-0.0.post124.tar.gz (37.7 kB view details)

Uploaded Source

Built Distributions

actions_includes-0.0.post124-py3.9.egg (56.8 kB view details)

Uploaded Source

actions_includes-0.0.post124-py3.8.egg (56.8 kB view details)

Uploaded Source

actions_includes-0.0.post124-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

File details

Details for the file actions-includes-0.0.post124.tar.gz.

File metadata

  • Download URL: actions-includes-0.0.post124.tar.gz
  • Upload date:
  • Size: 37.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for actions-includes-0.0.post124.tar.gz
Algorithm Hash digest
SHA256 387bb8efa34b61d87eb5c2e908549335afdc5d5a94a4eafe3acdfb12f9c75d9b
MD5 a9e297a0c1c7682fd6789ad425bd77c7
BLAKE2b-256 c09672c9a5c8fb96ac529cfbea1f2bdb146cbcc06aca3a1fae1a6362418b135e

See more details on using hashes here.

File details

Details for the file actions_includes-0.0.post124-py3.9.egg.

File metadata

  • Download URL: actions_includes-0.0.post124-py3.9.egg
  • Upload date:
  • Size: 56.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for actions_includes-0.0.post124-py3.9.egg
Algorithm Hash digest
SHA256 fb4abc96caae3a8cc5f145b0176656457f92b3cf4b02679600e86be1d9c6a342
MD5 07c49264da2507ed6149bff758154e81
BLAKE2b-256 0bc96d033d64893d27c3864ef5bc3de7eccbd15ef1e8f939db0ea4055b65807e

See more details on using hashes here.

File details

Details for the file actions_includes-0.0.post124-py3.8.egg.

File metadata

  • Download URL: actions_includes-0.0.post124-py3.8.egg
  • Upload date:
  • Size: 56.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.8

File hashes

Hashes for actions_includes-0.0.post124-py3.8.egg
Algorithm Hash digest
SHA256 029031796bed5c48d268881390982e6df7a2d1100c7558994b44987f11e740b2
MD5 1a89097f5c84f1716f170a8a98130755
BLAKE2b-256 e17d244982efc5f58529fe9e4fd51526b76490b68604e6003f4a52f7ab726d60

See more details on using hashes here.

File details

Details for the file actions_includes-0.0.post124-py3-none-any.whl.

File metadata

  • Download URL: actions_includes-0.0.post124-py3-none-any.whl
  • Upload date:
  • Size: 30.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for actions_includes-0.0.post124-py3-none-any.whl
Algorithm Hash digest
SHA256 42b43375ef0b648085854ef762db0e3420c3279867e1478f8e0c29ae28406ed0
MD5 d2f54aefd3452f3ce086b9a30023c226
BLAKE2b-256 9bc44e6ab5f8e1871c8b606ee2ec4e9967eaf6ffea2b04cb5068030d19882033

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