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.post69.tar.gz (25.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.post69-py3.9.egg (32.8 kB view details)

Uploaded Egg

actions_includes-0.0.post69-py3.8.egg (32.8 kB view details)

Uploaded Egg

actions_includes-0.0.post69-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for actions-includes-0.0.post69.tar.gz
Algorithm Hash digest
SHA256 69a472228f0aad086fb8800ff5b2bc2f9b1e5171399309c6089400c4817c912a
MD5 b6f82ce9bd0981ea041f598dae060a80
BLAKE2b-256 227da48af437e2e4c01cd9816321243047d030dbf9fe4dae0663c71aa086f123

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for actions_includes-0.0.post69-py3.9.egg
Algorithm Hash digest
SHA256 9f790f48c400a7d60caec557d9c4e2543708771752cd14ee9ef57979aebb5efe
MD5 f9e46becd60ad3a8a1b337e32c013ca9
BLAKE2b-256 6b54a47dd3048feca55e8c554ed7d1b59a3f253d9114a30627b86f5a2825e0b5

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for actions_includes-0.0.post69-py3.8.egg
Algorithm Hash digest
SHA256 e907bb8379c359f1d23e4f8266e7f3c81cdb6b17b2f0f4620e917b8850c14f92
MD5 f96ca212f45fd5bfab1773fed46e86c5
BLAKE2b-256 a387a9b162c272c953646fb10e4721c3e55d51a46d6d58d46ac2aa258885ce2e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for actions_includes-0.0.post69-py3-none-any.whl
Algorithm Hash digest
SHA256 2d9c183bd848857a03d186fc232292ad5ecce6fb7f036034df1e4c6f599bb144
MD5 e53cde8a70937d68102f16aba7b5d038
BLAKE2b-256 f7efd04d4cd9e926cdfcfb250eb35635015884067958a266fc652dd9bb6e9e5e

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