Skip to content
package

GitHub Action

Build Paclet

v1.11.0 Latest version

Build Paclet

package

Build Paclet

Build a paclet using its definition notebook file

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Build Paclet

uses: WolframResearch/[email protected]

Learn more about this action in WolframResearch/build-paclet

Choose a version

The Build Paclet action is an interface to the BuildPaclet function from Wolfram/PacletCICD and can be used to build your Wolfram Language paclet from source code within GitHub Actions. This is roughly equivalent to using the Build > All menu item from the resource definition notebook within Wolfram Desktop or Mathematica.

Usage

A YAML file that uses this action can be automatically generated for your paclet using WorkflowExport:

PacletSymbol["Wolfram/PacletCICD", "WorkflowExport"]["path/to/paclet", "Build"]

Alternatively, using GitHub actions YAML syntax directly:

name: Build Paclet
on: [push]
jobs: 
  Build: 
    name: Build Paclet
    runs-on: ubuntu-latest
    container: 
      image: wolframresearch/wolframengine:latest
      options: --user root
    env: 
      WOLFRAMSCRIPT_ENTITLEMENTID: ${{ secrets.WOLFRAMSCRIPT_ENTITLEMENTID }}
    steps: 
    - name: Checkout repository
      uses: actions/checkout@v2
    - name: Build paclet
      uses: WolframResearch/build-paclet@v1
    - name: UploadArtifact
      uses: actions/upload-artifact@v3
      with: 
        path: ${{ env.PACLET_BUILD_DIR }} # set during the build-paclet step

Parameters

Input Default Description
check true Whether to check the paclet for errors prior to building
target "Submit" The named configuration to use for error checking when check is true. Some possible values are "Build", "Check", "Deploy", and "Submit".
definition_notebook "./ResourceDefinition.nb" The relative path to the paclet's resource definition notebook
paclet_cicd_version "latest" The version of PacletCICD to use

Notes

For this action to work, your repository needs to have a license entitlement ID defined as a repository secret. See this tutorial for details.

See Also