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

The shell parameter is deduced from the file extension, but it is possible to use a custom shell by setting the shell parameter manually.

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

Uploaded Source

Built Distributions

actions_includes-0.0.post114-py3.9.egg (54.7 kB view details)

Uploaded Source

actions_includes-0.0.post114-py3.8.egg (54.8 kB view details)

Uploaded Source

actions_includes-0.0.post114-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: actions-includes-0.0.post114.tar.gz
  • Upload date:
  • Size: 36.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for actions-includes-0.0.post114.tar.gz
Algorithm Hash digest
SHA256 8745dd83d8c259acb89ac7af0b54f672eaa0d980189e8b3ec028bdf796ded8f6
MD5 a8772c4a08060eec2f3c29e4148f017e
BLAKE2b-256 4cbd1daf3d9e882b1c6b17c580e1e75fd430032613ad76d29efa2c71f7ea6d8d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post114-py3.9.egg
  • Upload date:
  • Size: 54.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for actions_includes-0.0.post114-py3.9.egg
Algorithm Hash digest
SHA256 3a320200383dd9ef2c1bbfa40fe3cfe5338e6286d76fcc7900f19ac43182e8e4
MD5 8d52d249b9e3243cce875ed9947f20b4
BLAKE2b-256 f7bc60429b08eecfd074f3e930320e677182f933bcccf9b6f00d5f1f5c75bdd0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post114-py3.8.egg
  • Upload date:
  • Size: 54.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for actions_includes-0.0.post114-py3.8.egg
Algorithm Hash digest
SHA256 ecfe71db6e8133939255a3520225d06f6789a40e9c529a8b903b6adc10fce575
MD5 249e1de86664b0e77ee19465bebfcf4c
BLAKE2b-256 053e6702ad9b87dde2ed5752f7f5299f71e17e35669ff989215d7b11e1ad1f12

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post114-py3-none-any.whl
  • Upload date:
  • Size: 29.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for actions_includes-0.0.post114-py3-none-any.whl
Algorithm Hash digest
SHA256 30958f88247727d1417828cd02f32e9b6953749c8c418d368788ccf9780545b7
MD5 9570990b4965aa1f346d6ac6c1bd6eb6
BLAKE2b-256 987955be69eb039b6b4d760eaed0350d48800679e83dda9e04244e6537ccecfe

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