Skip to main content
Glama
git-submodules.md1.52 kB
--- title: Using Git submodules sidebar_title: Git submodules description: Learn how to configure EAS Build to use git submodules. hideTOC: true --- When using the default Version Control Systems (VCS) workflow, the content of your working directory is uploaded to EAS Build as it is, including the content of Git submodules. However, if you are building on CI or have `cli.requireCommit` set to `true` in **eas.json** or have a submodule in a private repository, you will need to initialize it to avoid uploading empty directories. ## Submodules initialization To initialize a submodule on EAS Build builder: Create a [secret](/build-reference/variables/#using-secrets-in-environment-variables) with a base64 encoded private SSH key that has permission to access submodule repositories. Add an [`eas-build-pre-install` npm hook](/build-reference/npm-hooks/) to check out those submodules, for example: ```bash eas-build-pre-install.sh #!/usr/bin/env bash mkdir -p ~/.ssh # Real origin URL is lost during the packaging process, so if your # submodules are defined using relative urls in .gitmodules then # you need to restore it with: # # git remote set-url origin git@github.com:example/repo.git # restore private key from env variable and generate public key umask 0177 echo "$SSH_KEY_BASE64" | base64 -d > ~/.ssh/id_rsa umask 0022 ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub # add your git provider to the list of known hosts ssh-keyscan github.com >> ~/.ssh/known_hosts git submodule update --init ```

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jaksm/expo-docs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server