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.
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.
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 or
cat 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.
Set the GCP project ID, go to your GitHub project > Settings, Secrets, New secret. The name is GCP_PROJECT_ID.
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