A Gleam port of GitHub's actions/toolkit for writing GitHub Actions.
This is a monorepo containing the following packages, each published independently to Hex:
| Package | Description | Targets |
|---|---|---|
pontil |
High-level API for GitHub Actions | JavaScript |
pontil_build |
esbuild bundler for GitHub Actions |
Erlang |
pontil_context |
Execution context and webhook event data | Erlang, JavaScript |
pontil_core |
Core workflow commands and input parsing | Erlang, JavaScript |
pontil_platform |
Runtime, OS, and architecture detection | Erlang, JavaScript |
pontil_summary |
Job summary builder | Erlang, JavaScript |
Most people building GitHub Actions should depend on pontil directly. The
sub-packages exist for use cases that don't need the full toolkit or need Erlang
target support.
Functions in pontil packages are marked with {actions} or {portable} tags.
Functions tagged {actions} only work meaningfully in a GitHub Actions
environment (they depend on variables set by GitHub Actions runners and/or
output to files managed by runners). Functions tagged {portable} may be used
in any environment, although output configuration may be required (see
set_output) and they may perform additional work in a GitHub Actions runner.
Requires Gleam >= 1.14.0 and just.
just dev-start # Switch to path deps for local development
just test # Run all tests
just lint # Lint all packages
just format-check
just dev-end # Restore version constraints before publishing
just dev-check # Verify no path deps remain (CI gate)