Skip to main content

release-engineers/action-template

Status: Production ready PyPI version

action-template runs the Jinja2 templating engine against any given files during a GitHub workflow, and makes the GitHub context available to it.

Usage

action-template can be used as a GitHub Action;

name: Sample Workflow

on:
  push:
    branches:
      - master

permissions:
  contents: write

jobs:
  templating:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          ref: master
      - uses: release-engineers/action-template@v2
        with:
          source: 'README.md.template'
          target: 'README.md'
      - shell: bash
        run: |
          git config --global --add safe.directory '*'
          git config --local user.name 'github-actions[bot]'
          git config --local user.email 'github-actions[bot]@users.noreply.github.com'
          git add README.md
          if git commit --no-verify -m "docs: Regenerate README.md"; then
            # rebase and push in a retry loop
            for i in {1..5}; do
              git pull --rebase && git push && break || sleep 1
            done
          fi

Features

GitHub Context

The GitHub context available to workflows is also available to templates like so;

{{ github.repository }}

When evaluated becomes:

release-engineers/action-template

Load Files

The example workflow under the Usage paragraph was loaded using;

{{ load('.github/workflows/example.yml') }}

Load JSON

Parse and handle JSON data from files in the working directory like so;

{{ load_json('tests/data/data.json').info.from_json }}

When evaluated becomes:

This text is a JSON value in a file.

Load YAML

Parse and handle YAML data from files in the working directory like so;

{{ load_yaml('tests/data/data.yml').info.from_yaml }}

When evaluated becomes:

This text is a YAML value in a file

Load Markdown Table of Contents as HTML

Parse and obtain a Markdown table of contents from files in the working directory like so;

{{ load_markdown_toc('tests/data/data.md') }}

When evaluated becomes:

<div class="toc">
<ul>
<li><a href="#header-one">Header One</a><ul>
<li><a href="#header-two">Header Two</a><ul>
<li><a href="#header-three">Header Three</a></li>
<li><a href="#header-three-two">Header Three, Two</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>

Load Markdown Table of Contents as data

Parse and handle Markdown table of contents data from files in the working directory like so;

{{ load_markdown_toc_tokens('tests/data/data.md') }}

When evaluated becomes:

[{'level': 1, 'id': 'header-one', 'name': 'Header One', 'children': [{'level': 2, 'id': 'header-two', 'name': 'Header Two', 'children': [{'level': 3, 'id': 'header-three', 'name': 'Header Three', 'children': []}, {'level': 3, 'id': 'header-three-two', 'name': 'Header Three, Two', 'children': []}]}]}]

Contributing

This is a Python Poetry project using Fire. See Poetry for more information.

Development requires:

This project was created using template-poetry.

Metadata

Release files for re-action-template 2.1.3

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

Built distribution (wheel)

Table of built distributions (wheels) for re-action-template 2.1.3
File Interpreter ABI Platform
re_action_template-2.1.3-py3-none-any.whl Python 3 none any Details

Release files / re_action_template-2.1.3-py3-none-any.whl

Download URL re_action_template-2.1.3-py3-none-any.whl
Size 14.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
03f881662487c58a01d12a2c0186f9640b2d2ec51f7a25bfd3191b00b5ed64d8
BLAKE2b-256 checksum
How to use checksums
e241a4255ed2ca69ce5a0579923520878089cd873ef7d9dc53f50ccfbb4e3976
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.4 Linux/5.15.0-1041-azure

Release history Release notifications | RSS feed

This release

2.1.3 This release

1 release file

2.1.2

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.3

1 release file

2.0.2

1 release file

2.0.1

1 release file

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