From 77a8d86f738514cbf6cfb9027d1c3f7771236844 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:16:50 +0000 Subject: [PATCH] deploy: 8a02a38ee0e43885a439ba8088c9f91fe9c37f8b --- 404.html | 2 +- assets/js/6126a50b.375ea7a1.js | 1 + assets/js/6126a50b.5ffadabb.js | 1 - assets/js/7a6484a3.01fb8033.js | 1 + assets/js/7a6484a3.30099f64.js | 1 - assets/js/a41a336d.4733d961.js | 1 - assets/js/a41a336d.7d38d22c.js | 1 + assets/js/dad825aa.3495c210.js | 1 - assets/js/dad825aa.b5d80911.js | 1 + assets/js/{eadb6e1d.5c449659.js => eadb6e1d.6b9ed2a7.js} | 2 +- .../{runtime~main.f7a8b770.js => runtime~main.e6151a95.js} | 2 +- docs/category/workflows.html | 2 +- docs/overview.html | 2 +- docs/workflows/dart_package.html | 4 ++-- docs/workflows/dart_pub_publish.html | 4 ++-- docs/workflows/flutter_package.html | 6 +++--- docs/workflows/flutter_pub_publish.html | 6 +++--- docs/workflows/license_check.html | 4 ++-- docs/workflows/mason_publish.html | 2 +- docs/workflows/pana.html | 2 +- docs/workflows/semantic_pull_request.html | 2 +- docs/workflows/spell_check.html | 2 +- index.html | 2 +- 23 files changed, 26 insertions(+), 26 deletions(-) create mode 100644 assets/js/6126a50b.375ea7a1.js delete mode 100644 assets/js/6126a50b.5ffadabb.js create mode 100644 assets/js/7a6484a3.01fb8033.js delete mode 100644 assets/js/7a6484a3.30099f64.js delete mode 100644 assets/js/a41a336d.4733d961.js create mode 100644 assets/js/a41a336d.7d38d22c.js delete mode 100644 assets/js/dad825aa.3495c210.js create mode 100644 assets/js/dad825aa.b5d80911.js rename assets/js/{eadb6e1d.5c449659.js => eadb6e1d.6b9ed2a7.js} (52%) rename assets/js/{runtime~main.f7a8b770.js => runtime~main.e6151a95.js} (92%) diff --git a/404.html b/404.html index 7bf0531..e5ffd58 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Page Not Found | Very Good Workflows - + diff --git a/assets/js/6126a50b.375ea7a1.js b/assets/js/6126a50b.375ea7a1.js new file mode 100644 index 0000000..8f2a85f --- /dev/null +++ b/assets/js/6126a50b.375ea7a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkworkflows_docs=self.webpackChunkworkflows_docs||[]).push([[836],{1808:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>i,contentTitle:()=>d,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>t});var r=s(4848),o=s(8453);const l={sidebar_position:1},d="Dart Package",c={id:"workflows/dart_package",title:"Dart Package",description:"This workflow runs helpful checks on a Dart package according to the steps below. As with any workflow, it can be customized.",source:"@site/docs/workflows/dart_package.md",sourceDirName:"workflows",slug:"/workflows/dart_package",permalink:"/docs/workflows/dart_package",draft:!1,unlisted:!1,editUrl:"https://github.com/VeryGoodOpenSource/very_good_workflows/tree/main/site/docs/workflows/dart_package.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Workflows",permalink:"/docs/category/workflows"},next:{title:"Dart Pub Publish",permalink:"/docs/workflows/dart_pub_publish"}},i={},t=[{value:"Steps",id:"steps",level:2},{value:"Inputs",id:"inputs",level:2},{value:"concurrency",id:"concurrency",level:3},{value:"coverage_excludes",id:"coverage_excludes",level:3},{value:"dart_sdk",id:"dart_sdk",level:3},{value:"format_line_length",id:"format_line_length",level:3},{value:"min_coverage",id:"min_coverage",level:3},{value:"working_directory",id:"working_directory",level:3},{value:"analyze_directories",id:"analyze_directories",level:3},{value:"format_directories",id:"format_directories",level:3},{value:"check_ignore",id:"check_ignore",level:3},{value:"report_on",id:"report_on",level:3},{value:"runs_on",id:"runs_on",level:3},{value:"setup",id:"setup",level:3},{value:"platform",id:"platform",level:3},{value:"run_skipped",id:"run_skipped",level:3},{value:"no_example",id:"no_example",level:3},{value:"Secrets",id:"secrets",level:2},{value:"ssh_key",id:"ssh_key",level:3},{value:"Example Usage",id:"example-usage",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"dart-package",children:"Dart Package"})}),"\n",(0,r.jsx)(n.p,{children:"This workflow runs helpful checks on a Dart package according to the steps below. As with any workflow, it can be customized."}),"\n",(0,r.jsx)(n.h2,{id:"steps",children:"Steps"}),"\n",(0,r.jsx)(n.p,{children:"The Dart package workflow consists of the following steps:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Install dependencies"}),"\n",(0,r.jsx)(n.li,{children:"Format"}),"\n",(0,r.jsx)(n.li,{children:"Analyze"}),"\n",(0,r.jsx)(n.li,{children:"Run tests"}),"\n",(0,r.jsx)(n.li,{children:"Check code coverage"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsx)(n.h3,{id:"concurrency",children:(0,r.jsx)(n.code,{children:"concurrency"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The number of concurrent test suites run."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"4"})]}),"\n",(0,r.jsx)(n.h3,{id:"coverage_excludes",children:(0,r.jsx)(n.code,{children:"coverage_excludes"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," List of paths to exclude from the coverage report, separated by an empty space. Supports ",(0,r.jsx)(n.code,{children:"globs"})," to describe file patterns."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"dart_sdk",children:(0,r.jsx)(n.code,{children:"dart_sdk"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," Which Dart SDK version to use. It can be a version (e.g. ",(0,r.jsx)(n.code,{children:"3.5.0"}),") or a channel (e.g. ",(0,r.jsx)(n.code,{children:"stable"}),"):"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"stable"'})]}),"\n",(0,r.jsx)(n.h3,{id:"format_line_length",children:(0,r.jsx)(n.code,{children:"format_line_length"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The preferred line length preferred for running the ",(0,r.jsx)(n.code,{children:"dart format"})," command. Be aware that this does not change the behavior of the analysis step and longer lines could still make the workflow fail if the rule ",(0,r.jsx)(n.code,{children:"lines_longer_than_80_chars"})," is used."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"80"'})]}),"\n",(0,r.jsx)(n.h3,{id:"min_coverage",children:(0,r.jsx)(n.code,{children:"min_coverage"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The minimum coverage percentage allowed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," 100"]}),"\n",(0,r.jsx)(n.h3,{id:"working_directory",children:(0,r.jsx)(n.code,{children:"working_directory"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The path to the root of the Dart package."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"."'})]}),"\n",(0,r.jsx)(n.h3,{id:"analyze_directories",children:(0,r.jsx)(n.code,{children:"analyze_directories"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A space-separated list of folders that should be analyzed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"lib test"'})]}),"\n",(0,r.jsx)(n.h3,{id:"format_directories",children:(0,r.jsx)(n.code,{children:"format_directories"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A space-separated list of folders that should be formatted."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"."'})]}),"\n",(0,r.jsx)(n.h3,{id:"check_ignore",children:(0,r.jsx)(n.code,{children:"check_ignore"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," Allows ignoring lines from ",(0,r.jsx)(n.a,{href:"https://pub.dev/packages/coverage",children:"coverage"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"false"})]}),"\n",(0,r.jsx)(n.h3,{id:"report_on",children:(0,r.jsx)(n.code,{children:"report_on"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A comma-separated list of folders that should be checked in code coverage."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"lib"'})]}),"\n",(0,r.jsx)(n.h3,{id:"runs_on",children:(0,r.jsx)(n.code,{children:"runs_on"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The operating system on which to run the workflow."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"ubuntu-latest"'})]}),"\n",(0,r.jsx)(n.h3,{id:"setup",children:(0,r.jsx)(n.code,{children:"setup"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A command that should be executed immediately after dependencies are installed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"platform",children:(0,r.jsx)(n.code,{children:"platform"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A comma-separated list of platforms on which to run the tests.\n",(0,r.jsx)(n.code,{children:"[vm (default), chrome, firefox, safari, node]"})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"vm"'})]}),"\n",(0,r.jsx)(n.h3,{id:"run_skipped",children:(0,r.jsx)(n.code,{children:"run_skipped"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," Run skipped tests instead of skipping them."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"false"})]}),"\n",(0,r.jsx)(n.h3,{id:"no_example",children:(0,r.jsx)(n.code,{children:"no_example"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," To avoid getting packages in ",(0,r.jsx)(n.code,{children:"example/"})," when running ",(0,r.jsx)(n.code,{children:"dart pub get"})," (if it exists)."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"false"})]}),"\n",(0,r.jsx)(n.h2,{id:"secrets",children:"Secrets"}),"\n",(0,r.jsx)(n.h3,{id:"ssh_key",children:(0,r.jsx)(n.code,{children:"ssh_key"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," An SSH key used to access private repositories when installing dependencies."]}),"\n",(0,r.jsx)(n.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",children:"name: My Dart Workflow\n\non: pull_request\n\njobs:\n build:\n uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1\n with:\n coverage_excludes: '*.g.dart'\n dart_sdk: 'stable'\n platform: 'chrome,vm'\n working_directory: 'examples/my_dart_package'\n secrets:\n ssh_key: ${{secrets.EXAMPLE_KEY}}\n"})})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>c});var r=s(6540);const o={},l=r.createContext(o);function d(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6126a50b.5ffadabb.js b/assets/js/6126a50b.5ffadabb.js deleted file mode 100644 index cab016b..0000000 --- a/assets/js/6126a50b.5ffadabb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkworkflows_docs=self.webpackChunkworkflows_docs||[]).push([[836],{1808:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>i,contentTitle:()=>d,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>t});var r=s(4848),o=s(8453);const l={sidebar_position:1},d="Dart Package",c={id:"workflows/dart_package",title:"Dart Package",description:"This workflow runs helpful checks on a Dart package according to the steps below. As with any workflow, it can be customized.",source:"@site/docs/workflows/dart_package.md",sourceDirName:"workflows",slug:"/workflows/dart_package",permalink:"/docs/workflows/dart_package",draft:!1,unlisted:!1,editUrl:"https://github.com/VeryGoodOpenSource/very_good_workflows/tree/main/site/docs/workflows/dart_package.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Workflows",permalink:"/docs/category/workflows"},next:{title:"Dart Pub Publish",permalink:"/docs/workflows/dart_pub_publish"}},i={},t=[{value:"Steps",id:"steps",level:2},{value:"Inputs",id:"inputs",level:2},{value:"concurrency",id:"concurrency",level:3},{value:"coverage_excludes",id:"coverage_excludes",level:3},{value:"dart_sdk",id:"dart_sdk",level:3},{value:"format_line_length",id:"format_line_length",level:3},{value:"min_coverage",id:"min_coverage",level:3},{value:"working_directory",id:"working_directory",level:3},{value:"analyze_directories",id:"analyze_directories",level:3},{value:"format_directories",id:"format_directories",level:3},{value:"check_ignore",id:"check_ignore",level:3},{value:"report_on",id:"report_on",level:3},{value:"runs_on",id:"runs_on",level:3},{value:"setup",id:"setup",level:3},{value:"platform",id:"platform",level:3},{value:"run_skipped",id:"run_skipped",level:3},{value:"no_example",id:"no_example",level:3},{value:"Secrets",id:"secrets",level:2},{value:"ssh_key",id:"ssh_key",level:3},{value:"Example Usage",id:"example-usage",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"dart-package",children:"Dart Package"})}),"\n",(0,r.jsx)(n.p,{children:"This workflow runs helpful checks on a Dart package according to the steps below. As with any workflow, it can be customized."}),"\n",(0,r.jsx)(n.h2,{id:"steps",children:"Steps"}),"\n",(0,r.jsx)(n.p,{children:"The Dart package workflow consists of the following steps:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Install dependencies"}),"\n",(0,r.jsx)(n.li,{children:"Format"}),"\n",(0,r.jsx)(n.li,{children:"Analyze"}),"\n",(0,r.jsx)(n.li,{children:"Run tests"}),"\n",(0,r.jsx)(n.li,{children:"Check code coverage"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsx)(n.h3,{id:"concurrency",children:(0,r.jsx)(n.code,{children:"concurrency"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The number of concurrent test suites run."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"4"})]}),"\n",(0,r.jsx)(n.h3,{id:"coverage_excludes",children:(0,r.jsx)(n.code,{children:"coverage_excludes"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," List of paths to exclude from the coverage report, separated by an empty space. Supports ",(0,r.jsx)(n.code,{children:"globs"})," to describe file patterns."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"dart_sdk",children:(0,r.jsx)(n.code,{children:"dart_sdk"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," Which Dart SDK version to use. It can be a version (e.g. ",(0,r.jsx)(n.code,{children:"2.12.0"}),") or a channel (e.g. ",(0,r.jsx)(n.code,{children:"stable"}),"):"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"stable"'})]}),"\n",(0,r.jsx)(n.h3,{id:"format_line_length",children:(0,r.jsx)(n.code,{children:"format_line_length"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The preferred line length preferred for running the ",(0,r.jsx)(n.code,{children:"dart format"})," command. Be aware that this does not change the behavior of the analysis step and longer lines could still make the workflow fail if the rule ",(0,r.jsx)(n.code,{children:"lines_longer_than_80_chars"})," is used."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"80"'})]}),"\n",(0,r.jsx)(n.h3,{id:"min_coverage",children:(0,r.jsx)(n.code,{children:"min_coverage"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The minimum coverage percentage allowed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," 100"]}),"\n",(0,r.jsx)(n.h3,{id:"working_directory",children:(0,r.jsx)(n.code,{children:"working_directory"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The path to the root of the Dart package."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"."'})]}),"\n",(0,r.jsx)(n.h3,{id:"analyze_directories",children:(0,r.jsx)(n.code,{children:"analyze_directories"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A space-separated list of folders that should be analyzed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"lib test"'})]}),"\n",(0,r.jsx)(n.h3,{id:"format_directories",children:(0,r.jsx)(n.code,{children:"format_directories"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A space-separated list of folders that should be formatted."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"."'})]}),"\n",(0,r.jsx)(n.h3,{id:"check_ignore",children:(0,r.jsx)(n.code,{children:"check_ignore"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," Allows ignoring lines from ",(0,r.jsx)(n.a,{href:"https://pub.dev/packages/coverage",children:"coverage"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"false"})]}),"\n",(0,r.jsx)(n.h3,{id:"report_on",children:(0,r.jsx)(n.code,{children:"report_on"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A comma-separated list of folders that should be checked in code coverage."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"lib"'})]}),"\n",(0,r.jsx)(n.h3,{id:"runs_on",children:(0,r.jsx)(n.code,{children:"runs_on"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The operating system on which to run the workflow."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"ubuntu-latest"'})]}),"\n",(0,r.jsx)(n.h3,{id:"setup",children:(0,r.jsx)(n.code,{children:"setup"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A command that should be executed immediately after dependencies are installed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"platform",children:(0,r.jsx)(n.code,{children:"platform"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A comma-separated list of platforms on which to run the tests.\n",(0,r.jsx)(n.code,{children:"[vm (default), chrome, firefox, safari, node]"})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"vm"'})]}),"\n",(0,r.jsx)(n.h3,{id:"run_skipped",children:(0,r.jsx)(n.code,{children:"run_skipped"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," Run skipped tests instead of skipping them."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"false"})]}),"\n",(0,r.jsx)(n.h3,{id:"no_example",children:(0,r.jsx)(n.code,{children:"no_example"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," To avoid getting packages in ",(0,r.jsx)(n.code,{children:"example/"})," when running ",(0,r.jsx)(n.code,{children:"dart pub get"})," (if it exists)."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"false"})]}),"\n",(0,r.jsx)(n.h2,{id:"secrets",children:"Secrets"}),"\n",(0,r.jsx)(n.h3,{id:"ssh_key",children:(0,r.jsx)(n.code,{children:"ssh_key"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," An SSH key used to access private repositories when installing dependencies."]}),"\n",(0,r.jsx)(n.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",children:"name: My Dart Workflow\n\non: pull_request\n\njobs:\n build:\n uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1\n with:\n coverage_excludes: '*.g.dart'\n dart_sdk: 'stable'\n platform: 'chrome,vm'\n working_directory: 'examples/my_dart_package'\n secrets:\n ssh_key: ${{secrets.EXAMPLE_KEY}}\n"})})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>c});var r=s(6540);const o={},l=r.createContext(o);function d(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7a6484a3.01fb8033.js b/assets/js/7a6484a3.01fb8033.js new file mode 100644 index 0000000..5303dd9 --- /dev/null +++ b/assets/js/7a6484a3.01fb8033.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkworkflows_docs=self.webpackChunkworkflows_docs||[]).push([[125],{342:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var r=s(4848),t=s(8453);const l={sidebar_position:4},i="Flutter Pub Publish",o={id:"workflows/flutter_pub_publish",title:"Flutter Pub Publish",description:"We use this workflow to publish a Flutter package to pub.dev.",source:"@site/docs/workflows/flutter_pub_publish.md",sourceDirName:"workflows",slug:"/workflows/flutter_pub_publish",permalink:"/docs/workflows/flutter_pub_publish",draft:!1,unlisted:!1,editUrl:"https://github.com/VeryGoodOpenSource/very_good_workflows/tree/main/site/docs/workflows/flutter_pub_publish.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Flutter Package",permalink:"/docs/workflows/flutter_package"},next:{title:"License Check",permalink:"/docs/workflows/license_check"}},d={},c=[{value:"Steps",id:"steps",level:2},{value:"Inputs",id:"inputs",level:2},{value:"flutter_channel",id:"flutter_channel",level:3},{value:"flutter_version",id:"flutter_version",level:3},{value:"working_directory",id:"working_directory",level:3},{value:"runs_on",id:"runs_on",level:3},{value:"Secrets",id:"secrets",level:2},{value:"pub_credentials",id:"pub_credentials",level:3},{value:"Example Usage",id:"example-usage",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"flutter-pub-publish",children:"Flutter Pub Publish"})}),"\n",(0,r.jsxs)(n.p,{children:["We use this workflow to publish a Flutter package to ",(0,r.jsx)(n.a,{href:"https://pub.dev",children:"pub.dev"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"steps",children:"Steps"}),"\n",(0,r.jsx)(n.p,{children:"The Flutter Pub Publish workflow consists of the following steps:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Install dependencies"}),"\n",(0,r.jsx)(n.li,{children:"Setup pub credentials"}),"\n",(0,r.jsx)(n.li,{children:"Dry run"}),"\n",(0,r.jsx)(n.li,{children:"Publish"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsx)(n.h3,{id:"flutter_channel",children:(0,r.jsx)(n.code,{children:"flutter_channel"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The Flutter release channel to use (e.g. ",(0,r.jsx)(n.code,{children:"stable"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"stable"'})]}),"\n",(0,r.jsx)(n.h3,{id:"flutter_version",children:(0,r.jsx)(n.code,{children:"flutter_version"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The Flutter SDK version to use (e.g. ",(0,r.jsx)(n.code,{children:"3.24.0"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"working_directory",children:(0,r.jsx)(n.code,{children:"working_directory"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The path to the root of the Flutter package."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"."'})]}),"\n",(0,r.jsx)(n.h3,{id:"runs_on",children:(0,r.jsx)(n.code,{children:"runs_on"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," An optional operating system on which to run the workflow."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"ubuntu-latest"'})]}),"\n",(0,r.jsx)(n.h2,{id:"secrets",children:"Secrets"}),"\n",(0,r.jsx)(n.h3,{id:"pub_credentials",children:(0,r.jsx)(n.code,{children:"pub_credentials"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Required"})," The pub credentials needed for publishing. This can be retrieved by reading out your ",(0,r.jsx)(n.code,{children:"pub-credentials.json"})," on your system after you ran a ",(0,r.jsx)(n.code,{children:"flutter pub login"}),". The location of the file is different per operating system:"]}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"OS"}),(0,r.jsx)(n.th,{children:"Path"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Linux"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"$XDG_CONFIG_HOME/dart/pub-credentials.json"})," or ",(0,r.jsx)(n.code,{children:"$HOME/.config/dart/pub-credentials.json"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"macOS"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"~/Library/Application\\ Support/dart/pub-credentials.json"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Windows"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"%APPDATA%/dart/pub-credentials.json"})})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,r.jsxs)(n.p,{children:["We recommend using ",(0,r.jsx)(n.a,{href:"https://docs.github.com/en/actions/security-guides/encrypted-secrets",children:"GitHub Secrets"})," for safely storing and reading the credentials."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",children:"name: My Flutter Pub Publish Workflow\n\non:\n push:\n tags:\n - 'my_flutter_package-v*.*.*'\n\njobs:\n build:\n uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_pub_publish.yml@v1\n with:\n flutter_channel: 'stable'\n flutter_version: '3.24.0'\n working_directory: 'packages/my_flutter_package'\n secrets:\n pub_credentials: secrets.PUB_CREDENTIALS\n"})})]})}function u(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>o});var r=s(6540);const t={},l=r.createContext(t);function i(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7a6484a3.30099f64.js b/assets/js/7a6484a3.30099f64.js deleted file mode 100644 index 2b75b61..0000000 --- a/assets/js/7a6484a3.30099f64.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkworkflows_docs=self.webpackChunkworkflows_docs||[]).push([[125],{342:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var r=s(4848),t=s(8453);const l={sidebar_position:4},i="Flutter Pub Publish",o={id:"workflows/flutter_pub_publish",title:"Flutter Pub Publish",description:"We use this workflow to publish a Flutter package to pub.dev.",source:"@site/docs/workflows/flutter_pub_publish.md",sourceDirName:"workflows",slug:"/workflows/flutter_pub_publish",permalink:"/docs/workflows/flutter_pub_publish",draft:!1,unlisted:!1,editUrl:"https://github.com/VeryGoodOpenSource/very_good_workflows/tree/main/site/docs/workflows/flutter_pub_publish.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Flutter Package",permalink:"/docs/workflows/flutter_package"},next:{title:"License Check",permalink:"/docs/workflows/license_check"}},d={},c=[{value:"Steps",id:"steps",level:2},{value:"Inputs",id:"inputs",level:2},{value:"flutter_channel",id:"flutter_channel",level:3},{value:"flutter_version",id:"flutter_version",level:3},{value:"working_directory",id:"working_directory",level:3},{value:"runs_on",id:"runs_on",level:3},{value:"Secrets",id:"secrets",level:2},{value:"pub_credentials",id:"pub_credentials",level:3},{value:"Example Usage",id:"example-usage",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"flutter-pub-publish",children:"Flutter Pub Publish"})}),"\n",(0,r.jsxs)(n.p,{children:["We use this workflow to publish a Flutter package to ",(0,r.jsx)(n.a,{href:"https://pub.dev",children:"pub.dev"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"steps",children:"Steps"}),"\n",(0,r.jsx)(n.p,{children:"The Flutter Pub Publish workflow consists of the following steps:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Install dependencies"}),"\n",(0,r.jsx)(n.li,{children:"Setup pub credentials"}),"\n",(0,r.jsx)(n.li,{children:"Dry run"}),"\n",(0,r.jsx)(n.li,{children:"Publish"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsx)(n.h3,{id:"flutter_channel",children:(0,r.jsx)(n.code,{children:"flutter_channel"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The Flutter release channel to use (e.g. ",(0,r.jsx)(n.code,{children:"stable"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"stable"'})]}),"\n",(0,r.jsx)(n.h3,{id:"flutter_version",children:(0,r.jsx)(n.code,{children:"flutter_version"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The Flutter SDK version to use (e.g. ",(0,r.jsx)(n.code,{children:"2.8.1"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"working_directory",children:(0,r.jsx)(n.code,{children:"working_directory"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The path to the root of the Flutter package."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"."'})]}),"\n",(0,r.jsx)(n.h3,{id:"runs_on",children:(0,r.jsx)(n.code,{children:"runs_on"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," An optional operating system on which to run the workflow."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"ubuntu-latest"'})]}),"\n",(0,r.jsx)(n.h2,{id:"secrets",children:"Secrets"}),"\n",(0,r.jsx)(n.h3,{id:"pub_credentials",children:(0,r.jsx)(n.code,{children:"pub_credentials"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Required"})," The pub credentials needed for publishing. This can be retrieved by reading out your ",(0,r.jsx)(n.code,{children:"pub-credentials.json"})," on your system after you ran a ",(0,r.jsx)(n.code,{children:"flutter pub login"}),". The location of the file is different per operating system:"]}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"OS"}),(0,r.jsx)(n.th,{children:"Path"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Linux"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"$XDG_CONFIG_HOME/dart/pub-credentials.json"})," or ",(0,r.jsx)(n.code,{children:"$HOME/.config/dart/pub-credentials.json"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"macOS"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"~/Library/Application\\ Support/dart/pub-credentials.json"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Windows"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"%APPDATA%/dart/pub-credentials.json"})})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,r.jsxs)(n.p,{children:["We recommend using ",(0,r.jsx)(n.a,{href:"https://docs.github.com/en/actions/security-guides/encrypted-secrets",children:"GitHub Secrets"})," for safely storing and reading the credentials."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",children:"name: My Flutter Pub Publish Workflow\n\non:\n push:\n tags:\n - 'my_flutter_package-v*.*.*'\n\njobs:\n build:\n uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_pub_publish.yml@v1\n with:\n flutter_channel: 'stable'\n flutter_version: '2.8.1'\n working_directory: 'packages/my_flutter_package'\n secrets:\n pub_credentials: secrets.PUB_CREDENTIALS\n"})})]})}function u(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>o});var r=s(6540);const t={},l=r.createContext(t);function i(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a41a336d.4733d961.js b/assets/js/a41a336d.4733d961.js deleted file mode 100644 index 6c97b39..0000000 --- a/assets/js/a41a336d.4733d961.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkworkflows_docs=self.webpackChunkworkflows_docs||[]).push([[330],{8604:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>o,default:()=>h,frontMatter:()=>c,metadata:()=>l,toc:()=>d});var i=s(4848),r=s(8453);const c={sidebar_position:5},o="License Check",l={id:"workflows/license_check",title:"License Check",description:"At VGV, we keep track of the rights and restrictions external dependencies might impose on Dart or Flutter projects.",source:"@site/docs/workflows/license_check.md",sourceDirName:"workflows",slug:"/workflows/license_check",permalink:"/docs/workflows/license_check",draft:!1,unlisted:!1,editUrl:"https://github.com/VeryGoodOpenSource/very_good_workflows/tree/main/site/docs/workflows/license_check.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Flutter Pub Publish",permalink:"/docs/workflows/flutter_pub_publish"},next:{title:"Mason Publish",permalink:"/docs/workflows/mason_publish"}},t={},d=[{value:"Steps",id:"steps",level:2},{value:"Inputs",id:"inputs",level:2},{value:"working_directory",id:"working_directory",level:3},{value:"runs_on",id:"runs_on",level:3},{value:"dart_sdk",id:"dart_sdk",level:3},{value:"allowed",id:"allowed",level:3},{value:"forbidden",id:"forbidden",level:3},{value:"skip_packages",id:"skip_packages",level:3},{value:"dependency_type",id:"dependency_type",level:3},{value:"ignore_retrieval_failures",id:"ignore_retrieval_failures",level:3},{value:"Secrets",id:"secrets",level:2},{value:"ssh_key",id:"ssh_key",level:3},{value:"Example Usage",id:"example-usage",level:2}];function a(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"license-check",children:"License Check"})}),"\n",(0,i.jsx)(n.p,{children:"At VGV, we keep track of the rights and restrictions external dependencies might impose on Dart or Flutter projects."}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["The License Check functionality is powered by ",(0,i.jsx)(n.a,{href:"https://cli.vgv.dev/docs/commands/check_licenses",children:"Very Good CLI's license checker"}),", for a deeper understanding of some ",(0,i.jsx)(n.a,{href:"#inputs",children:"inputs"})," refer to its ",(0,i.jsx)(n.a,{href:"https://cli.vgv.dev/docs/commands/check_licenses",children:"documentation"}),"."]})}),"\n",(0,i.jsx)(n.h2,{id:"steps",children:"Steps"}),"\n",(0,i.jsx)(n.p,{children:"The License Check workflow consists of the following steps:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Setup Dart"}),"\n",(0,i.jsx)(n.li,{children:"Set SSH Key (if provided)"}),"\n",(0,i.jsx)(n.li,{children:"Install project dependencies"}),"\n",(0,i.jsx)(n.li,{children:"Check licenses"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"inputs",children:"Inputs"}),"\n",(0,i.jsx)(n.h3,{id:"working_directory",children:(0,i.jsx)(n.code,{children:"working_directory"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," The path to the root of the Dart or Flutter package."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'"."'})]}),"\n",(0,i.jsx)(n.h3,{id:"runs_on",children:(0,i.jsx)(n.code,{children:"runs_on"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," An optional operating system on which to run the workflow."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'"ubuntu-latest"'})]}),"\n",(0,i.jsx)(n.h3,{id:"dart_sdk",children:(0,i.jsx)(n.code,{children:"dart_sdk"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," Which Dart SDK version to use. It can be a version (e.g. ",(0,i.jsx)(n.code,{children:"2.12.0"}),") or a channel (e.g. ",(0,i.jsx)(n.code,{children:"stable"}),"):"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'"stable"'})]}),"\n",(0,i.jsx)(n.h3,{id:"allowed",children:(0,i.jsx)(n.code,{children:"allowed"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," Only allow the use of certain licenses. The expected format is a comma-separated list."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'"MIT,BSD-3-Clause,BSD-2-Clause,Apache-2.0"'})]}),"\n",(0,i.jsx)(n.h3,{id:"forbidden",children:(0,i.jsx)(n.code,{children:"forbidden"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," Deny the use of certain licenses. The expected format is a comma-separated list."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'""'})]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["The allowed and forbidden options can't be used at the same time. If you want to use ",(0,i.jsx)(n.code,{children:"forbidden"})," set ",(0,i.jsx)(n.code,{children:"allowed"})," to an empty string."]})}),"\n",(0,i.jsx)(n.h3,{id:"skip_packages",children:(0,i.jsx)(n.code,{children:"skip_packages"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," Skip packages from having their licenses checked."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'""'})]}),"\n",(0,i.jsx)(n.h3,{id:"dependency_type",children:(0,i.jsx)(n.code,{children:"dependency_type"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," The type of dependencies to check licenses for."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'"direct-main,transitive"'})]}),"\n",(0,i.jsx)(n.h3,{id:"ignore_retrieval_failures",children:(0,i.jsx)(n.code,{children:"ignore_retrieval_failures"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," Disregard licenses that failed to be retrieved."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h2,{id:"secrets",children:"Secrets"}),"\n",(0,i.jsx)(n.h3,{id:"ssh_key",children:(0,i.jsx)(n.code,{children:"ssh_key"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," An SSH key to use for setting up the credentials for fetching dependencies that are not publicly available."]}),"\n",(0,i.jsx)(n.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:"name: license_check\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.ref }}\n cancel-in-progress: true\n\non:\n pull_request:\n paths:\n - 'pubspec.yaml'\n - '.github/workflows/license_check.yaml'\n push:\n branches:\n - main\n paths:\n - 'pubspec.yaml'\n - '.github/workflows/license_check.yaml'\n\njobs:\n license_check:\n uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/license_check.yml@v1\n with:\n allowed: 'MIT,BSD-3-Clause,BSD-2-Clause,Apache-2.0'\n"})}),"\n",(0,i.jsxs)(n.p,{children:["The example ",(0,i.jsx)(n.a,{href:"https://docs.github.com/en/actions/quickstart#creating-your-first-workflow",children:"workflow file"})," will ",(0,i.jsx)(n.a,{href:"https://docs.github.com/en/actions/using-workflows/triggering-a-workflow",children:"trigger"})," the ",(0,i.jsx)(n.code,{children:"license_check"})," job on every push to the ",(0,i.jsx)(n.code,{children:"main"})," branch and on every pull request that modifies the ",(0,i.jsx)(n.code,{children:"pubspec.yaml"})," or the ",(0,i.jsx)(n.code,{children:"license_check.yaml"})," workflow file."]}),"\n",(0,i.jsxs)(n.p,{children:["If you are ",(0,i.jsxs)(n.a,{href:"https://dart.dev/guides/libraries/private-files#pubspec-lock",children:["committing the ",(0,i.jsx)(n.code,{children:"pubspec.lock"})]})," file for an application package you may consider adding it to the list of paths to trigger the workflow."]}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsx)(n.p,{children:"For repositories with multiple packages we recommend adding a workflow file per package to avoid triggering a license check for packages which dependencies haven't been modified."})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>l});var i=s(6540);const r={},c=i.createContext(r);function o(e){const n=i.useContext(c);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a41a336d.7d38d22c.js b/assets/js/a41a336d.7d38d22c.js new file mode 100644 index 0000000..2182e6d --- /dev/null +++ b/assets/js/a41a336d.7d38d22c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkworkflows_docs=self.webpackChunkworkflows_docs||[]).push([[330],{8604:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>o,default:()=>h,frontMatter:()=>c,metadata:()=>l,toc:()=>d});var i=s(4848),r=s(8453);const c={sidebar_position:5},o="License Check",l={id:"workflows/license_check",title:"License Check",description:"At VGV, we keep track of the rights and restrictions external dependencies might impose on Dart or Flutter projects.",source:"@site/docs/workflows/license_check.md",sourceDirName:"workflows",slug:"/workflows/license_check",permalink:"/docs/workflows/license_check",draft:!1,unlisted:!1,editUrl:"https://github.com/VeryGoodOpenSource/very_good_workflows/tree/main/site/docs/workflows/license_check.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Flutter Pub Publish",permalink:"/docs/workflows/flutter_pub_publish"},next:{title:"Mason Publish",permalink:"/docs/workflows/mason_publish"}},t={},d=[{value:"Steps",id:"steps",level:2},{value:"Inputs",id:"inputs",level:2},{value:"working_directory",id:"working_directory",level:3},{value:"runs_on",id:"runs_on",level:3},{value:"dart_sdk",id:"dart_sdk",level:3},{value:"allowed",id:"allowed",level:3},{value:"forbidden",id:"forbidden",level:3},{value:"skip_packages",id:"skip_packages",level:3},{value:"dependency_type",id:"dependency_type",level:3},{value:"ignore_retrieval_failures",id:"ignore_retrieval_failures",level:3},{value:"Secrets",id:"secrets",level:2},{value:"ssh_key",id:"ssh_key",level:3},{value:"Example Usage",id:"example-usage",level:2}];function a(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"license-check",children:"License Check"})}),"\n",(0,i.jsx)(n.p,{children:"At VGV, we keep track of the rights and restrictions external dependencies might impose on Dart or Flutter projects."}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["The License Check functionality is powered by ",(0,i.jsx)(n.a,{href:"https://cli.vgv.dev/docs/commands/check_licenses",children:"Very Good CLI's license checker"}),", for a deeper understanding of some ",(0,i.jsx)(n.a,{href:"#inputs",children:"inputs"})," refer to its ",(0,i.jsx)(n.a,{href:"https://cli.vgv.dev/docs/commands/check_licenses",children:"documentation"}),"."]})}),"\n",(0,i.jsx)(n.h2,{id:"steps",children:"Steps"}),"\n",(0,i.jsx)(n.p,{children:"The License Check workflow consists of the following steps:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Setup Dart"}),"\n",(0,i.jsx)(n.li,{children:"Set SSH Key (if provided)"}),"\n",(0,i.jsx)(n.li,{children:"Install project dependencies"}),"\n",(0,i.jsx)(n.li,{children:"Check licenses"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"inputs",children:"Inputs"}),"\n",(0,i.jsx)(n.h3,{id:"working_directory",children:(0,i.jsx)(n.code,{children:"working_directory"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," The path to the root of the Dart or Flutter package."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'"."'})]}),"\n",(0,i.jsx)(n.h3,{id:"runs_on",children:(0,i.jsx)(n.code,{children:"runs_on"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," An optional operating system on which to run the workflow."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'"ubuntu-latest"'})]}),"\n",(0,i.jsx)(n.h3,{id:"dart_sdk",children:(0,i.jsx)(n.code,{children:"dart_sdk"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," Which Dart SDK version to use. It can be a version (e.g. ",(0,i.jsx)(n.code,{children:"3.5.0"}),") or a channel (e.g. ",(0,i.jsx)(n.code,{children:"stable"}),"):"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'"stable"'})]}),"\n",(0,i.jsx)(n.h3,{id:"allowed",children:(0,i.jsx)(n.code,{children:"allowed"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," Only allow the use of certain licenses. The expected format is a comma-separated list."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'"MIT,BSD-3-Clause,BSD-2-Clause,Apache-2.0"'})]}),"\n",(0,i.jsx)(n.h3,{id:"forbidden",children:(0,i.jsx)(n.code,{children:"forbidden"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," Deny the use of certain licenses. The expected format is a comma-separated list."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'""'})]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["The allowed and forbidden options can't be used at the same time. If you want to use ",(0,i.jsx)(n.code,{children:"forbidden"})," set ",(0,i.jsx)(n.code,{children:"allowed"})," to an empty string."]})}),"\n",(0,i.jsx)(n.h3,{id:"skip_packages",children:(0,i.jsx)(n.code,{children:"skip_packages"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," Skip packages from having their licenses checked."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'""'})]}),"\n",(0,i.jsx)(n.h3,{id:"dependency_type",children:(0,i.jsx)(n.code,{children:"dependency_type"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," The type of dependencies to check licenses for."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:'"direct-main,transitive"'})]}),"\n",(0,i.jsx)(n.h3,{id:"ignore_retrieval_failures",children:(0,i.jsx)(n.code,{children:"ignore_retrieval_failures"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," Disregard licenses that failed to be retrieved."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Default"})," ",(0,i.jsx)(n.code,{children:"false"})]}),"\n",(0,i.jsx)(n.h2,{id:"secrets",children:"Secrets"}),"\n",(0,i.jsx)(n.h3,{id:"ssh_key",children:(0,i.jsx)(n.code,{children:"ssh_key"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Optional"})," An SSH key to use for setting up the credentials for fetching dependencies that are not publicly available."]}),"\n",(0,i.jsx)(n.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:"name: license_check\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.ref }}\n cancel-in-progress: true\n\non:\n pull_request:\n paths:\n - 'pubspec.yaml'\n - '.github/workflows/license_check.yaml'\n push:\n branches:\n - main\n paths:\n - 'pubspec.yaml'\n - '.github/workflows/license_check.yaml'\n\njobs:\n license_check:\n uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/license_check.yml@v1\n with:\n allowed: 'MIT,BSD-3-Clause,BSD-2-Clause,Apache-2.0'\n"})}),"\n",(0,i.jsxs)(n.p,{children:["The example ",(0,i.jsx)(n.a,{href:"https://docs.github.com/en/actions/quickstart#creating-your-first-workflow",children:"workflow file"})," will ",(0,i.jsx)(n.a,{href:"https://docs.github.com/en/actions/using-workflows/triggering-a-workflow",children:"trigger"})," the ",(0,i.jsx)(n.code,{children:"license_check"})," job on every push to the ",(0,i.jsx)(n.code,{children:"main"})," branch and on every pull request that modifies the ",(0,i.jsx)(n.code,{children:"pubspec.yaml"})," or the ",(0,i.jsx)(n.code,{children:"license_check.yaml"})," workflow file."]}),"\n",(0,i.jsxs)(n.p,{children:["If you are ",(0,i.jsxs)(n.a,{href:"https://dart.dev/guides/libraries/private-files#pubspec-lock",children:["committing the ",(0,i.jsx)(n.code,{children:"pubspec.lock"})]})," file for an application package you may consider adding it to the list of paths to trigger the workflow."]}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsx)(n.p,{children:"For repositories with multiple packages we recommend adding a workflow file per package to avoid triggering a license check for packages which dependencies haven't been modified."})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>l});var i=s(6540);const r={},c=i.createContext(r);function o(e){const n=i.useContext(c);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dad825aa.3495c210.js b/assets/js/dad825aa.3495c210.js deleted file mode 100644 index a47a59e..0000000 --- a/assets/js/dad825aa.3495c210.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkworkflows_docs=self.webpackChunkworkflows_docs||[]).push([[531],{6599:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>d,metadata:()=>o,toc:()=>c});var n=r(4848),t=r(8453);const d={sidebar_position:2},i="Dart Pub Publish",o={id:"workflows/dart_pub_publish",title:"Dart Pub Publish",description:"We use this workflow to publish a Dart package to pub.dev.",source:"@site/docs/workflows/dart_pub_publish.md",sourceDirName:"workflows",slug:"/workflows/dart_pub_publish",permalink:"/docs/workflows/dart_pub_publish",draft:!1,unlisted:!1,editUrl:"https://github.com/VeryGoodOpenSource/very_good_workflows/tree/main/site/docs/workflows/dart_pub_publish.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Dart Package",permalink:"/docs/workflows/dart_package"},next:{title:"Flutter Package",permalink:"/docs/workflows/flutter_package"}},l={},c=[{value:"Steps",id:"steps",level:2},{value:"Inputs",id:"inputs",level:2},{value:"dart_sdk",id:"dart_sdk",level:3},{value:"working_directory",id:"working_directory",level:3},{value:"runs_on",id:"runs_on",level:3},{value:"Secrets",id:"secrets",level:2},{value:"pub_credentials",id:"pub_credentials",level:3},{value:"Example Usage",id:"example-usage",level:2}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"dart-pub-publish",children:"Dart Pub Publish"})}),"\n",(0,n.jsxs)(s.p,{children:["We use this workflow to publish a Dart package to ",(0,n.jsx)(s.a,{href:"https://pub.dev",children:"pub.dev"}),"."]}),"\n",(0,n.jsx)(s.h2,{id:"steps",children:"Steps"}),"\n",(0,n.jsx)(s.p,{children:"The Dart Pub Publish workflow consists of the following steps:"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsx)(s.li,{children:"Install dependencies"}),"\n",(0,n.jsx)(s.li,{children:"Setup pub credentials"}),"\n",(0,n.jsx)(s.li,{children:"Dry run"}),"\n",(0,n.jsx)(s.li,{children:"Publish"}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"inputs",children:"Inputs"}),"\n",(0,n.jsx)(s.h3,{id:"dart_sdk",children:(0,n.jsx)(s.code,{children:"dart_sdk"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Optional"})," Which Dart SDK version to use. It can be a version (e.g. ",(0,n.jsx)(s.code,{children:"2.12.0"}),") or a channel (e.g. ",(0,n.jsx)(s.code,{children:"stable"}),"):"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Default"})," ",(0,n.jsx)(s.code,{children:'"stable"'})]}),"\n",(0,n.jsx)(s.h3,{id:"working_directory",children:(0,n.jsx)(s.code,{children:"working_directory"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Optional"})," The path to the root of the Dart package."]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Default"})," ",(0,n.jsx)(s.code,{children:'"."'})]}),"\n",(0,n.jsx)(s.h3,{id:"runs_on",children:(0,n.jsx)(s.code,{children:"runs_on"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Optional"})," An optional operating system on which to run the workflow."]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Default"})," ",(0,n.jsx)(s.code,{children:'"ubuntu-latest"'})]}),"\n",(0,n.jsx)(s.h2,{id:"secrets",children:"Secrets"}),"\n",(0,n.jsx)(s.h3,{id:"pub_credentials",children:(0,n.jsx)(s.code,{children:"pub_credentials"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Required"})," The pub credentials needed for publishing. This can be retrieved by reading out your ",(0,n.jsx)(s.code,{children:"pub-credentials.json"})," on your system after you ran a ",(0,n.jsx)(s.code,{children:"dart pub login"}),", the location of the file is different per operating system:"]}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"OS"}),(0,n.jsx)(s.th,{children:"Path"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"Linux"}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"$XDG_CONFIG_HOME/dart/pub-credentials.json"})," or ",(0,n.jsx)(s.code,{children:"$HOME/.config/dart/pub-credentials.json"})]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"macOS"}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"~/Library/Application\\ Support/dart/pub-credentials.json"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"Windows"}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"%APPDATA%/dart/pub-credentials.json"})})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(s.p,{children:["We recommend using ",(0,n.jsx)(s.a,{href:"https://docs.github.com/en/actions/security-guides/encrypted-secrets",children:"GitHub Secrets"})," for safely storing and reading the credentials."]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-yaml",children:"name: My Dart Pub Publish Workflow\n\non: pull_request\n\njobs:\n build:\n uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_pub_publish.yml@v1\n with:\n dart_sdk: 'stable'\n working_directory: 'packages/my_dart_package'\n secrets:\n pub_credentials: secrets.PUB_CREDENTIALS\n"})})]})}function h(e={}){const{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},8453:(e,s,r)=>{r.d(s,{R:()=>i,x:()=>o});var n=r(6540);const t={},d=n.createContext(t);function i(e){const s=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),n.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dad825aa.b5d80911.js b/assets/js/dad825aa.b5d80911.js new file mode 100644 index 0000000..0d97579 --- /dev/null +++ b/assets/js/dad825aa.b5d80911.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkworkflows_docs=self.webpackChunkworkflows_docs||[]).push([[531],{6599:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>d,metadata:()=>o,toc:()=>c});var n=r(4848),t=r(8453);const d={sidebar_position:2},i="Dart Pub Publish",o={id:"workflows/dart_pub_publish",title:"Dart Pub Publish",description:"We use this workflow to publish a Dart package to pub.dev.",source:"@site/docs/workflows/dart_pub_publish.md",sourceDirName:"workflows",slug:"/workflows/dart_pub_publish",permalink:"/docs/workflows/dart_pub_publish",draft:!1,unlisted:!1,editUrl:"https://github.com/VeryGoodOpenSource/very_good_workflows/tree/main/site/docs/workflows/dart_pub_publish.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Dart Package",permalink:"/docs/workflows/dart_package"},next:{title:"Flutter Package",permalink:"/docs/workflows/flutter_package"}},l={},c=[{value:"Steps",id:"steps",level:2},{value:"Inputs",id:"inputs",level:2},{value:"dart_sdk",id:"dart_sdk",level:3},{value:"working_directory",id:"working_directory",level:3},{value:"runs_on",id:"runs_on",level:3},{value:"Secrets",id:"secrets",level:2},{value:"pub_credentials",id:"pub_credentials",level:3},{value:"Example Usage",id:"example-usage",level:2}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"dart-pub-publish",children:"Dart Pub Publish"})}),"\n",(0,n.jsxs)(s.p,{children:["We use this workflow to publish a Dart package to ",(0,n.jsx)(s.a,{href:"https://pub.dev",children:"pub.dev"}),"."]}),"\n",(0,n.jsx)(s.h2,{id:"steps",children:"Steps"}),"\n",(0,n.jsx)(s.p,{children:"The Dart Pub Publish workflow consists of the following steps:"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsx)(s.li,{children:"Install dependencies"}),"\n",(0,n.jsx)(s.li,{children:"Setup pub credentials"}),"\n",(0,n.jsx)(s.li,{children:"Dry run"}),"\n",(0,n.jsx)(s.li,{children:"Publish"}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"inputs",children:"Inputs"}),"\n",(0,n.jsx)(s.h3,{id:"dart_sdk",children:(0,n.jsx)(s.code,{children:"dart_sdk"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Optional"})," Which Dart SDK version to use. It can be a version (e.g. ",(0,n.jsx)(s.code,{children:"3.5.0"}),") or a channel (e.g. ",(0,n.jsx)(s.code,{children:"stable"}),"):"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Default"})," ",(0,n.jsx)(s.code,{children:'"stable"'})]}),"\n",(0,n.jsx)(s.h3,{id:"working_directory",children:(0,n.jsx)(s.code,{children:"working_directory"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Optional"})," The path to the root of the Dart package."]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Default"})," ",(0,n.jsx)(s.code,{children:'"."'})]}),"\n",(0,n.jsx)(s.h3,{id:"runs_on",children:(0,n.jsx)(s.code,{children:"runs_on"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Optional"})," An optional operating system on which to run the workflow."]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Default"})," ",(0,n.jsx)(s.code,{children:'"ubuntu-latest"'})]}),"\n",(0,n.jsx)(s.h2,{id:"secrets",children:"Secrets"}),"\n",(0,n.jsx)(s.h3,{id:"pub_credentials",children:(0,n.jsx)(s.code,{children:"pub_credentials"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Required"})," The pub credentials needed for publishing. This can be retrieved by reading out your ",(0,n.jsx)(s.code,{children:"pub-credentials.json"})," on your system after you ran a ",(0,n.jsx)(s.code,{children:"dart pub login"}),", the location of the file is different per operating system:"]}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"OS"}),(0,n.jsx)(s.th,{children:"Path"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"Linux"}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"$XDG_CONFIG_HOME/dart/pub-credentials.json"})," or ",(0,n.jsx)(s.code,{children:"$HOME/.config/dart/pub-credentials.json"})]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"macOS"}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"~/Library/Application\\ Support/dart/pub-credentials.json"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"Windows"}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"%APPDATA%/dart/pub-credentials.json"})})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(s.p,{children:["We recommend using ",(0,n.jsx)(s.a,{href:"https://docs.github.com/en/actions/security-guides/encrypted-secrets",children:"GitHub Secrets"})," for safely storing and reading the credentials."]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-yaml",children:"name: My Dart Pub Publish Workflow\n\non: pull_request\n\njobs:\n build:\n uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_pub_publish.yml@v1\n with:\n dart_sdk: 'stable'\n working_directory: 'packages/my_dart_package'\n secrets:\n pub_credentials: secrets.PUB_CREDENTIALS\n"})})]})}function h(e={}){const{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},8453:(e,s,r)=>{r.d(s,{R:()=>i,x:()=>o});var n=r(6540);const t={},d=n.createContext(t);function i(e){const s=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),n.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/eadb6e1d.5c449659.js b/assets/js/eadb6e1d.6b9ed2a7.js similarity index 52% rename from assets/js/eadb6e1d.5c449659.js rename to assets/js/eadb6e1d.6b9ed2a7.js index e2ccc43..2c243d1 100644 --- a/assets/js/eadb6e1d.5c449659.js +++ b/assets/js/eadb6e1d.6b9ed2a7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkworkflows_docs=self.webpackChunkworkflows_docs||[]).push([[3],{7205:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>d});var r=s(4848),t=s(8453);const l={sidebar_position:3},o="Flutter Package",i={id:"workflows/flutter_package",title:"Flutter Package",description:"This workflow runs helpful checks on a Flutter package according to the steps below. As with any workflow, it can be customized.",source:"@site/docs/workflows/flutter_package.md",sourceDirName:"workflows",slug:"/workflows/flutter_package",permalink:"/docs/workflows/flutter_package",draft:!1,unlisted:!1,editUrl:"https://github.com/VeryGoodOpenSource/very_good_workflows/tree/main/site/docs/workflows/flutter_package.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Dart Pub Publish",permalink:"/docs/workflows/dart_pub_publish"},next:{title:"Flutter Pub Publish",permalink:"/docs/workflows/flutter_pub_publish"}},c={},d=[{value:"Steps",id:"steps",level:2},{value:"Inputs",id:"inputs",level:2},{value:"analyze_directories",id:"analyze_directories",level:3},{value:"format_directories",id:"format_directories",level:3},{value:"concurrency",id:"concurrency",level:3},{value:"coverage_excludes",id:"coverage_excludes",level:3},{value:"flutter_channel",id:"flutter_channel",level:3},{value:"flutter_version",id:"flutter_version",level:3},{value:"format_line_length",id:"format_line_length",level:3},{value:"min_coverage",id:"min_coverage",level:3},{value:"setup",id:"setup",level:3},{value:"working_directory",id:"working_directory",level:3},{value:"test_optimization",id:"test_optimization",level:3},{value:"test_recursion",id:"test_recursion",level:3},{value:"runs_on",id:"runs_on",level:3},{value:"package_get_excludes",id:"package_get_excludes",level:3},{value:"Secrets",id:"secrets",level:2},{value:"ssh_key",id:"ssh_key",level:3},{value:"Example Usage",id:"example-usage",level:2}];function a(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"flutter-package",children:"Flutter Package"})}),"\n",(0,r.jsx)(n.p,{children:"This workflow runs helpful checks on a Flutter package according to the steps below. As with any workflow, it can be customized."}),"\n",(0,r.jsx)(n.h2,{id:"steps",children:"Steps"}),"\n",(0,r.jsx)(n.p,{children:"The Flutter package workflow consists of the following steps:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Install dependencies"}),"\n",(0,r.jsx)(n.li,{children:"Format"}),"\n",(0,r.jsx)(n.li,{children:"Analyze"}),"\n",(0,r.jsx)(n.li,{children:"Run tests"}),"\n",(0,r.jsx)(n.li,{children:"Check code coverage"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsx)(n.h3,{id:"analyze_directories",children:(0,r.jsx)(n.code,{children:"analyze_directories"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A space-separated list of folders that should be analyzed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"lib test"'})]}),"\n",(0,r.jsx)(n.h3,{id:"format_directories",children:(0,r.jsx)(n.code,{children:"format_directories"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A space-separated list of folders that should be formatted."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"lib test"'})]}),"\n",(0,r.jsx)(n.h3,{id:"concurrency",children:(0,r.jsx)(n.code,{children:"concurrency"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The number of concurrent test suites run."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"4"})]}),"\n",(0,r.jsx)(n.h3,{id:"coverage_excludes",children:(0,r.jsx)(n.code,{children:"coverage_excludes"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A space-separated list of paths to exclude from the coverage report. Supports ",(0,r.jsx)(n.code,{children:"globs"})," to describe file patterns."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"flutter_channel",children:(0,r.jsx)(n.code,{children:"flutter_channel"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The Flutter release channel to use (e.g. ",(0,r.jsx)(n.code,{children:"stable"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"stable"'})]}),"\n",(0,r.jsx)(n.h3,{id:"flutter_version",children:(0,r.jsx)(n.code,{children:"flutter_version"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The Flutter SDK version to use (e.g. ",(0,r.jsx)(n.code,{children:"2.8.1"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"format_line_length",children:(0,r.jsx)(n.code,{children:"format_line_length"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The preferred line length preferred for running the ",(0,r.jsx)(n.code,{children:"dart format"})," command. Be aware that this does not change the behavior of the analysis step and longer lines could still make the workflow fail if the rule ",(0,r.jsx)(n.code,{children:"lines_longer_than_80_chars"})," is used."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"80"'})]}),"\n",(0,r.jsx)(n.h3,{id:"min_coverage",children:(0,r.jsx)(n.code,{children:"min_coverage"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The minimum coverage percentage allowed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," 100"]}),"\n",(0,r.jsx)(n.h3,{id:"setup",children:(0,r.jsx)(n.code,{children:"setup"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A command that should be executed immediately after dependencies are installed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"working_directory",children:(0,r.jsx)(n.code,{children:"working_directory"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The path to the root of the Flutter package."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"."'})]}),"\n",(0,r.jsx)(n.h3,{id:"test_optimization",children:(0,r.jsx)(n.code,{children:"test_optimization"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," Enable the test optimization."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"true"})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Note"}),": Since the optimization process groups tests into a single file, golden tests will not work properly. Consider disabling optimizations if you are using golden tests."]}),"\n",(0,r.jsx)(n.h3,{id:"test_recursion",children:(0,r.jsx)(n.code,{children:"test_recursion"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," Whether to recursively run tests in nested directories."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"false"})]}),"\n",(0,r.jsx)(n.h3,{id:"runs_on",children:(0,r.jsx)(n.code,{children:"runs_on"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The operating system on which to run the workflow."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"ubuntu-latest"'})]}),"\n",(0,r.jsx)(n.h3,{id:"package_get_excludes",children:(0,r.jsx)(n.code,{children:"package_get_excludes"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," List of paths to exclude from ",(0,r.jsx)(n.code,{children:"packages get"}),". Supports ",(0,r.jsx)(n.code,{children:"globs"})," to describe file patterns."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"!*"'})]}),"\n",(0,r.jsx)(n.h2,{id:"secrets",children:"Secrets"}),"\n",(0,r.jsx)(n.h3,{id:"ssh_key",children:(0,r.jsx)(n.code,{children:"ssh_key"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," An SSH key used to access private repositories when installing dependencies."]}),"\n",(0,r.jsx)(n.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",children:"name: My Flutter Workflow\n\non: pull_request\n\njobs:\n build:\n uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1\n with:\n coverage_excludes: '*.g.dart'\n flutter_channel: 'stable'\n flutter_version: '2.8.1'\n working_directory: 'examples/my_flutter_package'\n test_recursion: true\n secrets:\n ssh_key: ${{secrets.EXAMPLE_KEY}}\n"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>i});var r=s(6540);const t={},l=r.createContext(t);function o(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkworkflows_docs=self.webpackChunkworkflows_docs||[]).push([[3],{7205:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>d});var r=s(4848),t=s(8453);const l={sidebar_position:3},o="Flutter Package",i={id:"workflows/flutter_package",title:"Flutter Package",description:"This workflow runs helpful checks on a Flutter package according to the steps below. As with any workflow, it can be customized.",source:"@site/docs/workflows/flutter_package.md",sourceDirName:"workflows",slug:"/workflows/flutter_package",permalink:"/docs/workflows/flutter_package",draft:!1,unlisted:!1,editUrl:"https://github.com/VeryGoodOpenSource/very_good_workflows/tree/main/site/docs/workflows/flutter_package.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Dart Pub Publish",permalink:"/docs/workflows/dart_pub_publish"},next:{title:"Flutter Pub Publish",permalink:"/docs/workflows/flutter_pub_publish"}},c={},d=[{value:"Steps",id:"steps",level:2},{value:"Inputs",id:"inputs",level:2},{value:"analyze_directories",id:"analyze_directories",level:3},{value:"format_directories",id:"format_directories",level:3},{value:"concurrency",id:"concurrency",level:3},{value:"coverage_excludes",id:"coverage_excludes",level:3},{value:"flutter_channel",id:"flutter_channel",level:3},{value:"flutter_version",id:"flutter_version",level:3},{value:"format_line_length",id:"format_line_length",level:3},{value:"min_coverage",id:"min_coverage",level:3},{value:"setup",id:"setup",level:3},{value:"working_directory",id:"working_directory",level:3},{value:"test_optimization",id:"test_optimization",level:3},{value:"test_recursion",id:"test_recursion",level:3},{value:"runs_on",id:"runs_on",level:3},{value:"package_get_excludes",id:"package_get_excludes",level:3},{value:"Secrets",id:"secrets",level:2},{value:"ssh_key",id:"ssh_key",level:3},{value:"Example Usage",id:"example-usage",level:2}];function a(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"flutter-package",children:"Flutter Package"})}),"\n",(0,r.jsx)(n.p,{children:"This workflow runs helpful checks on a Flutter package according to the steps below. As with any workflow, it can be customized."}),"\n",(0,r.jsx)(n.h2,{id:"steps",children:"Steps"}),"\n",(0,r.jsx)(n.p,{children:"The Flutter package workflow consists of the following steps:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Install dependencies"}),"\n",(0,r.jsx)(n.li,{children:"Format"}),"\n",(0,r.jsx)(n.li,{children:"Analyze"}),"\n",(0,r.jsx)(n.li,{children:"Run tests"}),"\n",(0,r.jsx)(n.li,{children:"Check code coverage"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsx)(n.h3,{id:"analyze_directories",children:(0,r.jsx)(n.code,{children:"analyze_directories"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A space-separated list of folders that should be analyzed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"lib test"'})]}),"\n",(0,r.jsx)(n.h3,{id:"format_directories",children:(0,r.jsx)(n.code,{children:"format_directories"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A space-separated list of folders that should be formatted."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"lib test"'})]}),"\n",(0,r.jsx)(n.h3,{id:"concurrency",children:(0,r.jsx)(n.code,{children:"concurrency"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The number of concurrent test suites run."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"4"})]}),"\n",(0,r.jsx)(n.h3,{id:"coverage_excludes",children:(0,r.jsx)(n.code,{children:"coverage_excludes"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A space-separated list of paths to exclude from the coverage report. Supports ",(0,r.jsx)(n.code,{children:"globs"})," to describe file patterns."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"flutter_channel",children:(0,r.jsx)(n.code,{children:"flutter_channel"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The Flutter release channel to use (e.g. ",(0,r.jsx)(n.code,{children:"stable"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"stable"'})]}),"\n",(0,r.jsx)(n.h3,{id:"flutter_version",children:(0,r.jsx)(n.code,{children:"flutter_version"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The Flutter SDK version to use (e.g. ",(0,r.jsx)(n.code,{children:"3.24.0"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"format_line_length",children:(0,r.jsx)(n.code,{children:"format_line_length"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The preferred line length preferred for running the ",(0,r.jsx)(n.code,{children:"dart format"})," command. Be aware that this does not change the behavior of the analysis step and longer lines could still make the workflow fail if the rule ",(0,r.jsx)(n.code,{children:"lines_longer_than_80_chars"})," is used."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"80"'})]}),"\n",(0,r.jsx)(n.h3,{id:"min_coverage",children:(0,r.jsx)(n.code,{children:"min_coverage"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The minimum coverage percentage allowed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," 100"]}),"\n",(0,r.jsx)(n.h3,{id:"setup",children:(0,r.jsx)(n.code,{children:"setup"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," A command that should be executed immediately after dependencies are installed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'""'})]}),"\n",(0,r.jsx)(n.h3,{id:"working_directory",children:(0,r.jsx)(n.code,{children:"working_directory"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The path to the root of the Flutter package."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"."'})]}),"\n",(0,r.jsx)(n.h3,{id:"test_optimization",children:(0,r.jsx)(n.code,{children:"test_optimization"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," Enable the test optimization."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"true"})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Note"}),": Since the optimization process groups tests into a single file, golden tests will not work properly. Consider disabling optimizations if you are using golden tests."]}),"\n",(0,r.jsx)(n.h3,{id:"test_recursion",children:(0,r.jsx)(n.code,{children:"test_recursion"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," Whether to recursively run tests in nested directories."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:"false"})]}),"\n",(0,r.jsx)(n.h3,{id:"runs_on",children:(0,r.jsx)(n.code,{children:"runs_on"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," The operating system on which to run the workflow."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"ubuntu-latest"'})]}),"\n",(0,r.jsx)(n.h3,{id:"package_get_excludes",children:(0,r.jsx)(n.code,{children:"package_get_excludes"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," List of paths to exclude from ",(0,r.jsx)(n.code,{children:"packages get"}),". Supports ",(0,r.jsx)(n.code,{children:"globs"})," to describe file patterns."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Default"})," ",(0,r.jsx)(n.code,{children:'"!*"'})]}),"\n",(0,r.jsx)(n.h2,{id:"secrets",children:"Secrets"}),"\n",(0,r.jsx)(n.h3,{id:"ssh_key",children:(0,r.jsx)(n.code,{children:"ssh_key"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Optional"})," An SSH key used to access private repositories when installing dependencies."]}),"\n",(0,r.jsx)(n.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",children:"name: My Flutter Workflow\n\non: pull_request\n\njobs:\n build:\n uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1\n with:\n coverage_excludes: '*.g.dart'\n flutter_channel: 'stable'\n flutter_version: '3.24.0'\n working_directory: 'examples/my_flutter_package'\n test_recursion: true\n secrets:\n ssh_key: ${{secrets.EXAMPLE_KEY}}\n"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>i});var r=s(6540);const t={},l=r.createContext(t);function o(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.f7a8b770.js b/assets/js/runtime~main.e6151a95.js similarity index 92% rename from assets/js/runtime~main.f7a8b770.js rename to assets/js/runtime~main.e6151a95.js index 366bf67..6a2ac14 100644 --- a/assets/js/runtime~main.f7a8b770.js +++ b/assets/js/runtime~main.e6151a95.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,t,r,o,n={},d={};function f(e){var a=d[e];if(void 0!==a)return a.exports;var t=d[e]={exports:{}};return n[e].call(t.exports,t,t.exports,f),t.exports}f.m=n,e=[],f.O=(a,t,r,o)=>{if(!t){var n=1/0;for(u=0;u=o)&&Object.keys(f.O).every((e=>f.O[e](t[i])))?t.splice(i--,1):(d=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[t,r,o]},f.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return f.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var n={};a=a||[null,t({}),t([]),t(t)];for(var d=2&r&&e;"object"==typeof d&&!~a.indexOf(d);d=t(d))Object.getOwnPropertyNames(d).forEach((a=>n[a]=()=>e[a]));return n.default=()=>e,f.d(o,n),o},f.d=(e,a)=>{for(var t in a)f.o(a,t)&&!f.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((a,t)=>(f.f[t](e,a),a)),[])),f.u=e=>"assets/js/"+({3:"eadb6e1d",48:"a94703ab",98:"a7bd4aaa",125:"7a6484a3",134:"7a1ea754",149:"750cda66",235:"a7456010",330:"a41a336d",401:"17896441",413:"1db64337",481:"2a90153a",531:"dad825aa",583:"1df93b7f",647:"5e95c892",725:"0166da37",742:"aba21aa0",836:"6126a50b",849:"0058b4c6",874:"68345f43",969:"14eb3368"}[e]||e)+"."+{3:"5c449659",48:"4c848ecd",98:"b483b20b",125:"30099f64",134:"1696af58",149:"fcc5d03c",235:"cfde3eee",237:"66c79d02",330:"4733d961",401:"d7bc0433",413:"aedcab4d",481:"e18a2670",531:"3495c210",583:"cbef2e1e",647:"dbff6811",725:"b1b0bb66",742:"16c7cca6",836:"5ffadabb",849:"9b55e11d",874:"97b55cc9",969:"aff52339"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},o="workflows-docs:",f.l=(e,a,t,n)=>{if(r[e])r[e].push(a);else{var d,i;if(void 0!==t)for(var c=document.getElementsByTagName("script"),u=0;u{d.onerror=d.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),o&&o.forEach((e=>e(t))),a)return a(t)},s=setTimeout(b.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=b.bind(null,d.onerror),d.onload=b.bind(null,d.onload),i&&document.head.appendChild(d)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={17896441:"401",eadb6e1d:"3",a94703ab:"48",a7bd4aaa:"98","7a6484a3":"125","7a1ea754":"134","750cda66":"149",a7456010:"235",a41a336d:"330","1db64337":"413","2a90153a":"481",dad825aa:"531","1df93b7f":"583","5e95c892":"647","0166da37":"725",aba21aa0:"742","6126a50b":"836","0058b4c6":"849","68345f43":"874","14eb3368":"969"}[e]||e,f.p+f.u(e)},(()=>{var e={354:0,869:0};f.f.j=(a,t)=>{var r=f.o(e,a)?e[a]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(354|869)$/.test(a))e[a]=0;else{var o=new Promise(((t,o)=>r=e[a]=[t,o]));t.push(r[2]=o);var n=f.p+f.u(a),d=new Error;f.l(n,(t=>{if(f.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;d.message="Loading chunk "+a+" failed.\n("+o+": "+n+")",d.name="ChunkLoadError",d.type=o,d.request=n,r[1](d)}}),"chunk-"+a,a)}},f.O.j=a=>0===e[a];var a=(a,t)=>{var r,o,n=t[0],d=t[1],i=t[2],c=0;if(n.some((a=>0!==e[a]))){for(r in d)f.o(d,r)&&(f.m[r]=d[r]);if(i)var u=i(f)}for(a&&a(t);c{"use strict";var e,a,t,r,o,n={},d={};function f(e){var a=d[e];if(void 0!==a)return a.exports;var t=d[e]={exports:{}};return n[e].call(t.exports,t,t.exports,f),t.exports}f.m=n,e=[],f.O=(a,t,r,o)=>{if(!t){var n=1/0;for(u=0;u=o)&&Object.keys(f.O).every((e=>f.O[e](t[i])))?t.splice(i--,1):(d=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[t,r,o]},f.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return f.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var n={};a=a||[null,t({}),t([]),t(t)];for(var d=2&r&&e;"object"==typeof d&&!~a.indexOf(d);d=t(d))Object.getOwnPropertyNames(d).forEach((a=>n[a]=()=>e[a]));return n.default=()=>e,f.d(o,n),o},f.d=(e,a)=>{for(var t in a)f.o(a,t)&&!f.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((a,t)=>(f.f[t](e,a),a)),[])),f.u=e=>"assets/js/"+({3:"eadb6e1d",48:"a94703ab",98:"a7bd4aaa",125:"7a6484a3",134:"7a1ea754",149:"750cda66",235:"a7456010",330:"a41a336d",401:"17896441",413:"1db64337",481:"2a90153a",531:"dad825aa",583:"1df93b7f",647:"5e95c892",725:"0166da37",742:"aba21aa0",836:"6126a50b",849:"0058b4c6",874:"68345f43",969:"14eb3368"}[e]||e)+"."+{3:"6b9ed2a7",48:"4c848ecd",98:"b483b20b",125:"01fb8033",134:"1696af58",149:"fcc5d03c",235:"cfde3eee",237:"66c79d02",330:"7d38d22c",401:"d7bc0433",413:"aedcab4d",481:"e18a2670",531:"b5d80911",583:"cbef2e1e",647:"dbff6811",725:"b1b0bb66",742:"16c7cca6",836:"375ea7a1",849:"9b55e11d",874:"97b55cc9",969:"aff52339"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},o="workflows-docs:",f.l=(e,a,t,n)=>{if(r[e])r[e].push(a);else{var d,i;if(void 0!==t)for(var c=document.getElementsByTagName("script"),u=0;u{d.onerror=d.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),o&&o.forEach((e=>e(t))),a)return a(t)},s=setTimeout(b.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=b.bind(null,d.onerror),d.onload=b.bind(null,d.onload),i&&document.head.appendChild(d)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={17896441:"401",eadb6e1d:"3",a94703ab:"48",a7bd4aaa:"98","7a6484a3":"125","7a1ea754":"134","750cda66":"149",a7456010:"235",a41a336d:"330","1db64337":"413","2a90153a":"481",dad825aa:"531","1df93b7f":"583","5e95c892":"647","0166da37":"725",aba21aa0:"742","6126a50b":"836","0058b4c6":"849","68345f43":"874","14eb3368":"969"}[e]||e,f.p+f.u(e)},(()=>{var e={354:0,869:0};f.f.j=(a,t)=>{var r=f.o(e,a)?e[a]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(354|869)$/.test(a))e[a]=0;else{var o=new Promise(((t,o)=>r=e[a]=[t,o]));t.push(r[2]=o);var n=f.p+f.u(a),d=new Error;f.l(n,(t=>{if(f.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;d.message="Loading chunk "+a+" failed.\n("+o+": "+n+")",d.name="ChunkLoadError",d.type=o,d.request=n,r[1](d)}}),"chunk-"+a,a)}},f.O.j=a=>0===e[a];var a=(a,t)=>{var r,o,n=t[0],d=t[1],i=t[2],c=0;if(n.some((a=>0!==e[a]))){for(r in d)f.o(d,r)&&(f.m[r]=d[r]);if(i)var u=i(f)}for(a&&a(t);c Workflows 🦄 | Very Good Workflows - + diff --git a/docs/overview.html b/docs/overview.html index d31fd0c..014fa57 100644 --- a/docs/overview.html +++ b/docs/overview.html @@ -4,7 +4,7 @@ Overview | Very Good Workflows - + diff --git a/docs/workflows/dart_package.html b/docs/workflows/dart_package.html index 749128a..696b07f 100644 --- a/docs/workflows/dart_package.html +++ b/docs/workflows/dart_package.html @@ -4,7 +4,7 @@ Dart Package | Very Good Workflows - + @@ -27,7 +27,7 @@

cove

Optional List of paths to exclude from the coverage report, separated by an empty space. Supports globs to describe file patterns.

Default ""

dart_sdk

-

Optional Which Dart SDK version to use. It can be a version (e.g. 2.12.0) or a channel (e.g. stable):

+

Optional Which Dart SDK version to use. It can be a version (e.g. 3.5.0) or a channel (e.g. stable):

Default "stable"

format_line_length

Optional The preferred line length preferred for running the dart format command. Be aware that this does not change the behavior of the analysis step and longer lines could still make the workflow fail if the rule lines_longer_than_80_chars is used.

diff --git a/docs/workflows/dart_pub_publish.html b/docs/workflows/dart_pub_publish.html index 51de7b8..56bd02e 100644 --- a/docs/workflows/dart_pub_publish.html +++ b/docs/workflows/dart_pub_publish.html @@ -4,7 +4,7 @@ Dart Pub Publish | Very Good Workflows - + @@ -20,7 +20,7 @@

Steps

Inputs

dart_sdk

-

Optional Which Dart SDK version to use. It can be a version (e.g. 2.12.0) or a channel (e.g. stable):

+

Optional Which Dart SDK version to use. It can be a version (e.g. 3.5.0) or a channel (e.g. stable):

Default "stable"

working_directory

Optional The path to the root of the Dart package.

diff --git a/docs/workflows/flutter_package.html b/docs/workflows/flutter_package.html index f40fb0b..2960588 100644 --- a/docs/workflows/flutter_package.html +++ b/docs/workflows/flutter_package.html @@ -4,7 +4,7 @@ Flutter Package | Very Good Workflows - + @@ -36,7 +36,7 @@

flutte

Optional The Flutter release channel to use (e.g. stable).

Default "stable"

flutter_version

-

Optional The Flutter SDK version to use (e.g. 2.8.1).

+

Optional The Flutter SDK version to use (e.g. 3.24.0).

Default ""

format_line_length

Optional The preferred line length preferred for running the dart format command. Be aware that this does not change the behavior of the analysis step and longer lines could still make the workflow fail if the rule lines_longer_than_80_chars is used.

@@ -67,6 +67,6 @@

Secretsssh_key

Optional An SSH key used to access private repositories when installing dependencies.

Example Usage

-
name: My Flutter Workflow

on: pull_request

jobs:
build:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1
with:
coverage_excludes: '*.g.dart'
flutter_channel: 'stable'
flutter_version: '2.8.1'
working_directory: 'examples/my_flutter_package'
test_recursion: true
secrets:
ssh_key: ${{secrets.EXAMPLE_KEY}}
+
name: My Flutter Workflow

on: pull_request

jobs:
build:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1
with:
coverage_excludes: '*.g.dart'
flutter_channel: 'stable'
flutter_version: '3.24.0'
working_directory: 'examples/my_flutter_package'
test_recursion: true
secrets:
ssh_key: ${{secrets.EXAMPLE_KEY}}
\ No newline at end of file diff --git a/docs/workflows/flutter_pub_publish.html b/docs/workflows/flutter_pub_publish.html index 5ca7f7f..854262b 100644 --- a/docs/workflows/flutter_pub_publish.html +++ b/docs/workflows/flutter_pub_publish.html @@ -4,7 +4,7 @@ Flutter Pub Publish | Very Good Workflows - + @@ -23,7 +23,7 @@

flutte

Optional The Flutter release channel to use (e.g. stable).

Default "stable"

flutter_version

-

Optional The Flutter SDK version to use (e.g. 2.8.1).

+

Optional The Flutter SDK version to use (e.g. 3.24.0).

Default ""

working_directory

Optional The path to the root of the Flutter package.

@@ -37,6 +37,6 @@

pub_cr
OSPath
Linux$XDG_CONFIG_HOME/dart/pub-credentials.json or $HOME/.config/dart/pub-credentials.json
macOS~/Library/Application\ Support/dart/pub-credentials.json
Windows%APPDATA%/dart/pub-credentials.json

Example Usage

We recommend using GitHub Secrets for safely storing and reading the credentials.

-
name: My Flutter Pub Publish Workflow

on:
push:
tags:
- 'my_flutter_package-v*.*.*'

jobs:
build:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_pub_publish.yml@v1
with:
flutter_channel: 'stable'
flutter_version: '2.8.1'
working_directory: 'packages/my_flutter_package'
secrets:
pub_credentials: secrets.PUB_CREDENTIALS
+
name: My Flutter Pub Publish Workflow

on:
push:
tags:
- 'my_flutter_package-v*.*.*'

jobs:
build:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_pub_publish.yml@v1
with:
flutter_channel: 'stable'
flutter_version: '3.24.0'
working_directory: 'packages/my_flutter_package'
secrets:
pub_credentials: secrets.PUB_CREDENTIALS
\ No newline at end of file diff --git a/docs/workflows/license_check.html b/docs/workflows/license_check.html index 19a4c94..e49172c 100644 --- a/docs/workflows/license_check.html +++ b/docs/workflows/license_check.html @@ -4,7 +4,7 @@ License Check | Very Good Workflows - + @@ -27,7 +27,7 @@

runs_on

Optional An optional operating system on which to run the workflow.

Default "ubuntu-latest"

dart_sdk

-

Optional Which Dart SDK version to use. It can be a version (e.g. 2.12.0) or a channel (e.g. stable):

+

Optional Which Dart SDK version to use. It can be a version (e.g. 3.5.0) or a channel (e.g. stable):

Default "stable"

allowed

Optional Only allow the use of certain licenses. The expected format is a comma-separated list.

diff --git a/docs/workflows/mason_publish.html b/docs/workflows/mason_publish.html index 0dea4aa..a00ddf0 100644 --- a/docs/workflows/mason_publish.html +++ b/docs/workflows/mason_publish.html @@ -4,7 +4,7 @@ Mason Publish | Very Good Workflows - + diff --git a/docs/workflows/pana.html b/docs/workflows/pana.html index 012c1fb..2c4a913 100644 --- a/docs/workflows/pana.html +++ b/docs/workflows/pana.html @@ -4,7 +4,7 @@ Pana | Very Good Workflows - + diff --git a/docs/workflows/semantic_pull_request.html b/docs/workflows/semantic_pull_request.html index bfb300b..55e7b12 100644 --- a/docs/workflows/semantic_pull_request.html +++ b/docs/workflows/semantic_pull_request.html @@ -4,7 +4,7 @@ Semantic Pull Request | Very Good Workflows - + diff --git a/docs/workflows/spell_check.html b/docs/workflows/spell_check.html index 42d4999..7286b8c 100644 --- a/docs/workflows/spell_check.html +++ b/docs/workflows/spell_check.html @@ -4,7 +4,7 @@ Spell Check | Very Good Workflows - + diff --git a/index.html b/index.html index d2c8a51..60186e5 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Very Good Workflows - +