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.post90.tar.gz (30.1 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.post90-py3.9.egg (42.9 kB view details)

Uploaded Egg

actions_includes-0.0.post90-py3.8.egg (43.0 kB view details)

Uploaded Egg

actions_includes-0.0.post90-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for actions-includes-0.0.post90.tar.gz
Algorithm Hash digest
SHA256 27e8175dc2cda952069bed73cb396307d886b036a240c68ef87fc2832e97c3ba
MD5 9bf748e6d3932e60b68ebeab08afb823
BLAKE2b-256 1471da6db5b5318d4fad8f51a51a8b44d8dc58a1d1a9b536c4a24a5839b6cb86

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post90-py3.9.egg
  • Upload date:
  • Size: 42.9 kB
  • Tags: Egg
  • Uploaded using 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

File hashes

Hashes for actions_includes-0.0.post90-py3.9.egg
Algorithm Hash digest
SHA256 fafd14ef9767a421cb078bc6fe5b7f9a8a0676580e0f636e2b23540e101b319d
MD5 44019c0dc56b6c899166789c5a49d39b
BLAKE2b-256 5bdc7b9d39af948ee5d66f443d917f1a18b0a37f7055bc2d1132e6d20d08bb1c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post90-py3.8.egg
  • Upload date:
  • Size: 43.0 kB
  • Tags: Egg
  • Uploaded using 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

File hashes

Hashes for actions_includes-0.0.post90-py3.8.egg
Algorithm Hash digest
SHA256 b63c13731b78db8e758249a28ce31f53921b932e373a1768b76e081d5afd5193
MD5 70522e6f1ba13f479772624f266b204c
BLAKE2b-256 8d7de4cb94ad7b1d349a358981871447754a4c38f52cc6acbc6684e65e768171

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post90-py3-none-any.whl
  • Upload date:
  • Size: 24.2 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.2 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for actions_includes-0.0.post90-py3-none-any.whl
Algorithm Hash digest
SHA256 46ccdc62937bd7ce47ea69647521aa49aedfc10312e2ff623392cbb37bf7b543
MD5 6de4081e4b983bec2cbd580a1e352f35
BLAKE2b-256 4754311c61872456c9176fefd8198d5ffb2189395cb46fbafcba310d2b1bfe87

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