Hello,
I am having trouble with custom build workflow. I have created a file .eas/build/development-build-android.yaml
and have copied over some configuration and have included additional stuff.
When I run the EAS build (both locally and on server) it is failing with the error included in the screenshot.
NOTE: I am sure that the paths are correct, because if I put the wrong path, the build fails instantly with another error:
Custom build configuration file .eas/build/ddevelopment-build-android.yml does not exist.
Here are the contents of the yaml file
build:
name: Simple internal distribution Android build
steps:
- eas/checkout
- eas/install_node_modules
- eas/prebuild
- eas/inject_android_credentials
- run:
name: Build dependencies
command: |
echo "Building dependencies..."
cd packages/ui && yarn build
- eas/run_gradle
- eas/find_and_upload_build_artifacts
Hi there!
Thanks for reporting it! I’m looking into it. Can you send me more details, like the URL of the build that you run on EAS servers and the details of how you use your development-build-android.yml
in your eas.json
? (remember to check that your eas.json
doesn’t contain any information you wouldn’t like to share before pasting it here)
Hey thanks for the reply! I am currently trying to make a local build, the contents of the eas.json
{
"build": {
"development": {
"node": "18.14.0",
"developmentClient": true,
"distribution": "internal",
"config": "development-build-android.yml",
"android": {
"image": "latest",
"buildType": "apk",
"gradleCommand": ":app:assembleRelease"
}
},
"preview": {
"extends": "development"
},
"production": {}
}
}
I have just run the build on the server as well, so here’s the link: Build Details — 402fa27d-2e4a-4783-85dc-d373d140f46d — trackture — Expo
1 Like
Thank you!
Server build: So it seems like we are able to parse the build config when running the build on our infrastructure, it just fails when running yarn install
.
Build Details — 402fa27d-2e4a-4783-85dc-d373d140f46d — trackture — Expo. Looking at your eas.json
I think that this is likely caused by the fact that Node 18 is required to successfully perform the node_modules
installation in your build. Are you sure that you had build.development.node = 18.14.0
specified in your eas.json
at the time of running this build? I just tested it and seems to work for me (screenshot). If a custom node version is installed you should see the logs for it in Install custom tools
build phase which happens before executing your custom build workflow.
I don’t see this build phase in your build’s logs.
Local build: It seems like the issue for your local build is different. It is not able to parse the custom build job config on your machine when running the build. I will look some more into it. Can you run the npx expo-env-info
and eas -v
commands so I get more info about your local environment?
Thanks!
Yes, I have just run the build with the eas.json
that I pasted in the original post.
So yeah, it seems I have forgotten the original error with yarn install
I was hoping to debug what’s happening on the local, but then I run into the issue I wrote about.
I have executed the commands you asked and here’s the output:
EDIT: I am sorry I think I have run the build in the wrong directory, hence the different output, this is the correct link to a build that has failed for me the last time, on the server:
And the one I just run again, from the correct directory with all changes commited:
1 Like
Thank you again!
Can your .eas
directory be gitignored by any chance? I was able to replicate the same error message when gitignoring it.
Unfortunately not, the directory is there in the repo as well:
and to be extra safe I added !.eas/build/
to the .gitignore
1 Like
Interesting…
Thanks again!
Could you try to run a local build with EAS_LOCAL_BUILD_WORKINGDIR=path/to/some/local/dir/of/your/choice EAS_LOCAL_BUILD_SKIP_CLEANUP=1 eas build ... --local
and check the contents of path/to/some/local/dir/of/your/choice
.
Alright, I’ve run it, ended with the same error.
The contents (notice that .eas/
is empty)
Hi,
Could you please try to run the git ls-files --error-unmatch temporary-custom-build/apps/native/.eas/build/development-build-android.yml
command in the root of your repository?
Also, are you using .easignore
by any chance?
Hey here’s the output:
I double checked, there is no .easignore
file. I am going on a vacation today, so I won’t be able to respond for then ext 7 days, so if we don’t solve it today, let’s try to do it when I am back please. Thank you for your time!