agentsclimarketplace

Runtime github actions

Skill ortus-boxlang/skills/boxlang-developer/runtime-github-actions

Use this skill when setting up GitHub Actions CI/CD pipelines for BoxLang projects, including the setup-boxlang action, supported inputs/outputs, installing modules, CommandBox integration, multi-engine testing, and complete workflow templates.From its SKILL.md

Install
npx -y skills add ortus-boxlang/skills --skill runtime-github-actions

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.9 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it

BoxLang in GitHub Actions

Overview

The ortus-boxlang/setup-boxlang@main action installs and configures BoxLang (and optionally CommandBox) in a GitHub Actions runner. It handles version resolution, optional module installation, ForgeBox authentication and module caching.


Quick Setup

- name: Setup BoxLang
  uses: ortus-boxlang/setup-boxlang@main
  with:
    version: latest          # or "snapshot" or "1.x.y"

Action Inputs

InputDefaultDescription
versionlatestBoxLang version: latest, snapshot, or semver 1.2.3
modulesSpace-separated list of BoxLang modules to install
with-commandboxfalseAlso install CommandBox CLI
commandbox_versionlatestCommandBox version: latest or semver
commandbox_modulesComma-separated CommandBox modules
forgeboxAPIKeyForgeBox API key for private modules or higher rate limits
boxlang_home~/.boxlangOverride BoxLang home directory

Action Outputs

OutputDescription
boxlang-versionBoxLang version installed
installation-pathPath to the BoxLang installation directory

Basic Workflow — Run Scripts

name: CI

on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup BoxLang
        uses: ortus-boxlang/setup-boxlang@main
        with:
          version: latest

      - name: Run tests
        run: boxlang tests/run.bxs

Installing BoxLang Modules

- name: Setup BoxLang with modules
  uses: ortus-boxlang/setup-boxlang@main
  with:
    version: latest
    modules: bx-compat-cfml bx-mail bx-pdf

CommandBox + TestBox Integration

name: TestBox CI

on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup BoxLang + CommandBox
        uses: ortus-boxlang/setup-boxlang@main
        with:
          version: latest
          with-commandbox: true
          commandbox_modules: testbox-cli

      - name: Install dependencies
        run: box install

      - name: Run TestBox
        run: box testbox run reporter=json outputFile=./test-results.json

      - name: Upload test results
        uses: actions/upload-artifact@v4
        with:
          name: test-results
          path: test-results.json

Multi-Platform Matrix

name: Cross-Platform CI

on: [push, pull_request]

jobs:
  test:
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        boxlang-version: [latest, snapshot]

    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4

      - name: Setup BoxLang
        uses: ortus-boxlang/setup-boxlang@main
        with:
          version: ${{ matrix.boxlang-version }}

      - name: Run tests
        run: boxlang tests/run.bxs

Private Modules with ForgeBox API Key

- name: Setup BoxLang
  uses: ortus-boxlang/setup-boxlang@main
  with:
    version: latest
    forgeboxAPIKey: ${{ secrets.FORGEBOX_API_KEY }}
    modules: my-private-module

Snapshot Testing (Nightly Builds)

name: Snapshot Test

on:
  schedule:
    - cron: "0 5 * * *"   # Every day at 05:00 UTC

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup BoxLang snapshot
        uses: ortus-boxlang/setup-boxlang@main
        with:
          version: snapshot

      - name: Run tests
        run: boxlang tests/run.bxs

Full CI/CD Pipeline

name: BoxLang CI/CD

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    env:
      FORGEBOX_API_KEY: ${{ secrets.FORGEBOX_API_KEY }}

    steps:
      - uses: actions/checkout@v4

      - name: Setup BoxLang + CommandBox
        uses: ortus-boxlang/setup-boxlang@main
        id: setup-boxlang
        with:
          version: latest
          with-commandbox: true
          commandbox_modules: testbox-cli
          forgeboxAPIKey: ${{ secrets.FORGEBOX_API_KEY }}
          modules: bx-mail bx-pdf

      - name: Report versions
        run: |
          echo "BoxLang: ${{ steps.setup-boxlang.outputs.boxlang-version }}"
          echo "Install : ${{ steps.setup-boxlang.outputs.installation-path }}"
          box version

      - name: Install project dependencies
        run: box install

      - name: Run unit tests
        run: box testbox run reporter=junit outputFile=./reports/junit.xml

      - name: Upload test report
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: test-report
          path: reports/

  deploy:
    needs: test
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup BoxLang + CommandBox
        uses: ortus-boxlang/setup-boxlang@main
        with:
          version: latest
          with-commandbox: true
          forgeboxAPIKey: ${{ secrets.FORGEBOX_API_KEY }}

      - name: Bump version and publish
        run: box run-script release
        env:
          FORGEBOX_API_KEY: ${{ secrets.FORGEBOX_API_KEY }}

Checklist

  • Use secrets.FORGEBOX_API_KEY instead of hard-coding keys
  • Pin action as ortus-boxlang/setup-boxlang@main (or at a specific SHA for reproducibility)
  • Cache dependencies with actions/cache for faster builds when using CommandBox
  • Upload test results with actions/upload-artifact for visibility
  • Use the snapshot version in a nightly schedule job to catch regressions early

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most ci cd skills give in ~1.5k tokens

Counted across 392 of the 394 authors here whose files we hold, read 2026-08-07

  • Pin third-party actions to full commit SHAsin 34 of 392
  • Cache dependencies appropriatelyin 24 of 392, across 12 files
  • Optimize pipelines exceeding ten minutesin 21 of 392, across 7 files
  • Configure branch protection rulesin 19 of 392, across 5 files
  • Use environments for deployment trackingin 19 of 392, across 7 files
  • Implement manual gates for productionin 19 of 392, across 7 files
  • Implement security scanningin 18 of 392, across 5 files
  • Enforce all quality gates before mergein 18 of 392, across 5 files
  • Fix failing code instead of disabling checksin 18 of 392, across 4 files
  • Use CI/CD variables for secretsin 18 of 392, across 6 files
  • Move checks upstream in the pipelinein 17 of 392, across 3 files
  • Use specific image tagsin 17 of 392, across 5 files

Said here and by no other author read

  • install BoxLang via setup-boxlang action
  • install CommandBox using the with-commandbox input
  • specify BoxLang modules to install
  • pin the setup-boxlang action to a specific SHA
  • test snapshot versions in a nightly job
  • install project dependencies via box install

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,144. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.