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

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

Uploaded Source

Built Distributions

actions_includes-0.0.post60-py3.9.egg (18.4 kB view details)

Uploaded Source

actions_includes-0.0.post60-py3.8.egg (18.4 kB view details)

Uploaded Source

actions_includes-0.0.post60-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: actions-includes-0.0.post60.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.7

File hashes

Hashes for actions-includes-0.0.post60.tar.gz
Algorithm Hash digest
SHA256 af9d8c2a9b0696adc26be8d8deed22cc792f6f54dd1f7a8ca772395aa7142e80
MD5 e762204804f0d579063bc4587546846e
BLAKE2b-256 095b6bc85b166328dd247ceb7da899ebb385f5d7fba9a4f3aac558f1bb2c2a84

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post60-py3.9.egg
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.1

File hashes

Hashes for actions_includes-0.0.post60-py3.9.egg
Algorithm Hash digest
SHA256 9b0c5fb5d980bf5e8affb3121d1184ed688d97c6bd8f80f24052da4c0d5d9763
MD5 a8ebc223088e7f721a61339854625e34
BLAKE2b-256 48717e8b2396c85553c162a0e2f34133739c129b73d835aac196ea810c9b841c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post60-py3.8.egg
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.7

File hashes

Hashes for actions_includes-0.0.post60-py3.8.egg
Algorithm Hash digest
SHA256 75193f7ae551533ea00e941403045a95b3c13378468b4d167f80f27fb791726f
MD5 ad8e6e74b83e40d2e3ed9d02c6233710
BLAKE2b-256 76fe24933de4a4aef7901de96e41d4be1a7d4301ba6549affeadbad12012cef9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: actions_includes-0.0.post60-py3-none-any.whl
  • Upload date:
  • Size: 14.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.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.7

File hashes

Hashes for actions_includes-0.0.post60-py3-none-any.whl
Algorithm Hash digest
SHA256 1f997fe274c1203fd62807a7c6180d2489db6ae02a017429d44cf47ff4726598
MD5 bb38b5de39b04fde0ecea5209f435265
BLAKE2b-256 cedf7954b49412a11050160cbe11753bbb0d54e612e0029393032144df1184c1

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