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

Uploaded Source

Built Distributions

actions_includes-0.0.post102-py3.9.egg (53.4 kB view details)

Uploaded Source

actions_includes-0.0.post102-py3.8.egg (53.4 kB view details)

Uploaded Source

actions_includes-0.0.post102-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: actions-includes-0.0.post102.tar.gz
  • Upload date:
  • Size: 34.5 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.post102.tar.gz
Algorithm Hash digest
SHA256 139f3a372599651e9a7da68aedaefbfaf234053b4b146eda164dda819d3bd982
MD5 5ab9476a6de5cf3efcfb9017310101a4
BLAKE2b-256 69f2d1a9f904ab5e9440520dc925461f09e81e1da7e16bb7022993cdecbdda5a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post102-py3.9.egg
  • Upload date:
  • Size: 53.4 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.post102-py3.9.egg
Algorithm Hash digest
SHA256 30d59e3500332abd2bdb5c3d5b179dc13dc79c226eb2981ae26f6c787e8e434c
MD5 3a1c457efaf075d868044e995b79a1d8
BLAKE2b-256 0195f5c2d8531b2d4c499933a9de21c6deb98b669043053985f3de4841d193e2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post102-py3.8.egg
  • Upload date:
  • Size: 53.4 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.post102-py3.8.egg
Algorithm Hash digest
SHA256 23db464dc5923101fe5b193a0816597ddd72f0339811063741e063f1357528f5
MD5 2c1d0ebc20327f908550e606a54f75d5
BLAKE2b-256 1915d497591efb1d4ed028950bd5d6879b0e8a3e862d04add1bb5f0de42a03af

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post102-py3-none-any.whl
  • Upload date:
  • Size: 28.8 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.post102-py3-none-any.whl
Algorithm Hash digest
SHA256 5b6dcc837d3ef2dcc8875dbc11877a53b4d10c0d3b0ab23cf834d5a409d9cded
MD5 26cfbe5ed1c9f214e751dd6c39557683
BLAKE2b-256 dbfe22e3bb237eb94e8474f1f50b2809a753f9bff42c0d6f8df98331e808eb66

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