Wolfram/PacletCICD

(0.32.0) current version: 0.36.0 »

Continuous integration and deployment for Wolfram Language paclets

Contributed By: Richard Hennigan

PacletCICD is a collection of utilities to help set up automated workflows for continuous integration and continuous deployment of Wolfram Language paclets. This paclet contains the underlying code that powers the check-paclet and build-paclet actions on the GitHub Marketplace.

Installation Instructions

To install this paclet in your Wolfram Language environment, evaluate this code:
PacletInstall["Wolfram/PacletCICD"]

Paclet Guide

Examples

GitHub Actions (4) 

PacletCICD functions can be used indirectly via the build-paclet and check-paclet GitHub Marketplace actions.

These actions can also be automatically configured for your paclet by using WorkflowExport:

Paclet Checking (2) 

Automatically check paclets for potential issues in a GitHub CI/CD workflow:

In[1]:=
InterpretationBox[FrameBox[TagBox[TooltipBox[PaneBox[GridBox[List[List[GraphicsBox[List[Thickness[0.015384615384615385`], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[19.29685914516449`, 56.875006675720215`], List[32.49997329711914`, 64.49218791723251`], List[45.70308744907379`, 56.875006675720215`], List[32.49997329711914`, 49.257825434207916`], List[19.29685914516449`, 56.875006675720215`]], List[List[21.328107476234436`, 56.875006675720215`], List[32.49997329711914`, 63.32422015108166`], List[43.671839118003845`, 56.875006675720215`], List[32.49997329711914`, 50.42579283714326`], List[21.328107476234436`, 56.875006675720215`]], List[List[33.00778537988663`, 33.26174482703209`], List[33.00778537988663`, 48.496107310056686`], List[46.21089953184128`, 56.113288551568985`], List[46.21089953184128`, 40.87892606854439`], List[33.00778537988663`, 33.26174482703209`]]]]], List[FaceForm[RGBColor[0.7019607843137254`, 0.6039215686274509`, 0.788235294117647`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[31.992161214351654`, 33.26174482703209`], List[18.789047062397003`, 40.87892606854439`], List[18.789047062397003`, 56.113288551568985`], List[31.992161214351654`, 48.496107310056686`], List[31.992161214351654`, 33.26174482703209`]]]]], List[FaceForm[RGBColor[0.5372549019607843`, 0.403921568627451`, 0.6745098039215687`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[17.77342289686203`, 8.886764854192734`], List[4.570308744907379`, 16.503946095705032`], List[4.570308744907379`, 31.73830857872963`], List[17.77342289686203`, 24.12112733721733`], List[17.77342289686203`, 8.886764854192734`]], List[List[16.757798731327057`, 10.664107143878937`], List[5.585932910442352`, 17.113319045306525`], List[5.585932910442352`, 29.960966289043427`], List[16.757798731327057`, 23.511754387615838`], List[16.757798731327057`, 10.664107143878937`]], List[List[31.484349131584167`, 32.50002670288086`], List[18.281234979629517`, 40.11720794439316`], List[5.078120827674866`, 32.50002670288086`], List[18.281234979629517`, 24.88284546136856`], List[31.484349131584167`, 32.50002670288086`]]]]], List[FaceForm[RGBColor[0.6352941176470588`, 0.7333333333333333`, 0.8313725490196079`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[31.992161214351654`, 31.73830857872963`], List[18.789047062397003`, 24.12112733721733`], List[18.789047062397003`, 8.886764854192734`], List[31.992161214351654`, 16.503946095705032`], List[31.992161214351654`, 31.73830857872963`]]]]], List[FaceForm[RGBColor[0.2901960784313726`, 0.40784313725490196`, 0.5764705882352941`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[47.22652369737625`, 8.886764854192734`], List[47.22652369737625`, 24.12112733721733`], List[60.4296378493309`, 31.73830857872963`], List[60.4296378493309`, 16.503946095705032`], List[47.22652369737625`, 8.886764854192734`]], List[List[48.242147862911224`, 10.664107143878937`], List[48.242147862911224`, 23.511754387615838`], List[59.41401368379593`, 29.960966289043427`], List[59.41401368379593`, 17.113319045306525`], List[48.242147862911224`, 10.664107143878937`]], List[List[33.515597462654114`, 32.50002670288086`], List[46.718711614608765`, 40.11720794439316`], List[59.921825766563416`, 32.50002670288086`], List[46.718711614608765`, 24.88284546136856`], List[33.515597462654114`, 32.50002670288086`]]]]], List[FaceForm[RGBColor[0.6`, 0.6`, 0.37254901960784315`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[33.00778537988663`, 31.73830857872963`], List[33.00778537988663`, 16.503946095705032`], List[46.21089953184128`, 8.886764854192734`], List[46.21089953184128`, 24.12112733721733`], List[33.00778537988663`, 31.73830857872963`]]]]], List[FaceForm[RGBColor[0.396078431372549`, 0.6039215686274509`, 0.30196078431372547`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[5.585932910442352`, 35.03908711671829`], List[5.585932910442352`, 47.88673242330583`], List[16.757798731327057`, 54.33594626188278`], List[16.757798731327057`, 41.488300955295244`], List[5.585932910442352`, 35.03908711671829`]], List[List[4.570308744907379`, 33.26174482703209`], List[4.570308744907379`, 48.496107310056686`], List[17.77342289686203`, 56.113288551568985`], List[17.77342289686203`, 40.87892606854439`], List[4.570308744907379`, 33.26174482703209`]], List[List[60.4296378493309`, 33.26174482703209`], List[47.22652369737625`, 40.87892606854439`], List[47.22652369737625`, 56.113288551568985`], List[60.4296378493309`, 48.496107310056686`], List[60.4296378493309`, 33.26174482703209`]], List[List[59.41401368379593`, 35.03908711671829`], List[48.242147862911224`, 41.488300955295244`], List[48.242147862911224`, 54.33594626188278`], List[59.41401368379593`, 47.88673242330583`], List[59.41401368379593`, 35.03908711671829`]], List[List[19.29685914516449`, 8.125046730041504`], List[32.49997329711914`, 15.742227971553802`], List[45.70308744907379`, 8.125046730041504`], List[32.49997329711914`, 0.5078654885292053`], List[19.29685914516449`, 8.125046730041504`]], List[List[21.328107476234436`, 8.125046730041504`], List[32.49997329711914`, 14.574258631469093`], List[43.671839118003845`, 8.125046730041504`], List[32.49997329711914`, 1.6758348286139153`], List[21.328107476234436`, 8.125046730041504`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[7.109369158744812`, 32.50002670288086`], List[7.109369158744812`, 31.097747524374427`], List[5.972591313425198`, 29.960966289043427`], List[4.570308744907379`, 29.960966289043427`], List[3.168024481383867`, 29.960966289043427`], List[2.0312483310699463`, 31.097747524374427`], List[2.0312483310699463`, 32.50002670288086`], List[2.0312483310699463`, 33.90230975568602`], List[3.168024481383867`, 35.03908711671829`], List[4.570308744907379`, 35.03908711671829`], List[5.972591313425198`, 35.03908711671829`], List[7.109369158744812`, 33.90230975568602`], List[7.109369158744812`, 32.50002670288086`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[20.82029539346695`, 56.36719459295273`], List[20.82029539346695`, 54.96491250872225`], List[19.683518032434677`, 53.828134179115295`], List[18.281234979629517`, 53.828134179115295`], List[16.878951926824357`, 53.828134179115295`], List[15.742174565792084`, 54.96491250872225`], List[15.742174565792084`, 56.36719459295273`], List[15.742174565792084`, 57.76947716147055`], List[16.878951926824357`, 58.90625500679016`], List[18.281234979629517`, 58.90625500679016`], List[19.683518032434677`, 58.90625500679016`], List[20.82029539346695`, 57.76947716147055`], List[20.82029539346695`, 56.36719459295273`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[20.82029539346695`, 40.625020027160645`], List[20.82029539346695`, 39.222736974355485`], List[19.683518032434677`, 38.08595961332321`], List[18.281234979629517`, 38.08595961332321`], List[16.878951926824357`, 38.08595961332321`], List[15.742174565792084`, 39.222736974355485`], List[15.742174565792084`, 40.625020027160645`], List[15.742174565792084`, 42.027303079965804`], List[16.878951926824357`, 43.16408044099808`], List[18.281234979629517`, 43.16408044099808`], List[19.683518032434677`, 43.16408044099808`], List[20.82029539346695`, 42.027303079965804`], List[20.82029539346695`, 40.625020027160645`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[20.82029539346695`, 24.375033378601074`], List[20.82029539346695`, 22.97275420009464`], List[19.683518032434677`, 21.83597296476364`], List[18.281234979629517`, 21.83597296476364`], List[16.878951926824357`, 21.83597296476364`], List[15.742174565792084`, 22.97275420009464`], List[15.742174565792084`, 24.375033378601074`], List[15.742174565792084`, 25.777316431406234`], List[16.878951926824357`, 26.914093792438507`], List[18.281234979629517`, 26.914093792438507`], List[19.683518032434677`, 26.914093792438507`], List[20.82029539346695`, 25.777316431406234`], List[20.82029539346695`, 24.375033378601074`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[20.82029539346695`, 8.63285881280899`], List[20.82029539346695`, 7.230591257198739`], List[19.683518032434677`, 6.093798398971558`], List[18.281234979629517`, 6.093798398971558`], List[16.878951926824357`, 6.093798398971558`], List[15.742174565792084`, 7.230591257198739`], List[15.742174565792084`, 8.63285881280899`], List[15.742174565792084`, 10.035130242717969`], List[16.878951926824357`, 11.171919226646423`], List[18.281234979629517`, 11.171919226646423`], List[19.683518032434677`, 11.171919226646423`], List[20.82029539346695`, 10.035130242717969`], List[20.82029539346695`, 8.63285881280899`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[35.03903371095657`, 48.75001335144043`], List[35.03903371095657`, 47.34773029863527`], List[33.90225247562557`, 46.210952937603`], List[32.49997329711914`, 46.210952937603`], List[31.09769024431398`, 46.210952937603`], List[29.960912883281708`, 47.34773029863527`], List[29.960912883281708`, 48.75001335144043`], List[29.960912883281708`, 50.15229543567091`], List[31.09769024431398`, 51.28907376527786`], List[32.49997329711914`, 51.28907376527786`], List[33.90225247562557`, 51.28907376527786`], List[35.03903371095657`, 50.15229543567091`], List[35.03903371095657`, 48.75001335144043`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[35.03903371095657`, 32.50002670288086`], List[35.03903371095657`, 31.097747524374427`], List[33.90225247562557`, 29.960966289043427`], List[32.49997329711914`, 29.960966289043427`], List[31.09769024431398`, 29.960966289043427`], List[29.960912883281708`, 31.097747524374427`], List[29.960912883281708`, 32.50002670288086`], List[29.960912883281708`, 33.90230975568602`], List[31.09769024431398`, 35.03908711671829`], List[32.49997329711914`, 35.03908711671829`], List[33.90225247562557`, 35.03908711671829`], List[35.03903371095657`, 33.90230975568602`], List[35.03903371095657`, 32.50002670288086`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[35.03903371095657`, 16.25004005432129`], List[35.03903371095657`, 14.847760875814856`], List[33.90225247562557`, 13.710979640483856`], List[32.49997329711914`, 13.710979640483856`], List[31.09769024431398`, 13.710979640483856`], List[29.960912883281708`, 14.847760875814856`], List[29.960912883281708`, 16.25004005432129`], List[29.960912883281708`, 17.65232310712645`], List[31.09769024431398`, 18.789100468158722`], List[32.49997329711914`, 18.789100468158722`], List[33.90225247562557`, 18.789100468158722`], List[35.03903371095657`, 17.65232310712645`], List[35.03903371095657`, 16.25004005432129`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[49.2577720284462`, 56.36719459295273`], List[49.2577720284462`, 54.96491250872225`], List[48.1209907931152`, 53.828134179115295`], List[46.718711614608765`, 53.828134179115295`], List[45.316428561803605`, 53.828134179115295`], List[44.17965120077133`, 54.96491250872225`], List[44.17965120077133`, 56.36719459295273`], List[44.17965120077133`, 57.76947716147055`], List[45.316428561803605`, 58.90625500679016`], List[46.718711614608765`, 58.90625500679016`], List[48.1209907931152`, 58.90625500679016`], List[49.2577720284462`, 57.76947716147055`], List[49.2577720284462`, 56.36719459295273`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[49.2577720284462`, 40.625020027160645`], List[49.2577720284462`, 39.222736974355485`], List[48.1209907931152`, 38.08595961332321`], List[46.718711614608765`, 38.08595961332321`], List[45.316428561803605`, 38.08595961332321`], List[44.17965120077133`, 39.222736974355485`], List[44.17965120077133`, 40.625020027160645`], List[44.17965120077133`, 42.027303079965804`], List[45.316428561803605`, 43.16408044099808`], List[46.718711614608765`, 43.16408044099808`], List[48.1209907931152`, 43.16408044099808`], List[49.2577720284462`, 42.027303079965804`], List[49.2577720284462`, 40.625020027160645`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[49.2577720284462`, 24.375033378601074`], List[49.2577720284462`, 22.97275420009464`], List[48.1209907931152`, 21.83597296476364`], List[46.718711614608765`, 21.83597296476364`], List[45.316428561803605`, 21.83597296476364`], List[44.17965120077133`, 22.97275420009464`], List[44.17965120077133`, 24.375033378601074`], List[44.17965120077133`, 25.777316431406234`], List[45.316428561803605`, 26.914093792438507`], List[46.718711614608765`, 26.914093792438507`], List[48.1209907931152`, 26.914093792438507`], List[49.2577720284462`, 25.777316431406234`], List[49.2577720284462`, 24.375033378601074`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[49.2577720284462`, 8.63285881280899`], List[49.2577720284462`, 7.230591257198739`], List[48.1209907931152`, 6.093798398971558`], List[46.718711614608765`, 6.093798398971558`], List[45.316428561803605`, 6.093798398971558`], List[44.17965120077133`, 7.230591257198739`], List[44.17965120077133`, 8.63285881280899`], List[44.17965120077133`, 10.035130242717969`], List[45.316428561803605`, 11.171919226646423`], List[46.718711614608765`, 11.171919226646423`], List[48.1209907931152`, 11.171919226646423`], List[49.2577720284462`, 10.035130242717969`], List[49.2577720284462`, 8.63285881280899`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[62.968698263168335`, 32.50002670288086`], List[62.968698263168335`, 31.097747524374427`], List[61.83190540494115`, 29.960966289043427`], List[60.4296378493309`, 29.960966289043427`], List[59.027366419421924`, 29.960966289043427`], List[57.89057743549347`, 31.097747524374427`], List[57.89057743549347`, 32.50002670288086`], List[57.89057743549347`, 33.90230975568602`], List[59.027366419421924`, 35.03908711671829`], List[60.4296378493309`, 35.03908711671829`], List[61.83190540494115`, 35.03908711671829`], List[62.968698263168335`, 33.90230975568602`], List[62.968698263168335`, 32.50002670288086`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]]], List[Rule[BaselinePosition, Scaled[0.15`]], Rule[ImageSize, 10], Rule[ImageSize, List[Automatic, 35]]]], StyleBox[RowBox[List["WorkflowExport", " "]], Rule[ShowAutoStyles, False], Rule[ShowStringCharacters, False], Rule[FontSize, Times[0.9`, Inherited]], Rule[FontColor, GrayLevel[0.1`]]]]], Rule[GridBoxSpacings, List[Rule["Columns", List[List[0.25`]]]]]], Rule[Alignment, List[Left, Baseline]], Rule[BaselinePosition, Baseline], Rule[FrameMargins, List[List[3, 0], List[0, 0]]], Rule[BaseStyle, List[Rule[LineSpacing, List[0, 0]], Rule[LineBreakWithin, False]]]], RowBox[List["PacletSymbol", "[", RowBox[List["\"Wolfram/PacletCICD\"", ",", "\"WorkflowExport\""]], "]"]], Rule[TooltipStyle, List[Rule[ShowAutoStyles, True], Rule[ShowStringCharacters, True]]]], Function[Annotation[Slot[1], Style[Defer[PacletSymbol["Wolfram/PacletCICD", "WorkflowExport"]], Rule[ShowStringCharacters, True]], "Tooltip"]]], Rule[Background, RGBColor[0.968`, 0.976`, 0.984`]], Rule[BaselinePosition, Baseline], Rule[DefaultBaseStyle, List[]], Rule[FrameMargins, List[List[0, 0], List[1, 1]]], Rule[FrameStyle, RGBColor[0.831`, 0.847`, 0.85`]], Rule[RoundingRadius, 4]], PacletSymbol["Wolfram/PacletCICD", "WorkflowExport"], Rule[Selectable, False], Rule[SelectWithContents, True], Rule[BoxID, "PacletSymbolBox"]]["path/to/paclet", "Check"]
Out[1]=

Generate code annotations automatically for viewing changes:

Automatic Releases (2) 

Create a release workflow in the form of a GitHub Actions YAML file for a paclet:

In[2]:=
InterpretationBox[FrameBox[TagBox[TooltipBox[PaneBox[GridBox[List[List[GraphicsBox[List[Thickness[0.015384615384615385`], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[19.29685914516449`, 56.875006675720215`], List[32.49997329711914`, 64.49218791723251`], List[45.70308744907379`, 56.875006675720215`], List[32.49997329711914`, 49.257825434207916`], List[19.29685914516449`, 56.875006675720215`]], List[List[21.328107476234436`, 56.875006675720215`], List[32.49997329711914`, 63.32422015108166`], List[43.671839118003845`, 56.875006675720215`], List[32.49997329711914`, 50.42579283714326`], List[21.328107476234436`, 56.875006675720215`]], List[List[33.00778537988663`, 33.26174482703209`], List[33.00778537988663`, 48.496107310056686`], List[46.21089953184128`, 56.113288551568985`], List[46.21089953184128`, 40.87892606854439`], List[33.00778537988663`, 33.26174482703209`]]]]], List[FaceForm[RGBColor[0.7019607843137254`, 0.6039215686274509`, 0.788235294117647`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[31.992161214351654`, 33.26174482703209`], List[18.789047062397003`, 40.87892606854439`], List[18.789047062397003`, 56.113288551568985`], List[31.992161214351654`, 48.496107310056686`], List[31.992161214351654`, 33.26174482703209`]]]]], List[FaceForm[RGBColor[0.5372549019607843`, 0.403921568627451`, 0.6745098039215687`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[17.77342289686203`, 8.886764854192734`], List[4.570308744907379`, 16.503946095705032`], List[4.570308744907379`, 31.73830857872963`], List[17.77342289686203`, 24.12112733721733`], List[17.77342289686203`, 8.886764854192734`]], List[List[16.757798731327057`, 10.664107143878937`], List[5.585932910442352`, 17.113319045306525`], List[5.585932910442352`, 29.960966289043427`], List[16.757798731327057`, 23.511754387615838`], List[16.757798731327057`, 10.664107143878937`]], List[List[31.484349131584167`, 32.50002670288086`], List[18.281234979629517`, 40.11720794439316`], List[5.078120827674866`, 32.50002670288086`], List[18.281234979629517`, 24.88284546136856`], List[31.484349131584167`, 32.50002670288086`]]]]], List[FaceForm[RGBColor[0.6352941176470588`, 0.7333333333333333`, 0.8313725490196079`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[31.992161214351654`, 31.73830857872963`], List[18.789047062397003`, 24.12112733721733`], List[18.789047062397003`, 8.886764854192734`], List[31.992161214351654`, 16.503946095705032`], List[31.992161214351654`, 31.73830857872963`]]]]], List[FaceForm[RGBColor[0.2901960784313726`, 0.40784313725490196`, 0.5764705882352941`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[47.22652369737625`, 8.886764854192734`], List[47.22652369737625`, 24.12112733721733`], List[60.4296378493309`, 31.73830857872963`], List[60.4296378493309`, 16.503946095705032`], List[47.22652369737625`, 8.886764854192734`]], List[List[48.242147862911224`, 10.664107143878937`], List[48.242147862911224`, 23.511754387615838`], List[59.41401368379593`, 29.960966289043427`], List[59.41401368379593`, 17.113319045306525`], List[48.242147862911224`, 10.664107143878937`]], List[List[33.515597462654114`, 32.50002670288086`], List[46.718711614608765`, 40.11720794439316`], List[59.921825766563416`, 32.50002670288086`], List[46.718711614608765`, 24.88284546136856`], List[33.515597462654114`, 32.50002670288086`]]]]], List[FaceForm[RGBColor[0.6`, 0.6`, 0.37254901960784315`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[33.00778537988663`, 31.73830857872963`], List[33.00778537988663`, 16.503946095705032`], List[46.21089953184128`, 8.886764854192734`], List[46.21089953184128`, 24.12112733721733`], List[33.00778537988663`, 31.73830857872963`]]]]], List[FaceForm[RGBColor[0.396078431372549`, 0.6039215686274509`, 0.30196078431372547`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[5.585932910442352`, 35.03908711671829`], List[5.585932910442352`, 47.88673242330583`], List[16.757798731327057`, 54.33594626188278`], List[16.757798731327057`, 41.488300955295244`], List[5.585932910442352`, 35.03908711671829`]], List[List[4.570308744907379`, 33.26174482703209`], List[4.570308744907379`, 48.496107310056686`], List[17.77342289686203`, 56.113288551568985`], List[17.77342289686203`, 40.87892606854439`], List[4.570308744907379`, 33.26174482703209`]], List[List[60.4296378493309`, 33.26174482703209`], List[47.22652369737625`, 40.87892606854439`], List[47.22652369737625`, 56.113288551568985`], List[60.4296378493309`, 48.496107310056686`], List[60.4296378493309`, 33.26174482703209`]], List[List[59.41401368379593`, 35.03908711671829`], List[48.242147862911224`, 41.488300955295244`], List[48.242147862911224`, 54.33594626188278`], List[59.41401368379593`, 47.88673242330583`], List[59.41401368379593`, 35.03908711671829`]], List[List[19.29685914516449`, 8.125046730041504`], List[32.49997329711914`, 15.742227971553802`], List[45.70308744907379`, 8.125046730041504`], List[32.49997329711914`, 0.5078654885292053`], List[19.29685914516449`, 8.125046730041504`]], List[List[21.328107476234436`, 8.125046730041504`], List[32.49997329711914`, 14.574258631469093`], List[43.671839118003845`, 8.125046730041504`], List[32.49997329711914`, 1.6758348286139153`], List[21.328107476234436`, 8.125046730041504`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[7.109369158744812`, 32.50002670288086`], List[7.109369158744812`, 31.097747524374427`], List[5.972591313425198`, 29.960966289043427`], List[4.570308744907379`, 29.960966289043427`], List[3.168024481383867`, 29.960966289043427`], List[2.0312483310699463`, 31.097747524374427`], List[2.0312483310699463`, 32.50002670288086`], List[2.0312483310699463`, 33.90230975568602`], List[3.168024481383867`, 35.03908711671829`], List[4.570308744907379`, 35.03908711671829`], List[5.972591313425198`, 35.03908711671829`], List[7.109369158744812`, 33.90230975568602`], List[7.109369158744812`, 32.50002670288086`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[20.82029539346695`, 56.36719459295273`], List[20.82029539346695`, 54.96491250872225`], List[19.683518032434677`, 53.828134179115295`], List[18.281234979629517`, 53.828134179115295`], List[16.878951926824357`, 53.828134179115295`], List[15.742174565792084`, 54.96491250872225`], List[15.742174565792084`, 56.36719459295273`], List[15.742174565792084`, 57.76947716147055`], List[16.878951926824357`, 58.90625500679016`], List[18.281234979629517`, 58.90625500679016`], List[19.683518032434677`, 58.90625500679016`], List[20.82029539346695`, 57.76947716147055`], List[20.82029539346695`, 56.36719459295273`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[20.82029539346695`, 40.625020027160645`], List[20.82029539346695`, 39.222736974355485`], List[19.683518032434677`, 38.08595961332321`], List[18.281234979629517`, 38.08595961332321`], List[16.878951926824357`, 38.08595961332321`], List[15.742174565792084`, 39.222736974355485`], List[15.742174565792084`, 40.625020027160645`], List[15.742174565792084`, 42.027303079965804`], List[16.878951926824357`, 43.16408044099808`], List[18.281234979629517`, 43.16408044099808`], List[19.683518032434677`, 43.16408044099808`], List[20.82029539346695`, 42.027303079965804`], List[20.82029539346695`, 40.625020027160645`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[20.82029539346695`, 24.375033378601074`], List[20.82029539346695`, 22.97275420009464`], List[19.683518032434677`, 21.83597296476364`], List[18.281234979629517`, 21.83597296476364`], List[16.878951926824357`, 21.83597296476364`], List[15.742174565792084`, 22.97275420009464`], List[15.742174565792084`, 24.375033378601074`], List[15.742174565792084`, 25.777316431406234`], List[16.878951926824357`, 26.914093792438507`], List[18.281234979629517`, 26.914093792438507`], List[19.683518032434677`, 26.914093792438507`], List[20.82029539346695`, 25.777316431406234`], List[20.82029539346695`, 24.375033378601074`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[20.82029539346695`, 8.63285881280899`], List[20.82029539346695`, 7.230591257198739`], List[19.683518032434677`, 6.093798398971558`], List[18.281234979629517`, 6.093798398971558`], List[16.878951926824357`, 6.093798398971558`], List[15.742174565792084`, 7.230591257198739`], List[15.742174565792084`, 8.63285881280899`], List[15.742174565792084`, 10.035130242717969`], List[16.878951926824357`, 11.171919226646423`], List[18.281234979629517`, 11.171919226646423`], List[19.683518032434677`, 11.171919226646423`], List[20.82029539346695`, 10.035130242717969`], List[20.82029539346695`, 8.63285881280899`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[35.03903371095657`, 48.75001335144043`], List[35.03903371095657`, 47.34773029863527`], List[33.90225247562557`, 46.210952937603`], List[32.49997329711914`, 46.210952937603`], List[31.09769024431398`, 46.210952937603`], List[29.960912883281708`, 47.34773029863527`], List[29.960912883281708`, 48.75001335144043`], List[29.960912883281708`, 50.15229543567091`], List[31.09769024431398`, 51.28907376527786`], List[32.49997329711914`, 51.28907376527786`], List[33.90225247562557`, 51.28907376527786`], List[35.03903371095657`, 50.15229543567091`], List[35.03903371095657`, 48.75001335144043`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[35.03903371095657`, 32.50002670288086`], List[35.03903371095657`, 31.097747524374427`], List[33.90225247562557`, 29.960966289043427`], List[32.49997329711914`, 29.960966289043427`], List[31.09769024431398`, 29.960966289043427`], List[29.960912883281708`, 31.097747524374427`], List[29.960912883281708`, 32.50002670288086`], List[29.960912883281708`, 33.90230975568602`], List[31.09769024431398`, 35.03908711671829`], List[32.49997329711914`, 35.03908711671829`], List[33.90225247562557`, 35.03908711671829`], List[35.03903371095657`, 33.90230975568602`], List[35.03903371095657`, 32.50002670288086`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[35.03903371095657`, 16.25004005432129`], List[35.03903371095657`, 14.847760875814856`], List[33.90225247562557`, 13.710979640483856`], List[32.49997329711914`, 13.710979640483856`], List[31.09769024431398`, 13.710979640483856`], List[29.960912883281708`, 14.847760875814856`], List[29.960912883281708`, 16.25004005432129`], List[29.960912883281708`, 17.65232310712645`], List[31.09769024431398`, 18.789100468158722`], List[32.49997329711914`, 18.789100468158722`], List[33.90225247562557`, 18.789100468158722`], List[35.03903371095657`, 17.65232310712645`], List[35.03903371095657`, 16.25004005432129`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[49.2577720284462`, 56.36719459295273`], List[49.2577720284462`, 54.96491250872225`], List[48.1209907931152`, 53.828134179115295`], List[46.718711614608765`, 53.828134179115295`], List[45.316428561803605`, 53.828134179115295`], List[44.17965120077133`, 54.96491250872225`], List[44.17965120077133`, 56.36719459295273`], List[44.17965120077133`, 57.76947716147055`], List[45.316428561803605`, 58.90625500679016`], List[46.718711614608765`, 58.90625500679016`], List[48.1209907931152`, 58.90625500679016`], List[49.2577720284462`, 57.76947716147055`], List[49.2577720284462`, 56.36719459295273`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[49.2577720284462`, 40.625020027160645`], List[49.2577720284462`, 39.222736974355485`], List[48.1209907931152`, 38.08595961332321`], List[46.718711614608765`, 38.08595961332321`], List[45.316428561803605`, 38.08595961332321`], List[44.17965120077133`, 39.222736974355485`], List[44.17965120077133`, 40.625020027160645`], List[44.17965120077133`, 42.027303079965804`], List[45.316428561803605`, 43.16408044099808`], List[46.718711614608765`, 43.16408044099808`], List[48.1209907931152`, 43.16408044099808`], List[49.2577720284462`, 42.027303079965804`], List[49.2577720284462`, 40.625020027160645`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[49.2577720284462`, 24.375033378601074`], List[49.2577720284462`, 22.97275420009464`], List[48.1209907931152`, 21.83597296476364`], List[46.718711614608765`, 21.83597296476364`], List[45.316428561803605`, 21.83597296476364`], List[44.17965120077133`, 22.97275420009464`], List[44.17965120077133`, 24.375033378601074`], List[44.17965120077133`, 25.777316431406234`], List[45.316428561803605`, 26.914093792438507`], List[46.718711614608765`, 26.914093792438507`], List[48.1209907931152`, 26.914093792438507`], List[49.2577720284462`, 25.777316431406234`], List[49.2577720284462`, 24.375033378601074`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[49.2577720284462`, 8.63285881280899`], List[49.2577720284462`, 7.230591257198739`], List[48.1209907931152`, 6.093798398971558`], List[46.718711614608765`, 6.093798398971558`], List[45.316428561803605`, 6.093798398971558`], List[44.17965120077133`, 7.230591257198739`], List[44.17965120077133`, 8.63285881280899`], List[44.17965120077133`, 10.035130242717969`], List[45.316428561803605`, 11.171919226646423`], List[46.718711614608765`, 11.171919226646423`], List[48.1209907931152`, 11.171919226646423`], List[49.2577720284462`, 10.035130242717969`], List[49.2577720284462`, 8.63285881280899`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]], StyleBox[List[FilledCurveBox[List[List[List[1, 4, 3], List[1, 3, 3], List[1, 3, 3], List[1, 3, 3]]], List[List[List[62.968698263168335`, 32.50002670288086`], List[62.968698263168335`, 31.097747524374427`], List[61.83190540494115`, 29.960966289043427`], List[60.4296378493309`, 29.960966289043427`], List[59.027366419421924`, 29.960966289043427`], List[57.89057743549347`, 31.097747524374427`], List[57.89057743549347`, 32.50002670288086`], List[57.89057743549347`, 33.90230975568602`], List[59.027366419421924`, 35.03908711671829`], List[60.4296378493309`, 35.03908711671829`], List[61.83190540494115`, 35.03908711671829`], List[62.968698263168335`, 33.90230975568602`], List[62.968698263168335`, 32.50002670288086`]]]]], List[FaceForm[RGBColor[0.9607843137254902`, 0.5098039215686274`, 0.20784313725490197`, 1.`]]], Rule[StripOnInput, False]]], List[Rule[BaselinePosition, Scaled[0.15`]], Rule[ImageSize, 10], Rule[ImageSize, List[Automatic, 35]]]], StyleBox[RowBox[List["WorkflowExport", " "]], Rule[ShowAutoStyles, False], Rule[ShowStringCharacters, False], Rule[FontSize, Times[0.9`, Inherited]], Rule[FontColor, GrayLevel[0.1`]]]]], Rule[GridBoxSpacings, List[Rule["Columns", List[List[0.25`]]]]]], Rule[Alignment, List[Left, Baseline]], Rule[BaselinePosition, Baseline], Rule[FrameMargins, List[List[3, 0], List[0, 0]]], Rule[BaseStyle, List[Rule[LineSpacing, List[0, 0]], Rule[LineBreakWithin, False]]]], RowBox[List["PacletSymbol", "[", RowBox[List["\"Wolfram/PacletCICD\"", ",", "\"WorkflowExport\""]], "]"]], Rule[TooltipStyle, List[Rule[ShowAutoStyles, True], Rule[ShowStringCharacters, True]]]], Function[Annotation[Slot[1], Style[Defer[PacletSymbol["Wolfram/PacletCICD", "WorkflowExport"]], Rule[ShowStringCharacters, True]], "Tooltip"]]], Rule[Background, RGBColor[0.968`, 0.976`, 0.984`]], Rule[BaselinePosition, Baseline], Rule[DefaultBaseStyle, List[]], Rule[FrameMargins, List[List[0, 0], List[1, 1]]], Rule[FrameStyle, RGBColor[0.831`, 0.847`, 0.85`]], Rule[RoundingRadius, 4]], PacletSymbol["Wolfram/PacletCICD", "WorkflowExport"], Rule[Selectable, False], Rule[SelectWithContents, True], Rule[BoxID, "PacletSymbolBox"]]["path/to/paclet", "Release"]
Out[2]=
In[3]:=
FilePrint[%, 12]

Push changes to a branch beginning with "release/" and a tagged release will be automatically created (provided that automated checks pass):

Installing PacletCICD (4) 

From the Wolfram Language Paclet Repository:

In[4]:=
PacletInstall[ResourceObject["Wolfram/PacletCICD"]]
Out[4]=

Using GitHubInstall:

In[5]:=
ResourceFunction["GitHubInstall"]["WolframResearch", "PacletCICD"]
Out[5]=

Alternatively, manually install a paclet file from the PacletCICD releases page:

In[6]:=
PacletInstall["https://github.com/WolframResearch/PacletCICD/releases/download/v0.4.0/Wolfram__PacletCICD-0.4.0.paclet"]
Out[6]=

To uninstall:

In[7]:=
PacletUninstall["Wolfram/PacletCICD"]

License

This project is licensed under the terms of the MIT license. See the LICENSE file in the root directory of this paclet for details.

Disclosures

  • Local files
  • Wolfram account
  • External services
  • WL system configuration
  • Learn More »

Compatibility

Wolfram Language Version 13

Version History

  • 0.36.0 – 19 October 2023
  • 0.35.0 – 28 August 2023
  • 0.34.0 – 11 November 2022
  • 0.33.3 – 17 October 2022
  • 0.33.2 – 16 October 2022
  • 0.33.1 – 14 October 2022
  • 0.33.0 – 12 October 2022
  • 0.32.0 – 22 September 2022
  • 0.31.0 – 08 August 2022
  • 0.30.1 – 08 August 2022
  • 0.29.2 – 20 July 2022
  • 0.29.1 – 14 June 2022
  • 0.29.0 – 22 May 2022
  • 0.28.0 – 20 May 2022
  • 0.27.0 – 19 May 2022
  • 0.26.2 – 19 May 2022
  • 0.26.0 – 22 April 2022
  • 0.25.0 – 21 April 2022
  • 0.20.7 – 04 April 2022
  • 0.20.6 – 04 April 2022
  • 0.20.5 – 04 April 2022
  • 0.20.4 – 04 April 2022
  • 0.20.3 – 04 April 2022
  • 0.20.1 – 04 April 2022
  • 0.16.1 – 29 March 2022
  • 0.16.0 – 29 March 2022
  • 0.10.5 – 24 February 2022
  • 0.10.3 – 24 February 2022
  • 0.10.1 – 22 February 2022
  • 0.5.0 – 15 February 2022

License Information

MIT License

Paclet Source

Source Metadata

See Also