{"id":23934114,"url":"https://github.com/zgosalvez/github-actions-flutter-workflows","last_synced_at":"2025-07-26T13:06:35.131Z","repository":{"id":38283336,"uuid":"322446615","full_name":"zgosalvez/github-actions-flutter-workflows","owner":"zgosalvez","description":"Opinionated GitHub Action workflows for Flutter projects","archived":false,"fork":false,"pushed_at":"2024-07-02T00:24:46.000Z","size":186,"stargazers_count":46,"open_issues_count":9,"forks_count":11,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-10T18:51:22.845Z","etag":null,"topics":["flutter","github","github-workflow","workflow"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zgosalvez.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"zgosalvez"}},"created_at":"2020-12-18T00:31:22.000Z","updated_at":"2024-10-12T20:00:45.000Z","dependencies_parsed_at":"2024-04-25T01:56:47.731Z","dependency_job_id":"267ee28f-22d1-4501-b69a-f5e791068604","html_url":"https://github.com/zgosalvez/github-actions-flutter-workflows","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zgosalvez%2Fgithub-actions-flutter-workflows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zgosalvez%2Fgithub-actions-flutter-workflows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zgosalvez%2Fgithub-actions-flutter-workflows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zgosalvez%2Fgithub-actions-flutter-workflows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zgosalvez","download_url":"https://codeload.github.com/zgosalvez/github-actions-flutter-workflows/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238410617,"owners_count":19467452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flutter","github","github-workflow","workflow"],"created_at":"2025-01-06T00:30:15.151Z","updated_at":"2025-02-12T04:20:04.247Z","avatar_url":"https://github.com/zgosalvez.png","language":"Dart","readme":"# GitHub Actions: Flutter Workflows\n\nThis sample project allows you to leverage GitHub Actions to run common Flutter workflows. These are based on the workflows found in the [Flutter Gallery](https://github.com/flutter/gallery) repository. Continue reading to apply these to your Flutter project.\n\n## Disclaimer\nThis is still in active development, and it currently supports iOS and Android deployments only. Please [open a pull request](CONTRIBUTING.md) to support other platforms.\n\n## Usage\n\nCreate workflows in your `.github/workflows` directory. Examples are available in this repository. For more information, see the GitHub Help Documentation for [Creating a workflow file](https://help.github.com/en/articles/configuring-a-workflow#creating-a-workflow-file).\n\n*Note:* Although this Flutter project works as-is, consider tailoring these workflows to your needs. If you're starting from scratch, copying and pasting will work as long as you follow the [GitHub flow](https://guides.github.com/introduction/flow/) and [release based workflow](https://lab.github.com/githubtraining/create-a-release-based-workflow).\n\n### Protected Branches\nRecommended rules for the `main` and `release/v*` branches:\n- [x] Require status checks to pass before merging\n  - [x] Require branches to be up to date before merging\n  - [x] Check security hardening\n  - [x] Generate coverage report\n  - [x] Run static testing\n  - [x] Run unit testing\n  - [x] Run widget testing\n\n### Workflows\n\n- All of the workflows here use the [Ensure SHA Pinned Actions](https://github.com/marketplace/actions/ensure-sha-pinned-actions) action to ensure security hardening.\n- The [Get the Flutter Version Environment](https://github.com/marketplace/actions/get-the-flutter-version-environment) action requires that the [`pubspec.yaml`](../pubspec.yaml#L22) file contains an `environment:flutter:` key, which is used for installing Flutter with the correct version.\n\n#### Continuous Integration\n[![CI](https://github.com/zgosalvez/github-actions-flutter-workflow/workflows/CI/badge.svg)](https://github.com/zgosalvez/github-actions-flutter-workflow/actions?query=workflow%3ACI)\n\n[`.github/workflows/ci.yml`](workflows/ci.yml)\n\nAlso known as CI, Continuous Integration runs Flutter static and dynamic tests on *every pull request* to `main` and `release/v*`, then the coverage report is stored as an artifact for reference. A comment is added to the pull request on every run as seen here, [#10 (comment)](https://github.com/zgosalvez/github-actions-flutter-workflows/pull/10#issuecomment-753592566). Modify the workflow to further process the code coverage file using [code quality](https://github.com/marketplace?type=actions) or [code review](https://github.com/marketplace?category=code-review\u0026type=actions) actions.\n\nTesting is split into unit and widget tests. These are found in the `test/units` and `test/widgets` directories, respectively. The CI runs these in parallel to optimize for workflow throughput, especially on a large project with a considerable number of test cases.\n\n#### Continuous Delivery\n[![CDelivery](https://github.com/zgosalvez/github-actions-flutter-workflow/workflows/CDelivery/badge.svg)](https://github.com/zgosalvez/github-actions-flutter-workflow/actions?query=workflow%3ACDelivery)\n\n[`.github/workflows/cdelivery.yml`](workflows/cdelivery.yml)\n\nAlso known as CDelivery (not to be mistaken with another CD, i.e., Continuous Deployment), Continuous Delivery drafts a pre-release on *every push* to `main`. For the draft to populate with the release notes, pull requests should be `main` based. Manually remove the pre-release mark after it has been deployed and released to the app store.\n\n[`.github/workflows/pull_request-opened.yml`](workflows/pull_request-opened.yml)\n\nTo draft the release this workflow uses the [Release Drafter](https://github.com/marketplace/actions/release-drafter) action to compile the pull requests and categorizes it using the [PR Labeler](https://github.com/marketplace/actions/pr-labeler) action. Add the [`.github/release-drafter.yml`](release-drafter.yml) and [`.github/pr-labeler.yml`](pr-labeler.yml) files in your project since these are required configurations for these actions, respectively. Customize the configuration files as needed.\n\n#### Deployment\n[![Deployment](https://github.com/zgosalvez/github-actions-flutter-workflow/workflows/Deployment/badge.svg)](https://github.com/zgosalvez/github-actions-flutter-workflow/actions?query=workflow%3ADeployment)\n\n[`.github/workflows/deployment.yml`](workflows/deployment.yml)\n\nDeployment is triggered when the release draft (or any release) is published. It reruns the same Flutter static and dynamic tests from the CI before running Flutter's build commands. The app version used is based on the release tag, not the name. Lastly, build artifacts are uploaded as release assets.\n\n### Dependabot\n\nThis includes a [`.github/dependabot.yml`](dependabot.yml) file that allows Dependabot to maintain the GitHub Actions used in these workflows. For more information, see the GitHub Documentation for [Keeping your dependencies updated automatically](https://docs.github.com/en/github/administering-a-repository/keeping-your-dependencies-updated-automatically).\n\n## License\nThe scripts and documentation in this project are released under the [MIT License](LICENSE)","funding_links":["https://github.com/sponsors/zgosalvez"],"categories":["Building"],"sub_categories":["Workflows"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzgosalvez%2Fgithub-actions-flutter-workflows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzgosalvez%2Fgithub-actions-flutter-workflows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzgosalvez%2Fgithub-actions-flutter-workflows/lists"}