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

Uploaded Source

Built Distributions

actions_includes-0.0.post72-py3.9.egg (34.1 kB view details)

Uploaded Source

actions_includes-0.0.post72-py3.8.egg (34.1 kB view details)

Uploaded Source

actions_includes-0.0.post72-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for actions-includes-0.0.post72.tar.gz
Algorithm Hash digest
SHA256 277cadcb80c2a47ea174edb6f42a17a35c1ebd413627979371af4f7324efbbb5
MD5 5b1a3d5c3f76ecfda95bbd9c04b49209
BLAKE2b-256 c90e9ae155a6844ce9530b87b783f7b7995f91fb47845626bdbc18ca047c355f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post72-py3.9.egg
  • Upload date:
  • Size: 34.1 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.9.2

File hashes

Hashes for actions_includes-0.0.post72-py3.9.egg
Algorithm Hash digest
SHA256 ae654fa84f7cd9726ac858ac04d1bb5b802ac9860cf305ef55f6506563508e61
MD5 409b7523082a3fe716ae335c4d78c652
BLAKE2b-256 161367db9fb5b08192897a7269ce579c40fc85d7f429f84a32da16d6d64dbcef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post72-py3.8.egg
  • Upload date:
  • Size: 34.1 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.post72-py3.8.egg
Algorithm Hash digest
SHA256 f27345dbf4c50f09be30a93611ee18c0f1783879a6d9235a02c7233baf4ddb87
MD5 31e2c2c23e519776d8fe4d701fedbca9
BLAKE2b-256 8562351f60ba888e27abdcd028c56cc0bb24f320c90bae348ba96ff163ec074d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for actions_includes-0.0.post72-py3-none-any.whl
Algorithm Hash digest
SHA256 4506db4f259f5a2c5edba994bafda20cb3ac88595058d3cbcf4be6ff2dd14226
MD5 27d99f814a746f2028d34924bb53af4a
BLAKE2b-256 780e32ea7084a59fe1ac2a09b40b96ce8f4e4079e61263a70aa4f3879bf8df60

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