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.post78.tar.gz (26.9 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.post78-py3.9.egg (35.0 kB view details)

Uploaded Egg

actions_includes-0.0.post78-py3.8.egg (35.0 kB view details)

Uploaded Egg

actions_includes-0.0.post78-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for actions-includes-0.0.post78.tar.gz
Algorithm Hash digest
SHA256 8f7d4941f187afa31133b57bcfebd5518758adb5f68a0746472329ca5b1a6f8d
MD5 51cd2c82a13e49e3248aadfdf5f3a864
BLAKE2b-256 5fb19a1828ddd6b99876c2a4b8211b0b503fada8174bd23722eed710b8b718cc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for actions_includes-0.0.post78-py3.9.egg
Algorithm Hash digest
SHA256 8419fe5db543ff444f1be031686f620b43fcc4f8121aed28a28140cc391cf648
MD5 8af96cf7d66addf5d7deea7aaffb1423
BLAKE2b-256 e427a47c1ff9b778c7fd5749f7fc67cab12520a6326f89cceb87a65c7d5793af

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for actions_includes-0.0.post78-py3.8.egg
Algorithm Hash digest
SHA256 0ab6994da2ecac054f51ccd7dc521c1bf0619ac5c711841af0836b5c32bc709d
MD5 1854c91088d175e14fcf29c8986c2a69
BLAKE2b-256 3fe402269893ce2c763cc2ef8298eccf5b4f0623fc1cd98a74e20b6b409380d6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post78-py3-none-any.whl
  • Upload date:
  • Size: 20.9 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.post78-py3-none-any.whl
Algorithm Hash digest
SHA256 f97aa641e04429c7fb4bdbead2d37c70b93afb4f3fd6744c8cff4464a68cc224
MD5 24d828257ca60469e9abcc4f9ff248c3
BLAKE2b-256 6aa6679eff7b234d1c738f386bc7f11c80fefa52a69202b9c0ee0875cea270f9

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