Outline
When you use GitHub Actions
, you can implement CI/CD
with GitHub
.
- GitHub Actions: https://github.com/features/actions
In this blog post, I will introduce how to use GitHub Actions
to execute Linter
in Flutter
project to check the code style, and execute the test code to check the modification of code has issues or not.
flutter_lints
When you create a new Flutter
project, the flutter_lints
is automatically installed for making the code same style and for the code quality. You can execute it by using the following command.
flutter analyze
In this blog post, When the Pull request
is created in GitHub, we will execute the command to check the code style on GitHub Actions
automatically.
If you want to know more details about Linter
in Flutter
, please see the previous blog post on the following link.
Test
When you create a new Flutter
project, you can see the widget_test.dart
in the test
folder for the test code of the ./lib/main.dart
file.
When we develop the program, we write many unit tests, widget tests, and so on. And, we can execute the test code by using the following command.
flutter test test/widget_test.dart
Or, we can execute all test codes by using the following command.
flutter test
In this blog post, When the Pull request
is created in GitHub, we will execute the command to check the code modification has issues or not on GitHub Actions
automatically.
GitHub Actions
Now, let’s make GitHub Actions
to execute Linter
and test
automatically when the Pull request
. First, execute the following command to create a branch which store the GitHub Actions
configuration.
git checkout -b add-github-actions
To make the GitHub Actions
configuration, create the .github/workflows
folder in the root directory of the Flutter
project.
And the, create the code_quality.yml
file(You can change the file name) in the .github/workflows
folder, and modify it like the below.
name: Check and test the source code
on:
pull_request:
branches:
- main
jobs:
test:
name: Check the source code
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/[email protected]
with:
flutter-version: '2.10.4'
- name: Install packages
run: flutter pub get
- name: Linter
run: flutter analyze
- name: Test
run: flutter test
This GitHub Actions
will be executed when the Pull request
for the main
branch is created.
...
on:
pull_request:
branches:
- main
...
This GitHub Actions
will be executed on the Ubuntu
server.
...
jobs:
test:
name: Check the source code
runs-on: ubuntu-latest
...
When the Ubuntu
server is ready, download(checkout) the current repository.
jobs:
test:
...
steps:
- uses: actions/checkout@v3
...
We’ll execute the Linter
of Flutter
and the test code, so we need to configure the Flutter
development environment.
...
jobs:
test:
name: Check the source code
runs-on: ubuntu-latest
steps:
...
- uses: subosito/[email protected]
with:
flutter-version: '2.10.4'
...
Lastly, we need to install all packages of the Flutter
project, and execute the Linter
and Test
on the environment.
...
jobs:
test:
name: Check the source code
runs-on: ubuntu-latest
steps:
...
- name: Install packages
run: flutter pub get
- name: Linter
run: flutter analyze
- name: Test
run: flutter test
After modifying, execute the following commands to store it to GitHub
.
git add .
git commit -m 'chore: Add GitHub Actions for code quality'
git push origin add-github-actions
Check
After pushing, go to the GitHub
page, and click the Pull requests
tab. And, make a Pull request
from the add-github-actions
branch to the main
branch.
When you do it, you can see the GitHub Actions
is executed automatically like the below.
Completed
Done! we’ve seen how to use GitHub Actions
to execute Linter
and the test code in the Flutter
project to check the code style and code quality. Now, you got the skill to configure CI/CD
with GitHub Actions
.
To develop alone, we can use a tool like Lefthook
to execute the Linter
and the test code automatically.
However, when we develop with many developers, configuring CI/CD
with GitHub Actions
makes us keep the code style and code quality more effective.
Was my blog helpful? Please leave a comment at the bottom. it will be a great help to me!
App promotion
Deku
.Deku
created the applications with Flutter.If you have interested, please try to download them for free.