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

Uploaded Source

Built Distributions

actions_includes-0.0.post108-py3.9.egg (54.1 kB view details)

Uploaded Source

actions_includes-0.0.post108-py3.8.egg (54.1 kB view details)

Uploaded Source

actions_includes-0.0.post108-py3-none-any.whl (29.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: actions-includes-0.0.post108.tar.gz
  • Upload date:
  • Size: 35.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 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.post108.tar.gz
Algorithm Hash digest
SHA256 5c52197bf3348dad29b67e33016dc1a01cef72f2d461991f5103fee799b732af
MD5 2b858ceeb0ef44d5cfc04abcaa06e6ec
BLAKE2b-256 9e6599d72790239d91345d1f9bb259b857a0ebeae259b77bed03970e94f918a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post108-py3.9.egg
  • Upload date:
  • Size: 54.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 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.post108-py3.9.egg
Algorithm Hash digest
SHA256 93d5304b7600a2497572982c58a547e9a8d6e749867f68e2cfa1cf83eb5542d9
MD5 c0bbd75d19cc14fb99012eac3b5c5137
BLAKE2b-256 9adb5da631435c689fcc3abea20dc83a4327dfb9e5b72fde21096e34d3e9d57f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post108-py3.8.egg
  • Upload date:
  • Size: 54.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 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.post108-py3.8.egg
Algorithm Hash digest
SHA256 12b7aa90d60fd83eb98c369de539bc3590e15d0c22bf92244a56c2362942aeb4
MD5 cf44dbe29a50f765107fa8e66d28fbf5
BLAKE2b-256 bd99c48019f191331eb0c33c6a9b05501f18941a4b2bcfca3bfee751348c0210

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post108-py3-none-any.whl
  • Upload date:
  • Size: 29.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 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.post108-py3-none-any.whl
Algorithm Hash digest
SHA256 9c01a3d0ad261822b90d0598e13b42f883905c3b8b812b9eec153f84ace0159a
MD5 25611eb8e2d24736f986569c6f17cbb5
BLAKE2b-256 c3d87e336dd4c62fa12ab8f195358152955583f14d9566c2176a3f8d205b1976

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