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

Uploaded Source

Built Distributions

actions_includes-0.0.post101-py3.9.egg (53.3 kB view details)

Uploaded Source

actions_includes-0.0.post101-py3.8.egg (53.4 kB view details)

Uploaded Source

actions_includes-0.0.post101-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: actions-includes-0.0.post101.tar.gz
  • Upload date:
  • Size: 34.2 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.post101.tar.gz
Algorithm Hash digest
SHA256 d84ccad140a81f444d6b369fa5f3b7080ff80c4e5b683c9a9dc71fd865913f23
MD5 aedd0b0eda07751fe7ef4958191f269c
BLAKE2b-256 6b71645df5aab8a0a577a8f58a5958fab7b0e71652186c1fc42a7155ddedfc8b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post101-py3.9.egg
  • Upload date:
  • Size: 53.3 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.post101-py3.9.egg
Algorithm Hash digest
SHA256 8b22c1ec2721ead4ef96a4f669b151d3896de01bf5c8781e6e9df6535a20504b
MD5 5fb59d328972ea052e2d71359162976b
BLAKE2b-256 477f9c1aee91e3a4cb25fb31d7e454225fd45f36bf9bc62817c064858a16d82a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post101-py3.8.egg
  • Upload date:
  • Size: 53.4 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.post101-py3.8.egg
Algorithm Hash digest
SHA256 8972e6ce47cb07718e0030187313999ef450097c280b7fd856a55cb2a54758b1
MD5 757fb6240a706b655b3315f802c52998
BLAKE2b-256 8c0ed5eeb3d8e85abcb07712ab5a5a2226f6cbae62bb0b42ea8885a5ba605285

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post101-py3-none-any.whl
  • Upload date:
  • Size: 28.8 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.9.2

File hashes

Hashes for actions_includes-0.0.post101-py3-none-any.whl
Algorithm Hash digest
SHA256 63a41c6624f7ddfd5afdbb1060d70c79a8f29d1228d418fd240f321dee3714ac
MD5 b6a96750cffc0c07ce05407d0222f1a5
BLAKE2b-256 ae531221d6f0b8341f98f00fd58d6169afd6ae3a253861bf31700350e59ced2a

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