Skip to main content

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

Project description

actions-includes

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.post91.tar.gz (29.9 kB view details)

Uploaded Source

Built Distributions

actions_includes-0.0.post91-py3.9.egg (42.9 kB view details)

Uploaded Source

actions_includes-0.0.post91-py3.8.egg (43.0 kB view details)

Uploaded Source

actions_includes-0.0.post91-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: actions-includes-0.0.post91.tar.gz
  • Upload date:
  • Size: 29.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.2 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for actions-includes-0.0.post91.tar.gz
Algorithm Hash digest
SHA256 4894036091ee71741feb8c8ac2aa1d012c07b0acad00453b37e8a3cdd90f09a4
MD5 28b447ef4fe50b5c7fecf8b9584a4913
BLAKE2b-256 bafe5458adb1055351c5ec6077d9f9a257a2d2f5e631821e2577ba2c07ed719a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post91-py3.9.egg
  • Upload date:
  • Size: 42.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.2 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for actions_includes-0.0.post91-py3.9.egg
Algorithm Hash digest
SHA256 978abec4d911f7c62c6bbef93ee3caa6f2f93d3084493bef9c274b92f88cf9da
MD5 974475732cee9fb13e6b2f6f3e6dd424
BLAKE2b-256 f0e3c211e93f759295ace574d01aef2695b92e9f58bd5e4f581f4e9cf4b409c1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post91-py3.8.egg
  • Upload date:
  • Size: 43.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.2 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for actions_includes-0.0.post91-py3.8.egg
Algorithm Hash digest
SHA256 f9f77463a66f71ee78638ecccbab27c24f1a3648e637e07807c65e7cfc633fe0
MD5 cba9c2a4047581d7bfa3d5920027a7e6
BLAKE2b-256 2f2d13b873969b0e226540a484a0e3e54260bc77fe7bb7b4003237acdb47f6de

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post91-py3-none-any.whl
  • Upload date:
  • Size: 24.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.2 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for actions_includes-0.0.post91-py3-none-any.whl
Algorithm Hash digest
SHA256 6180daf893381b7eefb4f1a27e3e791ab053f7d65a428d319ae25f6f00415050
MD5 48416567d5320043c171ff4579081232
BLAKE2b-256 5b9da3aa6088ae116288f914e998e8ed40cc26c551b489dfd9cf7a6583ecebaa

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