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.post92.tar.gz (30.0 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.post92-py3.9.egg (43.1 kB view details)

Uploaded Egg

actions_includes-0.0.post92-py3.8.egg (43.1 kB view details)

Uploaded Egg

actions_includes-0.0.post92-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: actions-includes-0.0.post92.tar.gz
  • Upload date:
  • Size: 30.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.9.2

File hashes

Hashes for actions-includes-0.0.post92.tar.gz
Algorithm Hash digest
SHA256 cd3cef60c3b873d45d3eb7902b1d4e44ddef903bd8655ec7fa6de832cdec8b29
MD5 66563253027118b5cd8176d54795a22d
BLAKE2b-256 d1b06a6e1547a4e53089b936470532db197a26355fc0803836eb70a8451702b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post92-py3.9.egg
  • Upload date:
  • Size: 43.1 kB
  • Tags: Egg
  • 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.post92-py3.9.egg
Algorithm Hash digest
SHA256 9bc2081bc58cbe69ddd4494d9f546cec2deb45db2cdf29d4c85bbb77a85357f3
MD5 373d644ebb21f5a7c667efdb10dcbcba
BLAKE2b-256 1efa0ced31d4d7cec9e9db98912cfdb863aafe33fc8b6a218727d686e441602a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post92-py3.8.egg
  • Upload date:
  • Size: 43.1 kB
  • Tags: Egg
  • 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.post92-py3.8.egg
Algorithm Hash digest
SHA256 c6bffcb125e85c4ee63727ca7a14c0b95247684533e8fc3ce7ecd52699a4dc1e
MD5 04bd16baa917291ce46096933f50325b
BLAKE2b-256 b36b198e3010e4244fd99b757c37928a227897a7bc03cbcd15fd4dfd3eb4ce4c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post92-py3-none-any.whl
  • Upload date:
  • Size: 24.3 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.post92-py3-none-any.whl
Algorithm Hash digest
SHA256 98f8d216228be9196484a32a5bc4acf75094529e057199c034ef665996e24e94
MD5 73091d5c700e145b4eac8236ad5c96f2
BLAKE2b-256 b158cd4706a6badefea27a59452acc6aef5d740480b65265db74d93e8c32e6c7

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