java-james / flutter_dotenv

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

.env not working in CI/CD #93

Open Navil opened 11 months ago

Navil commented 11 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 10 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