Detect changed Tessl tiles, derive semantic version bumps from Conventional Commits, review and lint each changed tile, then publish to the Tessl registry. It can also commit the published tile.json version bumps back to the repo as github-actions[bot].
The action is implemented in TypeScript with the official GitHub Actions toolkit packages such as @actions/core, @actions/exec, and @actions/github, and is bundled with Vite+ via vp pack.
- Publishes only changed tiles on
push - Publishes all tiles on
workflow_dispatch - Maps changed files back to the nearest owning
tile.json - Derives the next bump per tile from commit messages:
BREAKING CHANGE:ortype(scope)!:->majorfeat:->minor- everything else ->
patch
- Probes
tessl tile publish --dry-runand keeps incrementing patch versions until Tessl accepts a free version - Commits published
tile.jsonversion bumps back to the current branch by default withgithub-actions[bot]and a skip-CI commit message
- Run
actions/checkoutbefore this action - Run
tesslio/setup-tesslbefore this action - Add a repository secret named
TESSL_TOKENin the consumer repo and pass it totesslio/setup-tessl
name: Publish Skills
on:
push:
branches:
- main
paths:
- "skills/**"
workflow_dispatch:
permissions:
contents: write
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Tessl
uses: tesslio/setup-tessl@v2
with:
token: ${{ secrets.TESSL_TOKEN }}
- name: Publish changed tiles
uses: uinaf/tessl-publish-action@v2.0.0
with:
review-threshold: "90"| Name | Default | Description |
|---|---|---|
working-directory |
. |
Repository root to operate from |
skills-root |
skills |
Root directory containing tile folders |
review-threshold |
90 |
Threshold passed to tessl skill review --threshold |
dry-run-max-attempts |
50 |
Max version attempts per tile before giving up |
publish-all |
false |
Force publishing all tiles regardless of event diff |
commit-version-bumps |
true |
Commit published tile.json version bumps back to the branch |
version-bump-commit-message |
chore: sync published tile versions [skip ci] |
Commit message used for the bot-authored version bump sync commit |
| Name | Description |
|---|---|
tiles |
JSON array of tile directories selected for this run |
versions |
JSON object of successfully published tile versions keyed by tile directory |
failures |
JSON array of per-tile failures |
This repo uses Vite+ for local verification and packaging:
vp installvp checkvp testvp packvp run release
semantic-release still owns tag and GitHub Release creation on main, with releases created by github-actions[bot]. Consumer repos should pin either an explicit release tag such as @v2.0.0 or the full commit SHA that backs that release.