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/my-action.

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/{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.post119.tar.gz (36.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

actions_includes-0.0.post119-py3.9.egg (55.9 kB view details)

Uploaded Egg

actions_includes-0.0.post119-py3.8.egg (55.9 kB view details)

Uploaded Egg

actions_includes-0.0.post119-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: actions-includes-0.0.post119.tar.gz
  • Upload date:
  • Size: 36.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.59.0 CPython/3.8.8

File hashes

Hashes for actions-includes-0.0.post119.tar.gz
Algorithm Hash digest
SHA256 0e861382afc7cbe0786e137b4d399ecd49db1bfbd85eceaa956dd587b8965ba3
MD5 9472a1137f6c05655a02d72390489707
BLAKE2b-256 592a470e4d358d876f018d70cf13346ad6949d8bcbede2836b15d5dc06992072

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post119-py3.9.egg
  • Upload date:
  • Size: 55.9 kB
  • Tags: Egg
  • 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.59.0 CPython/3.9.2

File hashes

Hashes for actions_includes-0.0.post119-py3.9.egg
Algorithm Hash digest
SHA256 8c2cdfe93377459a9069d642d149bbfc4ece0a219754f9c9c61dd46908f4fda4
MD5 ce82289416f409639f942e44cf5a5bac
BLAKE2b-256 7a4360f4d0caf2bd9c32f745391b52f26f2c303e8b9cc863cc87110adea89d86

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post119-py3.8.egg
  • Upload date:
  • Size: 55.9 kB
  • Tags: Egg
  • 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.59.0 CPython/3.8.8

File hashes

Hashes for actions_includes-0.0.post119-py3.8.egg
Algorithm Hash digest
SHA256 aac4dcf10ea5df88b653c4013d04f7ee7be06220ee86bbbebac15fa1c7e0ef74
MD5 7e8236a87d6ace24eb4f99d55fc85aec
BLAKE2b-256 e495a4e2799ca9f22a682deb2e6426475374e18bb3e18f07aa355d6eaaaf1294

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post119-py3-none-any.whl
  • Upload date:
  • Size: 30.0 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.59.0 CPython/3.9.2

File hashes

Hashes for actions_includes-0.0.post119-py3-none-any.whl
Algorithm Hash digest
SHA256 63025801cc1d9f0323034acecd2419d256710d39a6a2dbca4912a33ae7a41383
MD5 a6b2838feaee297118a474589caabd69
BLAKE2b-256 1be05e0b44fce0dc498ad19508908c1bd8939127ae506fa5a3d06fc130bd9cfa

See more details on using hashes here.

Supported by

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