flutter_dotenv
flutter_dotenv copied to clipboard
.env not working in CI/CD
I am having a CI/CD pipeline using GitHub actions. The .env file seems not to be picked up correctly there. Everything works fine on my machine when I run the app. Also wenn I build the AppBundle, the .env file is in there.
For my own sanity check, I added a step in my pipeline to list the directory and the file is there and has the correct filesize:
However, when I try to access anything (e.g. static final isProduction = dotenv.env["IS_PRODUCTION"]
), the value is basically undefined.
My main method looks like this:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await dotenv.load();
...
No error is thrown when I am loading the file itself, but the content seems not to be there. I am adding the .env file via a secret:
- name: Add ENV
env:
ENV_FILE_CONTENT: ${{ secrets.ENV }}
run: |
echo $ENV_FILE_CONTENT > .env
But as shown in the directory step, the file seems to exist and as await dotenv.load();
doesn't throw an error, the file seems to work, but I just cant read data from it apparently.
had the same issue, but got it resolved by passing in the file name when loading the .env
await dotenv.load(fileName: '.env'); WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); runApp(const MyApp());
also in my script
- uses: actions/checkout@v3 - uses: subosito/flutter-action@v2 with: flutter-version: '3.16.7' channel: 'stable' - name: Make envfile uses: SpicyPizza/[email protected] with: envkey_ENVIRONMENT: ${{ secrets.ENVIRONMENT }} envkey_API_URL: ${{ secrets.API_URL }} file_name: .env