Skip to content

uinaf/tessl-publish-action

Repository files navigation

Tessl Publish Action

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.

What It Does

  • 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: or type(scope)!: -> major
    • feat: -> minor
    • everything else -> patch
  • Probes tessl tile publish --dry-run and keeps incrementing patch versions until Tessl accepts a free version
  • Commits published tile.json version bumps back to the current branch by default with github-actions[bot] and a skip-CI commit message

Requirements

  • Run actions/checkout before this action
  • Run tesslio/setup-tessl before this action
  • Add a repository secret named TESSL_TOKEN in the consumer repo and pass it to tesslio/setup-tessl

Usage

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"

Inputs

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

Outputs

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

Releasing This Action

This repo uses Vite+ for local verification and packaging:

  • vp install
  • vp check
  • vp test
  • vp pack
  • vp 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.

About

Reusable GitHub Action to detect changed Tessl tiles, derive semver bumps, review, lint, and publish to the Tessl registry

Resources

Stars

Watchers

Forks

Contributors