[{"data":1,"prerenderedAt":298},["ShallowReactive",2],{"navigation_docs":3,"-features-testing":74,"-features-testing-surround":293},[4,30,45,65],{"title":5,"path":6,"stem":7,"children":8,"page":29},"GettingStarted","/getting_started","1.getting_started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Getting Started","/getting_started/introduction","1.getting_started/1.introduction","i-heroicons-information-circle",{"title":15,"path":16,"stem":17,"icon":18},"Installation Guide","/getting_started/installation","1.getting_started/2.installation","i-heroicons-arrow-down-tray",{"title":20,"path":21,"stem":22,"icon":23},"Usage","/getting_started/usage","1.getting_started/3.usage","i-heroicons-play",{"title":25,"path":26,"stem":27,"icon":28},"Configuration","/getting_started/configuration","1.getting_started/4.configuration","i-heroicons-adjustments-horizontal",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Features","/features","2.features",[35,40],{"title":36,"path":37,"stem":38,"icon":39},"What's Installed","/features/whats_installed","2.features/1.whats_installed","i-heroicons-gift",{"title":41,"path":42,"stem":43,"icon":44},"Testing","/features/testing","2.features/2.testing","i-heroicons-beaker",{"title":46,"path":47,"stem":48,"children":49,"page":29},"Support","/support","3.support",[50,55,60],{"title":51,"path":52,"stem":53,"icon":54},"FAQ","/support/faq","3.support/1.faq","i-heroicons-question-mark-circle",{"title":56,"path":57,"stem":58,"icon":59},"Contributing","/support/contributing","3.support/2.contributing","i-heroicons-user-group",{"title":61,"path":62,"stem":63,"icon":64},"Code of Conduct","/support/code_of_conduct","3.support/3.code_of_conduct","i-heroicons-heart",{"title":66,"path":67,"stem":68,"children":69,"page":29},"License","/license","7.license",[70],{"title":66,"path":71,"stem":72,"icon":73},"/license/license","7.license/1.license","i-heroicons-scale",{"id":75,"title":41,"body":76,"description":286,"extension":287,"links":288,"meta":289,"navigation":290,"path":42,"seo":291,"stem":43,"__hash__":292},"docs/2.features/2.testing.md",{"type":77,"value":78,"toc":277},"minimark",[79,84,88,111,119,139,143,148,158,163,178,184,216,219,231,235,241,246,255,262,266,273],[80,81,83],"h2",{"id":82},"github-actions","GitHub Actions",[85,86,87],"p",{},"Griffin is automatically tested on every push using GitHub Actions across three platforms:",[89,90,91,99,105],"ul",{},[92,93,94,98],"li",{},[95,96,97],"strong",{},"Ubuntu 24.04"," - Full installation with all flags enabled",[92,100,101,104],{},[95,102,103],{},"macOS (latest)"," - Full installation including GUI apps",[92,106,107,110],{},[95,108,109],{},"WSL"," - CLI-only installation (no GUI)",[85,112,113,114,118],{},"Workflow files are located in ",[115,116,117],"code",{},".github/workflows/",":",[89,120,121,127,133],{},[92,122,123,126],{},[115,124,125],{},"ubuntu.yaml"," - Ubuntu testing",[92,128,129,132],{},[115,130,131],{},"macos.yaml"," - macOS testing",[92,134,135,138],{},[115,136,137],{},"wsl.yaml"," - WSL testing",[80,140,142],{"id":141},"local-testing","Local Testing",[144,145,147],"h3",{"id":146},"molecule","Molecule",[85,149,150,151,157],{},"We use ",[152,153,147],"a",{"href":154,"rel":155},"https://molecule.readthedocs.io/",[156],"nofollow"," for local testing of the Ansible role. This allows you to verify changes in an isolated Docker container before pushing code.",[85,159,160],{},[95,161,162],{},"Prerequisites:",[89,164,165,168,171],{},[92,166,167],{},"Docker",[92,169,170],{},"Python 3",[92,172,173,174,177],{},"Molecule (",[115,175,176],{},"pip install molecule molecule-plugins[docker]",")",[85,179,180,183],{},[95,181,182],{},"Running Tests:","\nTo run the full test suite (create, converge, verify, destroy):",[185,186,192],"pre",{"className":187,"code":188,"filename":189,"language":190,"meta":191,"style":191},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","cd post-installation\nmolecule test\n","Terminal","bash","",[115,193,194,207],{"__ignoreMap":191},[195,196,199,203],"span",{"class":197,"line":198},"line",1,[195,200,202],{"class":201},"s2Zo4","cd",[195,204,206],{"class":205},"sfazB"," post-installation\n",[195,208,210,213],{"class":197,"line":209},2,[195,211,146],{"class":212},"sBMFI",[195,214,215],{"class":205}," test\n",[85,217,218],{},"To just run the playbook (useful for iterating):",[185,220,222],{"className":187,"code":221,"filename":189,"language":190,"meta":191,"style":191},"molecule converge\n",[115,223,224],{"__ignoreMap":191},[195,225,226,228],{"class":197,"line":198},[195,227,146],{"class":212},[195,229,230],{"class":205}," converge\n",[144,232,234],{"id":233},"linting","Linting",[85,236,150,237,240],{},[115,238,239],{},"ansible-lint"," to ensure code quality and adherence to best practices.",[85,242,243],{},[95,244,245],{},"Running Linter:",[185,247,249],{"className":187,"code":248,"filename":189,"language":190,"meta":191,"style":191},"ansible-lint\n",[115,250,251],{"__ignoreMap":191},[195,252,253],{"class":197,"line":198},[195,254,248],{"class":212},[85,256,257,258,261],{},"This check is also enforced in CI via the ",[115,259,260],{},"lint.yaml"," workflow.",[80,263,265],{"id":264},"troubleshooting","Troubleshooting",[85,267,268,269,272],{},"If you encounter any issues during the testing process, consult the ",[152,270,51],{"href":271},"faq"," for assistance.",[274,275,276],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":191,"searchDepth":209,"depth":209,"links":278},[279,280,285],{"id":82,"depth":209,"text":83},{"id":141,"depth":209,"text":142,"children":281},[282,284],{"id":146,"depth":283,"text":147},3,{"id":233,"depth":283,"text":234},{"id":264,"depth":209,"text":265},"How we test Griffin using GitHub Actions and Molecule","md",null,{},{"icon":44},{"title":41,"description":286},"g30dko3XeWcdNr6Zx7TlLZohPg7pYvvSylPAmyg6X7U",[294,296],{"title":36,"path":37,"stem":38,"description":295,"icon":39,"children":-1},"Overview of tools and software installed by Griffin",{"title":51,"path":52,"stem":53,"description":297,"icon":54,"children":-1},"Frequently asked questions and troubleshooting tips",1785923513794]