Flutter integration test with Firebase Test Lab & Github Actions

In this tutorial, you will learn how to run using the new integration_test package. We’re going to execute them with Firebase Test Lab and GitHub Actions CI/CD so that you can be fully confident that every piece of code you commit to a repository passes the tests on multiple devices, OS versions, screen sizes, orientations and locales.

Step 1:

Create the GCP ServiceAccount Key for your project.

To get this key, go to this link.

You will need service account json key from Google Cloud Console, with role: Editor, for your project.

Step 2:

Need to convert this GCP ServiceAccount Key JSON into a Base64 string to use it inside GitHub.

Install openssl, for Windows: https://tecadmin.net/install-openssl-on-windows/, for Ubuntu: https://cloudwafer.com/blog/installing-openssl-on-ubuntu-16-04-18-04/, for Mac: https://yasar-yy.medium.com/installing-openssl-library-on-macos-catalina-6777a2e238a6

Go to the command-line, navigate to the directory where your JSON file is, and run openssl base64 -in key.json -out key.txt, now you can run code key.txt orcat key.txt to open the output file inside.

Go to your GitHub project > Settings, Secrets, New secret. The name is GCP_SA_KEY and paste the Base64 from your output file.

Step 3:

Set the GCP project ID, go to your GitHub project > Settings, Secrets, New secret. The name is GCP_PROJECT_ID.

Step 4:

Hook up the multiplatform Flutter integration tests to run as if they were native instrumentation tests on Android

Follow this guide: https://pub.dev/packages/integration_test#android-device-testing

Final YML to be used on GitHub Actions

More info here: https://flutter.dev/docs/testing/integration-tests



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store