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

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

Uploaded Source

Built Distributions

actions_includes-0.0.post74-py3.9.egg (34.5 kB view details)

Uploaded Source

actions_includes-0.0.post74-py3.8.egg (34.5 kB view details)

Uploaded Source

actions_includes-0.0.post74-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: actions-includes-0.0.post74.tar.gz
  • Upload date:
  • Size: 26.6 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.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for actions-includes-0.0.post74.tar.gz
Algorithm Hash digest
SHA256 de77306c816aca6073a578d8202645b7e44ba5efe2d7cabb835b0256c2f8ee1c
MD5 a3d6c2624f5d1619784d93dc619ea9e5
BLAKE2b-256 a17bde53c88513b78c412ed5b151aeb9aeb18c0bc9ae71a5bea9667edea57c2e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post74-py3.9.egg
  • Upload date:
  • Size: 34.5 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.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for actions_includes-0.0.post74-py3.9.egg
Algorithm Hash digest
SHA256 dfa83f937aa187554c99a95cb3176f7493def47b974ce770f0aab74237df17a1
MD5 cefb03206661f6152c6cf66c6aac04a4
BLAKE2b-256 6e706e9a7c17c1705a5a5cdea6ecd013e3b38f33628414a779db3464cb469f72

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post74-py3.8.egg
  • Upload date:
  • Size: 34.5 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.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for actions_includes-0.0.post74-py3.8.egg
Algorithm Hash digest
SHA256 a1ad5cf84709953234b7792c7b1fbaafa4d39c611f97133f6df49fe9ff5344e5
MD5 1e67e42c5191f230a4470ac7c402570f
BLAKE2b-256 c9dcbbadd61c15458e35cb440e02b98b05e5d237e3983e0bc082c03d4186b30d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post74-py3-none-any.whl
  • Upload date:
  • Size: 20.7 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.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for actions_includes-0.0.post74-py3-none-any.whl
Algorithm Hash digest
SHA256 13e64f799fea27ce983dbcf481894485a1d06b8edd29a4fda9b3b61dc6b3a74e
MD5 e887eba29a602d7a044a871e2a841e09
BLAKE2b-256 8c4dfbe831d7e7509bbd4961024644a9b47041f582594cdcb9aac46b378da2c6

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