Skip to main content

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.

Metadata

Release files for actions-includes 0.0.post91

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for actions-includes 0.0.post91
File Size Uploaded Provenance
actions-includes-0.0.post91.tar.gz 29.9 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for actions-includes 0.0.post91
File Interpreter ABI Platform
actions_includes-0.0.post91-py3.9.egg Legacy Egg format - - Details
actions_includes-0.0.post91-py3.8.egg Legacy Egg format - - Details
actions_includes-0.0.post91-py3-none-any.whl Python 3 none any Details

Total release size: 140.1 kB

Release files / actions-includes-0.0.post91.tar.gz

Download URL actions-includes-0.0.post91.tar.gz
Size 29.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4894036091ee71741feb8c8ac2aa1d012c07b0acad00453b37e8a3cdd90f09a4
BLAKE2b-256 checksum
How to use checksums
bafe5458adb1055351c5ec6077d9f9a257a2d2f5e631821e2577ba2c07ed719a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.2 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

Release files / actions_includes-0.0.post91-py3.9.egg

Download URL actions_includes-0.0.post91-py3.9.egg
Size 42.9 kB
Tags Egg
SHA-256 checksum
How to use checksums
978abec4d911f7c62c6bbef93ee3caa6f2f93d3084493bef9c274b92f88cf9da
BLAKE2b-256 checksum
How to use checksums
f0e3c211e93f759295ace574d01aef2695b92e9f58bd5e4f581f4e9cf4b409c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.2 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

Release files / actions_includes-0.0.post91-py3.8.egg

Download URL actions_includes-0.0.post91-py3.8.egg
Size 43.0 kB
Tags Egg
SHA-256 checksum
How to use checksums
f9f77463a66f71ee78638ecccbab27c24f1a3648e637e07807c65e7cfc633fe0
BLAKE2b-256 checksum
How to use checksums
2f2d13b873969b0e226540a484a0e3e54260bc77fe7bb7b4003237acdb47f6de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.2 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

Release files / actions_includes-0.0.post91-py3-none-any.whl

Download URL actions_includes-0.0.post91-py3-none-any.whl
Size 24.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6180daf893381b7eefb4f1a27e3e791ab053f7d65a428d319ae25f6f00415050
BLAKE2b-256 checksum
How to use checksums
5b9da3aa6088ae116288f914e998e8ed40cc26c551b489dfd9cf7a6583ecebaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.2 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

Security for actions-includes 0.0.post91

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.post91 This release

4 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page