Skip to main content

update-workflows

PyPI Changelog Tests License

Run this tool to update .github/workflows/*.yml files based on a configuration file.

Usage

python -m update_workflows

This reads .github/workflows.yml which contains references to workflow templates:

- simonw/python-test
- simonw/python-publish

Or with custom filenames:

test: simonw/python-test
publish: simonw/python-publish

The command will fetch the latest version of each workflow from the simonw/actions-workflows repository and update the corresponding files in .github/workflows/.

List Format

When using the list format, the workflow filename is derived from the template name:

- simonw/python-test

This creates/updates .github/workflows/python-test.yml

Dict Format

When using the dict format, you specify custom filenames:

test: simonw/python-test
publish: simonw/python-publish

This creates/updates:

  • .github/workflows/test.yml
  • .github/workflows/publish.yml

CLI Options

Basic Options

# Dry-run mode (shows what would be updated)
python -m update_workflows --dry-run

Bulk Operations

# Process all projects in current directory and subdirectories
# (finds all directories with .github/workflows.yml)
python -m update_workflows --all

# Process all projects with dry-run
python -m update_workflows --all --dry-run

Git Integration

# Update and commit changes with auto-generated message
python -m update_workflows --commit

# Update, commit, and push changes
python -m update_workflows --push

# Process all projects, committing and pushing updates
python -m update_workflows --all --push

The --commit option automatically generates commit messages in the format:

update-workflows: test.yml, publish.yml

The --push option implies --commit, so you don't need to specify both.

Note: You cannot use --commit or --push with --dry-run.

Example: Bulk Update Multiple Projects

If you have a directory structure like:

dev/
  my-project-1/
    .github/workflows.yml
    .github/workflows/test.yml
  my-project-2/
    .github/workflows.yml
    .github/workflows/publish.yml

Run this from the dev/ directory:

cd dev
python -m update_workflows --all --push

This will:

  1. Find all projects with .github/workflows.yml
  2. Update the workflow files in each project
  3. Commit the changes in each project's git repository
  4. Push the commits to each project's remote

Release files for update-workflows 0.2

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

Source distribution (sdist)

Source distribution for update-workflows 0.2
File Size Uploaded
update_workflows-0.2.tar.gz 12.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for update-workflows 0.2
File Interpreter ABI Platform
update_workflows-0.2-py3-none-any.whl Python 3 none any Details

Total release size: 22.2 kB

Release files / update_workflows-0.2.tar.gz

Download URL update_workflows-0.2.tar.gz
Size 12.2 kB
Tags Source
SHA-256 checksum
How to use checksums
dc9564917d972a580d6d1bcd6e1646b5c557511d38d0fcf5a606128f16171e78
BLAKE2b-256 checksum
How to use checksums
e20c8fe69ecea016e9a731596983a648e4ed1b6a035a2a7fea670779d3c8d692
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 17, 2025.

Transparency log

Release files / update_workflows-0.2-py3-none-any.whl

Download URL update_workflows-0.2-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e784c1544b08a3e453016cc4677f577b9009ad4d5e48afd5aa04447172d07986
BLAKE2b-256 checksum
How to use checksums
5cf90a617d921f98dfc25e50623494bc1e9d3015eeb901e75e01829390b7c709
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 17, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.2 This release

2 release files

0.1

2 release files

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