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.post61.tar.gz (20.3 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.post61-py3.9.egg (18.7 kB view details)

Uploaded Egg

actions_includes-0.0.post61-py3.8.egg (18.6 kB view details)

Uploaded Egg

actions_includes-0.0.post61-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: actions-includes-0.0.post61.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.7

File hashes

Hashes for actions-includes-0.0.post61.tar.gz
Algorithm Hash digest
SHA256 7ef1dce8a8644f6bb3a1403f29d4742b3880ce1ca927ca9cb0f68f5c76e6f164
MD5 e96c57b7a4f326b6099f63fdc6baaafe
BLAKE2b-256 2bae1d31a97d569dddb706142c713c22d49c0941f3d2342d59989678869a8719

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post61-py3.9.egg
  • Upload date:
  • Size: 18.7 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.1

File hashes

Hashes for actions_includes-0.0.post61-py3.9.egg
Algorithm Hash digest
SHA256 0d55af8af673d8c03dbfc7bd83ab5b07a96a481f1e3a30b628a1f8c5257cae88
MD5 8ed85e49603433c2fc86f77151f14b4e
BLAKE2b-256 70e0c94489f3ec0027cfbd548a0008c9ffce99e8bd75894d2d640d300a417114

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post61-py3.8.egg
  • Upload date:
  • Size: 18.6 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.7

File hashes

Hashes for actions_includes-0.0.post61-py3.8.egg
Algorithm Hash digest
SHA256 5825bb90bdbb049d5d7327e082788eb03f55b0867181b68b152f97307a649dfc
MD5 2af4bb15ed2bc025b56ef8f77a3f0cab
BLAKE2b-256 6d21168f129a44b3793af9ffacdcb613e69e7a8d11902fd71415faefddac9b1b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post61-py3-none-any.whl
  • Upload date:
  • Size: 14.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.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.7

File hashes

Hashes for actions_includes-0.0.post61-py3-none-any.whl
Algorithm Hash digest
SHA256 63006d38c2fbdeab6a35fe42b06095c1b57bf96478430e9765720ff9aa758825
MD5 1147bbd496a818d7ed68cbbf8067d4b0
BLAKE2b-256 51b17671cf9a005c6fbc39638ccd430d1813c39736608f7886a24eabb556faca

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