I’m trying to set up a pipeline in Gitlab to test and publish to Expo. Testing works fine; but the “expo publish” always fails in the iOS bundle build with this message:
[17:48:52] Unable to find an existing Expo CLI instance for this directory, starting a new one…
[17:48:54] Starting Metro Bundler on port 19001.
[17:48:55] Publishing to channel ‘default’…
[17:48:56] Building iOS bundle
[17:49:07] throw error;
[17:49:07] Error: ENOSPC: System limit for number of file watchers reached…
My .gitlab-ci.yml file looks like this:
- yarn config set cache-folder .yarn
- yarn install --frozen-lockfile
- yarn run jest --ci
- apk add --no-cache bash
- yarn run expo login -u $EXPO_USERNAME -p $EXPO_PASSWORD
- yarn run expo publish --non-interactive
FYI, the error persisted even after I added “echo ‘fs.inotify.max_user_watches=524288’” to the “script” section of the CI config file
For anyone who experiences the same error, the problem was solved by adding the following line to .gitlab-ci.yml after “- ap ask --no-cache bash”:
echo fs.inotify.max_user_watches=524288 | tee -a /etc/sysctl.conf && sysctl -p
sysctl.conf regenerated periodically in that environment? If not, it seems wrong to append that line to the file every time you build
If you want a once-off command to increase the limit for the duration of the “session”, you could run
sysctl fs.inotify.max_user_watches=524288 instead of the above.
fs.inotify.max_user_watches=524288 to /etc/sysctl.conf and don’t add it to your
See this comment for others you might want to set:
Thanks @wodin for the link and suggestion. Running the command to increase the file watcher limit solved the issue.
This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.