java-james / flutter_dotenv

Loads environment variables from `.env`.
https://pub.dartlang.org/packages/flutter_dotenv
MIT License
209 stars 46 forks source link

.env not working in CI/CD #93

Open Navil opened 6 months ago

Navil commented 6 months ago

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: image

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.

sirkev commented 5 months ago

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