Skip to main content

Tool for flattening include statements in GitHub actions workflow.yml files.

Project description

actions-includes

License GitHub issues PyPI PyPI - Python Version PyPI - Downloads

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.post122.tar.gz (37.7 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.post122-py3.9.egg (56.8 kB view details)

Uploaded Egg

actions_includes-0.0.post122-py3.8.egg (56.8 kB view details)

Uploaded Egg

actions_includes-0.0.post122-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: actions-includes-0.0.post122.tar.gz
  • Upload date:
  • Size: 37.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for actions-includes-0.0.post122.tar.gz
Algorithm Hash digest
SHA256 95fa612e4d77b157367cf210eb09a4d9a25a822532b3098ed448ebba8e0246e2
MD5 994c35a2f91a12e515aa581e2fa47725
BLAKE2b-256 18b784ceb0176df2db67cca35c4f9394f5c6021481305ed5d10af965702c40c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post122-py3.9.egg
  • Upload date:
  • Size: 56.8 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for actions_includes-0.0.post122-py3.9.egg
Algorithm Hash digest
SHA256 eb206cd9ff5b592aa678194d0ed54f315d24818bf02187860409e3edd85ab622
MD5 697f12fafb6f1e583275eb00ed10fb47
BLAKE2b-256 c9ba99bb06289021b20d49a8056d0fb03a4adc86bea82c10615999848151b576

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post122-py3.8.egg
  • Upload date:
  • Size: 56.8 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.8

File hashes

Hashes for actions_includes-0.0.post122-py3.8.egg
Algorithm Hash digest
SHA256 8e49906ff479f2f1ad5f307859cfe22345fd16346fbfc94be8d684c5ad78a646
MD5 4de2fa9d8cad9a0e72499a9b484db651
BLAKE2b-256 ad7b9d37f9c4ad59df8c7df2aff32ab1f84c0f9d6ac19415fc14a07b8f480ce2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post122-py3-none-any.whl
  • Upload date:
  • Size: 30.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for actions_includes-0.0.post122-py3-none-any.whl
Algorithm Hash digest
SHA256 d8e69db761ffac04696b028792c6e7eb2ad7bcae87784c714321a62b641d04b2
MD5 16137577698aac35bb2a194a33411719
BLAKE2b-256 9a40a3a9074603eb71ac13c8f8ddaa6ff2cfc6840aed23a7fbe0967d6c3e4a5b

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